已知若干点的经纬度坐标,要求在地图中进行定位:
1.通过Tool 》Add X Y data 定位点,注意选择地理坐标系下的wgs 1984坐标系;
2.定位后的点不能执行查询、分析等操作,需要重新export data;
3.导出的数据最好转换成投影坐标,以便于计算。可首先把已知投影坐标的图层加载到地图中,然后加入第二步产生的点图层,然后将点图层export data,注意坐标系统选择“the data frame”
二、在ArcObject开发时定位的代码示例
2.1 代码参考1
private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e) { if (i >= 3)//测试目的 return; i++; ITextElement te = createTextElement(e.mapX,e.mapY,"魁x"); axMapControl1.ActiveView.GraphicsContainer.AddElement(te as IElement, 1); axMapControl1.Refresh(esriViewDrawPhase.esriViewGraphics, null, null); } int i; public IBalloonCallout createBalloonCallout(double x, double y) { IRgbColor rgb = new RgbColorClass(); { rgb.Red = 255; rgb.Green = 255; rgb.Blue = 200; } ISimpleFillSymbol sfs = new SimpleFillSymbolClass(); { sfs.Color = rgb; sfs.Style = esriSimpleFillStyle.esriSFSSolid; } IPoint p = new PointClass(); { p.PutCoords(x, y); } IBalloonCallout bc = new BalloonCalloutClass(); { bc.Style = esriBalloonCalloutStyle.esriBCSRoundedRectangle; // bc.Symbol = sfs; // bc.LeaderTolerance = 10; //1 bc.AnchorPoint = p; } return bc; } public ITextElement createTextElement(double x, double y, string text) { IBalloonCallout bc = createBalloonCallout(x, y); IRgbColor rgb = new RgbColorClass(); { //rgb.Red = 255; rgb.Green = 255; } ITextSymbol ts = new TextSymbolClass(); { ts.Color = rgb; } IFormattedTextSymbol fts = ts as IFormattedTextSymbol; { fts.Background = bc as ITextBackground; } //fts.Size = 8; ts.Size = 8; IPoint point = new PointClass(); { double width = axMapControl1.Extent.Width / 13; double height = axMapControl1.Extent.Height / 20; point.PutCoords(x + width, y + height); } ITextElement te = new TextElementClass(); //IMarkerElement me = new MarkerElementClass(); { te.Symbol = ts; //ts.Text = text; te.Text = text; } IElement e = te as IElement; { e.Geometry = point; } return te; } }