微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ArcGIS API for Silverlight 查找点聚焦的一个注意点

主要的坐标系有2种:

WKID=102100

WKID=4326


而且对于点来说,一个Geometry对象其Width和Height是0,这点需要特别注意。


            //坐标点聚焦
            ESRI.ArcGIS.Client.Projection.WebMercator mercator = new ESRI.ArcGIS.Client.Projection.WebMercator();
            ESRI.ArcGIS.Client.Geometry.Envelope selectedFeatureExtent = mercator.ToGeographic(graphic.Geometry).Extent; //最后一个点的位置
            double expandPercentage = 30;

            double widthExpand = (selectedFeatureExtent.Width + 5) * (expandPercentage / 100);
            double heightExpand = (selectedFeatureExtent.Height + 5) * (expandPercentage / 100);
            ESRI.ArcGIS.Client.Geometry.Envelope displayExtent = new ESRI.ArcGIS.Client.Geometry.Envelope(
            selectedFeatureExtent.XMin - (widthExpand / 2),selectedFeatureExtent.YMin - (heightExpand / 2),selectedFeatureExtent.XMax + (widthExpand / 2),selectedFeatureExtent.YMax + (heightExpand / 2));
            myMap.ZoomTo(displayExtent);

double widthExpand = (selectedFeatureExtent.Width + 5) * (expandPercentage / 100);

注意这里,给每个Width加上5,这样就可以实现了。


设置坐标系的方法

 ESRI.ArcGIS.Client.Geometry.Envelope initialExtent =
                    new ESRI.ArcGIS.Client.Geometry.Envelope(
                _mercator.FromGeographic(
                    new ESRI.ArcGIS.Client.Geometry.MapPoint(-122.4545596,37.783443296)) as MapPoint,_mercator.FromGeographic(
                    new ESRI.ArcGIS.Client.Geometry.MapPoint(-122.4449924,37.786447331)) as MapPoint);

            initialExtent.SpatialReference = new SpatialReference(102100);  //WKID=4326

            MyMap.Extent = initialExtent;

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