我正在ArcGis的帮助下从shapefile创建一个自定义映射。在此之后,我如何才能绘制已经存储在自定义地图上的图形呢?如果shapefile更新后的自定义映射将被更新,我如何在自定义映射上维护已经保存的最新版本?
发布于 2018-12-14 17:20:41
首先,下面是如何使用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 1$”层,并选择Display .

( 3)经纬度应作为X场和Y场自动填充。您应该使用编辑按钮,并选择地理坐标系统->世界-> WGS1984作为经度的坐标系。(如果你在西半球和美国一样,请确保你的经度是负的。)点击Ok。
4)右键单击新建的Sheet1 1$ Events层并选择Data->Export .以便将此层导出为一个shapefile。保留选中的“所有功能”选项,然后指定以".shp“结尾的名称。这事很重要。如果您保存到个人Geodatabase或,DotSpatial将无法在以后更新您的内容。点击确定。当它询问是否要将新创建的shapefile添加到映射中时,请选择“是”。

5)然后可以使用File->Add > add特性向后台添加一个basemap。单击要添加的basemap类型。

6)要添加任何其他现有的shapefile (或者如果您已经有了要用于创建地图的现有shapefile),请使用add data按钮,它是黄色正方形等距视图上的圈加按钮。

7)保存你的地图。这是最重要的部分。您所拥有的任何层都可以作为“地图”文档存储在ArcGIS中。这并不是存储实际数据本身,而是简单地指向shapefile。因此,当您对DotSpatial中的shapefile进行更改时,这些更改将出现在您的地图中。


8)我不确定如果ArcGIS已经在用户界面中打开,它是否会自动获取对SHP的更改。您可能需要关闭地图,并在ArcGIS中再次打开它,以查看您的新点。
https://stackoverflow.com/questions/53779418
复制相似问题