我正在借助 ArcGis 从shapefile创建自定义地图。之后,我如何在自定义地图上绘制已经存储的latlng?如果shapefile更新后的自定义地图将更新,我如何在自定义地图上维护已经保存的latlng?
答案 0 :(得分:0)
首先,这是使用DotSpatial将点和属性添加到现有shapefile的方法。
[TestMethod]
public void AddPoint()
{
Shapefile shp = Shapefile.OpenFile(@"D:\Data\Temp\CatPoints.shp");
IFeature cat = shp.AddFeature(new Point((new Coordinate(-119, 39))));
cat.DataRow["Name"] = "Leopard";
cat.DataRow["Longitude"] = -119.0000;
cat.DataRow["Latitude"] = 39.0000;
shp.Save();
}
请务必注意,地图文档(.mxd文件)不会存储数据,因此更新shapefile(.shp)将自动更新地图的内容。如果您的问题是关于如何使用经度和纬度值创建shapefile的,以下是创建shapefile并将其另存为地图的演练。如果您已经有一个shapefile,则可以跳到步骤5。
假设您在现有数据源(例如excel文件)中具有初始纬度和经度。
1)通过使用添加数据按钮,浏览到excel文件并选择excel工作表来添加数据。
2)右键单击目录中的“ Sheet1 $”层,然后选择“显示XY数据...”。
3)经度和纬度应自动填充为X字段和Y字段。您应该使用编辑按钮,然后选择“地理坐标系->世界-> WGS1984”作为经度坐标系。 (如果您位于美国的西半球,请确保经度为负。)点击确定。
4)右键单击新创建的Sheet1 $ Events图层,然后选择Data-> Export Data ...,以将该图层导出为shapefile。保持“所有功能”选项处于选中状态,然后指定以“ .shp”结尾的名称。这个很重要。如果您保存到个人地理数据库或文件地理数据库,DotSpatial将无法在以后更新您的内容。单击确定。当它询问您是否要将新创建的shapefile添加到地图时,请选择“是”。
5)然后,您可以使用文件->添加数据->添加底图功能将底图添加到背景中。单击要添加的底图类型。
6)要添加任何其他现有的shapefile,(或如果您已经具有要用于创建地图的现有shapefile),请使用添加数据按钮,该按钮是在等轴测图的等轴视图上带圆圈的加号按钮黄色正方形。
7)保存您的地图。这是重要的部分。无论您拥有什么图层,都可以将其作为“地图”文档存储在ArcGIS中。这并不存储实际的数据本身,而只是指向shapefile。因此,当您在DotSpatial中对shapefile进行更改时,这些更改将显示在地图中。
8)我不确定如果用户界面中已经打开了SHP,ArcGIS是否会自动获取对SHP的更改。您可能需要关闭地图,然后在ArcGIS中再次将其打开以查看新点。