Questions tagged «shapefile»

矢量数据存储格式,用于存储地理特征的位置,形状和属性。当ESRI开发它时,通常称为“ ESRI shapefile”。


2
使用ArcMap将Shapefile转换为SVG(同时保留国家/地区属性)
有谁知道如何使用ArcMap将Natural Earth 1:110m形状文件导出到SVG,同时保留国家/地区属性? 从SVG,我将尝试再次将其转换为RaphaelJS,以实现类似以下目的: http://backspace.com/mapapp/javascript_world/ http://backspace.com/mapapp/javascript_world/js/world_570.js 但是我对所有这些都是新手,所以我不确定该怎么做。也许没有办法,只能手动添加JS的国家/地区代码?
10 arcmap  shapefile  svg 



5
Solo开发人员的数据库与文件
我刚刚开始使用GIS,并且对使用它创建我所在地区及附近山区自行车道的地图感兴趣。我一直在学习QGIS,并且已经取得足够的进展来生成一张体面的地图。到目前为止,我已经将图层存储在Shapefiles中,似乎工作正常。 在过去的一个周末,我开始研究PostGIS并使其运行并设法导入我的路径shapefile并将QGIS连接到PostGIS。 我现在想知道使用数据库与文件的利弊是什么。我已经有一些想法,但是很好奇别人可能有什么启发性的看法。 数据库的优点 无论走到哪个公园,所有足迹的一张桌子都可以让我拥有一组一致的信息列。 更轻松地查询/导出我的数据为多种格式 多个客户端/工具使查看和编辑数据更加容易 简化表格结构的编辑(与QGIS表格编辑相比) 数据库的缺点 站起来/维护数据库会增加我的设置的复杂性。 我有一台台式机和一台笔记本电脑,我在做GIS,使用DropBox可以轻松在两台计算机之间同步文件。与使用DropBox和文件一起使用PostGIS,这可能是不可能的(或透明的)。 比数据库更容易备份/还原文件。

5
寻找USDA植物抗性区shapefile
鉴于这是USDA资源,我真的以为可以在某处在线获取它,但是对我而言,我一生找不到任何地方的USDA植物抗性区的shapefile。有人知道哪里可能有一个吗? 该链接是我找到的最接近的链接,但似乎没有提供任何shapefile下载: http://www.usna.usda.gov/Hardzone/ushzmap.html
10 shapefile  data 

3
使用ArcPy从纬度/经度值创建shapefile?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为地理信息系统堆栈交换的主题。 去年关闭。 如何在ArcGIS 10中使用Python创建shapefile? 我有经纬度。 为此,我需要Python代码,该代码将在ArcGIS Desktop 10中创建shapefile。

2
除带有3D Analyst的ArcGIS之外,哪些Windows GIS编辑器还支持3D shapefile的创建?
我需要找到一种简单且经济的方式在Windows中生成3D线性shapefile,以便我们的用户之一可以检查我们的工具。我们错误地认为他有3D shapefile源数据可用,或有一种产生它的方法。 我找到了一篇关于如何将2D shapefile转换为3D shapefile的ArcGIS技术文章;但是,它需要ArcGIS with 3D Analyst。我有可用的ArcGIS,但没有3D Analyst许可证,因此无法复制本文中的步骤。用户也可以使用ArcGIS,但是我不知道他是否具有3D Analyst许可证。无论如何,我想在向他发送文章之前先对其进行测试。 我以前使用FWTools和OSGeo4W中包含的OGR / GDAL C ++ API和OGR / GDAL Python API创建了3D shapefile。我考虑过编写一个可以解析输入文本文件的简单程序或Python脚本。Python解决方案将要求用户安装具有GDAL支持的Python运行时,因此我很犹豫采用这种方法。 MapWindow 4.7.5 在GIS工具中具有3D矢量到2D矢量选项。矢量菜单,但反之则不行。我刚刚检查了一下MapWindow的版本是4.8.3,但是在其在线文档中找不到任何对3D shapefile或矢量特征的引用。 是否有Windows GIS编辑器(带有3D Analyst的ArcGIS除外)支持3D shapefile的创建?
10 shapefile  3d  windows 

2
如何使用开源工具从shapefile溶解多边形?
在我当前的项目中,我正在可视化地图上的数据,该数据代表一个国家每个行政区域的某些值。我得到了这个国家的shapefile,我将其转换为GeoJSON以与PolyMaps一起使用。现在,我已经要求将多个区域聚集成更大的区域,因为一些较小的部分没有数据,但是可以获取较大区域的汇总数据。这些群集是预定义的(例如A + B + C = D),因此我认为生成群集的shapefile并将其随后转换为GeoJSON会更容易。 但是,如何创建这样的集群(最好是自动化的并且使用开源工具)?当然也欢迎任何其他明智的方式。

7
修复损坏的shapefile?
我有一个在ArcGIS Desktop 9.3中使用的shapefile某种程度上被破坏了,并且出现错误“形状数与表记录数不匹配”。我想要的是恢复此shapefile,因为它具有许多其他版本的文件所没有的编辑功能。 之前我使用ogr2gui从此错误中恢复了,但是该工具现在崩溃了。我什至尝试了命令行版本ogr2ogr,但仍然没有运气。ArcScripts网站上的Shapefile Repair Tool这个脚本也没有帮助。 有任何想法吗?(除了我停止使用shapefile) 这是ogr2ogr的输出(基于答案中的建议):


