1、首先在本地发布一个SanFrancisco的地图服务
2、然后添加Web引用

web 引用添加完成之后如图:
![]()
3、编写一段查询的代码:
public int TestFunction()
{
SanFrancisco_MapServer.SanFrancisco_MapServer mapservice = new SanFrancisco_MapServer.SanFrancisco_MapServer();
mapservice.Url = "http://localhost/arcgis/services/SanFrancisco/MapServer";
string mapname = mapservice.GetDefaultMapName();
MapServerInfo mapinfo = mapservice.GetServerInfo(mapname);
MapDescription mapdesc = mapinfo.DefaultMapDescription;
MapLayerInfo[] maplayerinfos = mapinfo.MapLayerInfos;
int layerid = 0;
string geometryfieldname = string.Empty;
foreach (MapLayerInfo layerinfo in maplayerinfos)
{
if (layerinfo.Name == "artgalleries")
{
layerid = layerinfo.LayerID;
Field[] fields = layerinfo.Fields.FieldArray;
foreach (Field field in fields)
{
if (field.Type == esriFieldType.esriFieldTypeGeometry)
{
geometryfieldname = field.Name;
break;
}
}
}
}
//获得地图的全图范围
SanFrancisco_MapServer.MapExtent me = new MapExtent();
SpatialFilter spatialfilter = new SpatialFilter();
spatialfilter.FilterGeometry = me.Extent;
spatialfilter.GeometryFieldName = geometryfieldname;
spatialfilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;
spatialfilter.WhereClause = "ZIP = 94108";
int featurecount = mapservice.QueryFeatureCount(mapname, layerid, spatialfilter);
return featurecount;
}
4、得到结果如图:

一共查询到了7个要素。
总结:利用SOAP API 则只需要.Net的支持即可。
浙公网安备 33010602011771号