ArcGIS API for Silverlight 查詢點聚焦的一個注意點
阿新 • • 發佈:2019-02-15
主要的座標系有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;