当前位置:编程学习 > 网站相关 >>

ArcGIS server 9.3中如何将查询结果集定位居中显示?

以下是查询结果集.net c#代码:

ESRI.ArcGIS.ADF.Web.DataSources.IQueryFunctionality qfunc;
                            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, out lids, out lnames);

                            ESRI.ArcGIS.ADF.Web.SpatialFilter spatialfilter = new ESRI.ArcGIS.ADF.Web.SpatialFilter();
                            spatialfilter.ReturnADFGeometries = false;
                            spatialfilter.MaxRecords = 1000;
                            spatialfilter.WhereClause = whereStr;
                            spatialfilter.Geometry = Map1.GetFullExtent() ;

                            //对指定的图层进行查询,查询的结果保存为DataTable
                            datatable = qfunc.Query(null, lids[2], spatialfilter).Copy();

如何对查询结果集datatable中所有的点定位呢?就是地图适当的缩放,使全部元素显示在地图可视范围中?

查阅了一些资料需要使用到Envelope然后赋值给Map1.Extent

小弟刚接触GIS不久,还不了解具体该如何做。请高手指教! --------------------编程问答-------------------- 你应该是要定位到datatable中所有点的中心点。取到的结果集合似乎有center这个属性吧?没有的话你就手动计算一下。 --------------------编程问答-------------------- 我知道点居中如何做,代码如下:
ESRI.ArcGIS.ADF.Web.Geometry.Point centerpoint = 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);
return map.CallbackResults.ToString(); --------------------编程问答-------------------- 可以看看 
ITopologicalOperator.ConvexHull 、Multipoint.Envelope都可以
补充:企业软件 ,  地理信息系统
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,