问题描述
以下是查询结果集.netc#代码:ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionalityqfunc;qfunc=(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality)gisresource.CreateFunctionality(typeof(ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality),null);string[]lids;string[]lnames;//获得图层的layerId和layerName,GetQueryableLayers的重载方法可以指定图层类型qfunc.GetQueryableLayers(null,outlids,outlnames);ESRI.ArcGIS.ADF.Web.SpatialFilterspatialfilter=newESRI.ArcGIS.ADF.Web.SpatialFilter();spatialfilter.ReturnADFGeometries=false;spatialfilter.MaxRecords=1000;spatialfilter.WhereClause=whereStr;spatialfilter.Geometry=Map1.GetFullExtent();//对指定的图层进行查询,查询的结果保存为DataTabledatatable=qfunc.Query(null,lids[2],spatialfilter).Copy();如何对查询结果集datatable中所有的点定位呢?就是地图适当的缩放,使全部元素显示在地图可视范围中?查阅了一些资料需要使用到Envelope然后赋值给Map1.Extent小弟刚接触GIS不久,还不了解具体该如何做。请高手指教!
解决方案
解决方案二:
你应该是要定位到datatable中所有点的中心点。取到的结果集合似乎有center这个属性吧?没有的话你就手动计算一下。
解决方案三:
我知道点居中如何做,代码如下:ESRI.ArcGIS.ADF.Web.Geometry.Pointcenterpoint=ESRI.ArcGIS.ADF.Web.Geometry.Geometry.GetCenterPoint(geo);Map1.CenterAt(centerpoint);但不清楚你说的“定位到datatable中所有点的中心点”,该如何实现。实际上现在就是定位datatable中第一个点为中心。
解决方案四:
有朋友提供个思路吗?
解决方案五:
结果集是能获取到bounds的吧..我一看代码就晕,只提供参考思路
解决方案六:
简单点表达这个问题,就是查询出一堆point,怎么让它们都显示在当前视图范围内呢?
解决方案七:
可以参考下GeoCoding的相关代码吧
解决方案八:
http://www.cnblogs.com/hll2008/archive/2008/08/27/1278024.html看看这个,对你有帮助。需要用map.CenterAt(centerpoint);returnmap.CallbackResults.ToString();
解决方案九:
可以看看ITopologicalOperator.ConvexHull、Multipoint.Envelope都可以