如何将形状文件 (GIS) 转换为文本?
或者,我如何提取形状文件中的信息?
10 回答
如果您愿意编写一些代码(并且您可能无论如何都需要编写代码,因为 shapefile 中有相当多的信息,并不是任何给定应用程序都感兴趣的所有信息)查看shapelib。它与许多脚本语言绑定。它还构建了 dbfdump,它是一个可执行文件,用于转储 dbfiles 和转储 shp 文件的 shpdump。
如果您在 R 中编程,也很有趣的是 maptools 包。
查看Gdal/ogr绑定
我写了一个小应用程序,可以将你的 shapefile 转换为 KML。不完全是文本,而是人类可读和可跨地图应用程序共享。http://www.reimers.dk/files/folders/google_maps/entry328.aspx
尝试使用MyGeodata GIS Data Formats 和 Corrdinate systems Converter-online。它使用此处提到的 OGR 库,并允许将最常用的 GIS 格式转换为任何其他 GIS 格式 - 例如从 ESRI ShapeFile 转换为 GeoJSON、GML、CSV 或其他基于文本的格式。
有一个网页可以查看内容: http ://webprocessresults.com/pgsActv/ShpDump.aspx
同一站点提供免费的桌面(Windows)版本: http ://webprocessresults.com/svcs/FreeStuff/FreeStuff.aspx
如果您使用的是 arcGIS 并且 shapefile 由多个文件组成,您可以尝试在 excel 中打开 .dbf 文件并将其保存为另一种格式(例如 csv) - 我已经这样做了很多次并且没有任何不适效果,它是一种非常快速和简单的方法,可以转换你的 shapefile 或进行任何剧烈的编辑,保存为 csv,然后将它们重新导入 GIS 以保存为新的 shapefile。我会说这是一个不优雅的解决方案;)
您可以在此处找到详细说明的大多数 shp(形状文件)格式:http ://en.wikipedia.org/wiki/Shapefile 。完整的规范在这里:http ://www.esri.com/library/whitepapers/pdfs/shapefile.pdf 。
文件格式非常简单,shp
但请注意长度字段是针对 16 位字而不是 8 位字的。如果您忘记了这一点,您将在尝试解析记录时花费一些时间来调试出了什么问题。
dbf
通常包含与每个形状相关的信息。您也可以解析dbf
文件,但您必须使用自己的阅读器。我以前做过,但最简单的可能是将它加载dbf
到一些电子表格应用程序中,然后将其保存为csv
文件,然后加载它。另外,如果我没记错的话,您必须小心,因为那里的一些详细说明dbf
可能会有些偏差。它与不同版本有关,其中某些字段略有不同。因此,如果您自己滚动并且卡住了,请注意您可能正在正确阅读它,但它与您使用的规范不同。我认为解决方案是返回谷歌并搜索一些不同的文档,最后详细说明我正在阅读的版本。
和由记录索引链接shp
。dbf
the 中的第一个记录shp
与 the 中的第一个记录链接,dbf
依此类推。
您可以很容易地找到格式规范,dbf
例如:http: //www.clicketyclick.dk/databases/xbase/format/index.html。如果您愿意自己动手,那将不是一个太大的项目。
无论如何,无论您选择滚动自己的阅读器,dbf
还是shp
需要注意这些字段,因为有些是大字节序,有些是小字节序。我认为这仅适用于shp
文件。
您可以打开 dbf 文件并将内容复制到另一种格式,例如 odt 或 XLSX。
对于打开的 dbf 文件,建议使用 LibreOffice Calc
如果你真的只需要 shapefile 中的内容,那么寻找 .dbf 文件会给你一个更好的视图。您可以使用任何 excel 查看器直接打开“.dbf”文件以查找 shapefile 中的内容。