Web前台使用地图瓦片,JS拼装;后台使用asp.net引用Arcengine提供GIS服务。
1. 简单点查询
(1)引用
using ESRI.ArcGIS.Geodatabase;
using ESRI.ArcGIS.DataSourcesFile;
using ESRI.ArcGIS.esriSystem;
(2)ArcEngine的Licence认证
IAoInitialize m_AoInitialize = new AoInitializeClass();
esriLicenseStatus licenseStatus = esriLicenseStatus.esriLicenseUnavailable;
licenseStatus = m_AoInitialize.Initialize(esriLicenseProductCode.esriLicenseProductCodeEngine);
(3)空间查询或属性查询
IFeatureClass featureClass = null;
IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactoryClass();
IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile("E://shp//shp", 0);
string LayerName="×××";
featureClass = pWorkspace .OpenFeatureClass(LayerName);
ESRI.ArcGIS.Geometry.Point point = new ESRI.ArcGIS.Geometry.PointClass();
point.X = 100;
point.Y = 200;
ISpatialFilter spatialFilter = new SpatialFilterClass();
spatialFilter.Geometry = point;
spatialFilter.GeometryField = "shape";
spatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;
//IQueryFilter queryFilter = new QueryFilterClass();
//queryFilter.WhereClause = "FID=90";
int index = featureClass.Fields.FindField("字段名");
IFeatureCursor featureCursor;
featureCursor = featureClass.Search(spatialFilter, false);
IFeature feature = featureCursor.NextFeature();
while (feature != null)
{
this.Label1.Text = feature.get_Value(index).ToString();
feature = featureCursor.NextFeature();
}