这个话题意味着两个关键点:
1. 如何在arcgis for silverlight中画点、线
2. 如何将经纬度坐标转换成地方坐标系
1. 如何在arcgis for silverlight中画点、线
首先,定义两个对象层,之后的点和线都将分别在这两个层上显示出来。
GraphicsLayer ClickSelectedLayer=new GraphicsLayer();
GraphicsLayer PointLineLayer=new GraphicsLayer();
1.1 如何画点
如果想要在地图上动态画上一个点,必须要知道点的坐标以及渲染的符号,这两项缺一不可。具体如下代码:
double X=103.87979;
double Y=30.93186;
ESRI.ArcGIS.Client.Geometry.MapPoint clickPoint = new ESRI.ArcGIS.Client.Geometry.MapPoint( X , Y );
Graphic gPoint = new Graphic();
gPoint.Geometry = clickPoint;
gPoint.Symbol = LayoutRoot.Resources["Dian"] as MarkerSymbol;
this.ClickSelectedLayer.Graphics.Add(gPoint);
另外,也可以给这个点增加一些属性信息或者是鼠标的触发事件,如:
gPoint.Attributes.Add("stcd", "测站编码123");
gPoint.Attributes.Add("stnm", "测站编码123");
gPoint.MouseLeftButtonUp += new MouseButtonEventHandler(g_MouseLeftButtonUp);
1.2 如何画线
线是一条路线,在这条路线上存在着该线上所有点的集合。因此,画线需要定义以下内容,具体代码:
ESRI.ArcGIS.Client.Geometry.Polyline pLine = new ESRI.ArcGIS.Client.Geometry.Polyline();
ESRI.ArcGIS.Client.Geometry.PointCollection pCollection = new ESRI.ArcGIS.Client.Geometry.PointCollection();
MapPoint mPoint1 = new MapPoint(Convert.ToDouble("103.883036"), Convert.ToDouble("30.93077"));
pCollection.Add(mPoint1);
MapPoint mPoint2 = new MapPoint(Convert.ToDouble("103.87979"), Convert.ToDouble("30.93186"));
pCollection.Add(mPoi