主要的坐标系有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;