2
使用ogr和Python在Polygon中指向(线串)
我目前正在一个项目中,我需要根据在shapefile中找到的几何特征来构建拓扑网络。到目前为止,使用Ben Reilly的开源项目,我已经设法将线串转换为networkx边缘,并检测到封闭特征(将其他线串说成)并将其添加到最近的点,以便我可以运行最短路径算法。 但这对于一个shapefile很好。但是,我现在需要将来自不同shapefile的要素连接到一个大的networkx图形中。因此,例如,如果某个点在多边形内,则将其连接(通过连接,我的意思是添加一个networkx边-add_edge(g.GetPoint(1),g.GetPoint(2)),并在下一个shapefile中将该点也位于共享相似属性(例如ID)的多边形内,请注意,不同shps中的多边形仅共享相同的ID,而不共享坐标,而位于多边形内的点也不共享相同的坐标。 我对这个问题的解决方案是识别位于多边形中的点,将其存储,在下一个shapefile中找到具有相同ID的多边形中的点,然后在它们之间添加networkx边。 如何查找点是否位于多边形内?嗯,有一个众所周知的算法:RayCasting算法可以做到这一点。不过,这实际上是我遇到的问题,因为要实现算法,我需要多边形的坐标,而且即使浏览了OGR的Geometry 文档也不知道如何立即访问它们。因此,我要问的问题是如何访问多边形点或坐标,或者是否有更简单的方法来检测点是否落在多边形内?在osgeo.ogr库中使用python,我编写了以下代码: if g.GetGeometryType() == 3: #polygon c = g.GetDimension() x = g.GetPointCount() y = g.GetY() z = g.GetZ() 查看图片以更好地了解我的问题。 [编辑] 到目前为止,我已经尝试将所有多边形对象存储在列表中,然后再与之比较线串的第一和最后一点。但是Paolo的示例与使用“点对象”引用和“多边形对象”引用有关,这与线对象引用不兼容,因为不是整个线都在多边形内,而是其线串的第一个或最后一个点。 [EDIT3] 从线串的第一个点和最后一个点的坐标创建一个新的Geometry点对象,然后使用该对象与列表中保存的多边形几何对象进行比较似乎很好: for findex in xrange(lyr.GetFeatureCount()): f = lyr.GetFeature(findex) flddata = getfieldinfo(lyr,f,fields) g = f.geometry() if g.GetGeometryType() == 2: for j in xrange(g.GetPointCount()): if …

5
使用来自另一个dbf表的值更新一个shapefile属性表
我试图在这里解释我要做什么: 我有一个shapefile和一个具有相同字段的独立dbf表。在dbf表中填充了所有字段,但在shapefile属性表中仅填充了一个字段,将其命名为“ OneField”。我想做的是检查“ OneField”(Shapefile)中的值是否与“ OneField”(dbf表)中的值相同,如果是,则用这些填充在shapefile属性表中的其余空字段在独立的dbf表中。 目前,我只想将独立dbf表中的值复制到shapefile属性表中,但是我被卡住了。你能帮我一下吗? 这是代码: import arcpy table = "link/to/table.dbf" fc = "link/to/shapefile.shp" # Create a search cursor rowsTable = arcpy.SearchCursor(table) # Create an update cursor rowsFc = arcpy.UpdateCursor(fc) for row in rowsTable: row = row.getValue("OneField") valueTable = row for row in rowsFc: row = row.setValue("OneField", valueTable) rowsFc.updateRow(row) …
10 python  data  shapefile 

3
仅将ESRI shapefile的一部分读取到R中
我有一个很大的ESRI shapefile(> 8000个多边形,.shp文件> 32MB),我想在Windows 7上读入R。 我熟悉rgdal和readOGR()。但是,对于这种大小的shapefile,将整个shapefile读取到内存中的过程非常缓慢。此外,我只对shapefile中包含的8,000个聚集的多边形(<100个)感兴趣。我需要执行的过程是高度重复的,即shapefile需要加载多次,因此目前非常缓慢。 因此,我想知道是否有可能仅读取shapefile的一部分以加速该过程。加载如此大量的数据然后丢弃其中的大部分似乎不切实际。
10 shapefile  r  rgdal 

1
将经度/纬度转换为地图上的像素
我从这里有一张地图。我希望能够简单地将任意lon / lat对转换为地图上的像素(还可以进行反向转换)。这些地图带有.tfw文件和投影信息,这里是: 0.02222222222222 0.00000000000000 0.00000000000000 -0.02222222222222 -180.00000000000000 90.00000000000000 和投影信息: Projection: Plate Carree aka Geographic or "LatLong" Earth ellipsoid: Sphere, radius 6370997 m Datum: WGS84 Extent: 180 West to 180 East, 90 North to 90 South Size: 16,200 height samples wide x 8,100 high Resolution: 2.47 km/pixel 我对制图相关的知识完全陌生,据我所知,我应该首先进行从WGS84(单双)到地理投影的转换(不是吗?)。在我看来,它们实际上是相同的,但是上面的投影信息中的球体半径是6370997,并且与我在Plate Carree投影中发现的spacespacereference.com页面不同。无论如何,我发现DotSpatial.Projections库可以使用以下代码为我完成此操作: var …

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.