Answers:
使用开源ogr2ogr
从GDAL / OGR:
ogr2ogr -f 'ESRI Shapefile' output.shp input.kml
要使用在ArcGIS中作为KML或KMZ文件发布的空间数据,必须首先将KML转换为要素类(shapefile)。康涅狄格大学发布了一个脚本,用于从KML创建shapefile,称为KML_to_Shp.tbx。它运行良好,您可以在ArcToolbox中使用它。因为KML(应该)始终在地理坐标(WGS84)中,所以您最终将要将其转换为UTM Zone 15N NAD83 ...
与所有新工具一样,在使用前请查阅有关文档。可以在UCONN的土地使用教育和研究中心网站上找到。将其添加到工具箱并了解其局限性后,该工具将非常易于使用。
如果您对命令行工具感兴趣,可以使用OSGEO的GDAL / OGR。
值得一提的另一种商业产品是Global Mapper。这属于查看,转换,重新投影几乎可以想象的任何地理数据的类别。我在所教的课程中大量使用免费版本,几乎每个人都对这是GIS工具的瑞士军刀发表评论(尽管免费版本不进行翻译,但会显示所有菜单和选项)。以我的经验,这笔费用值得。
除了其他答案外,还有更多选择...
SL-King的fdo2fdo应用程序使用开源的FDO库,可让您执行KML到SHP的翻译,反之亦然。它包括一个GUI(表示格式到格式的转换和更多自定义的模式映射转换)以及一个命令行工具。
对于专有应用程序,安全软件的FME可让您控制如何将源信息映射到目标位置。如果您拥有ArcGIS,则可以通过数据互操作性扩展(格式列表)进行访问,但需要支付额外费用。
如果它们只是没有属性的点要素,我会考虑将XML解析为可以轻松导入的格式(例如CSV);您只是在寻找坐标标签之间的数据。
另一个选择是使用XToolsPro,它是在ArcGIS中工作的第三方扩展。在它们的许多方便的转换工具中,有“从KML导入数据”功能。
FME发布了一个在线工具的Beta版,该工具可以处理许多不同类型的转换,包括这种转换。 http://fmeserver.com/userweb/sharper/Portal/EasyTranslator/index.html 此转换器应该可以为您提供真正的帮助。
也有一些其他商业产品。想到Arc2Earth。它与ArcGIS Desktop集成得很好。http://www.arc2earth.com
您也可以从安全软件http://www.safe.com查看FME 。
有14天的试用期。利用FME,您甚至可以在数据转换/迁移过程中将KML文件中的属性映射为ESRI SHP格式,此外还可以根据某些属性或空间范围来过滤KML点文件。
当您有大量来自用户的KML文件时,也可以选择进行批量转换。
〜SRG
使用OGR进行命令行控制时,Google Earth Pro以及多种其他应用程序将为您提供图形化的转换方式
ET GeoWizards还具有从Google Earth导入的选项,该选项会将KML或KMZ文件转换为要素类。> http://www.ian-ko.com/ET_GeoWizards/gw_MainFeatures.htm
如果您正在寻找开放源代码选项,那么我会看到MapWindow刚刚更新,并且有几个用于与KML和shapefile相互转换的插件。
开源MapWindow GIS具有免费的扩展名(KML2Shapefile),用于将KML / KMZ文件转换为shapefile。
如果您有互操作扩展名,只需将KML直接加载到ArcMap中并导出到shp。
尽管对您的问题Q的回答相反,但如果有人来这里反之亦然,我发现此脚本非常适合SHP-> KML http://arcscripts.esri.com/details.asp?dbid=14273
如果您想在线转换文件,请尝试使用MyGeodata GIS格式并协调系统转换器。它基于ogr2ogr(gdal / ogr库)-因此几乎支持所有已知的GIS格式和坐标系...
Zonum Solutions的在线KML到Shapefile转换器也运行良好:
可能会产生更清晰结果的简便易行的帮助是,首先将KML转换为GPX(可以使用多种开源软件),然后打开各自的数据(GPX具有5种不同的信息类别:航点,航迹点,在QGIS中使用GDAL / OGR中的ogr2ogr使用“路线点,路线和路线”,并将其直接保存为.SHP文件格式。
如果需要,使用批处理来处理大量数据也很容易(例如,使用SAGA的“合并矢量层”)来生成单个形状文件,还可以在最终的“另存为SHP”之前清除空属性。
如果最终结果中出现奇怪的字符,请特别注意编纂系统...在向地图添加新的矢量数据时,可以选择适当的字符。
我参加聚会很晚,但是这里有一些其他方法:
Google Fusion Tables,它可以将KML点信息以.csv格式转换为WGS84 X和Y,然后可以在首选的GIS分析软件中使用。
在R.中使用rgdal软件包:
install.packages("rgdal")
library(rgdal) #load package
kmlfile=readOGR("yourkmlfilehere.kml") #load KML
writeOGR(kmlfile,"yourshapepath",layer="shapename", driver="ESRI Shapefile") #save shape
另一个提示:如果要使用命令行一次将一个文件夹/目录中的多个KML转换为shapefile,请在该文件夹中打开cmd并在其中键入以下内容:
对于(* .kml)中的/ R%f,请执行ogr2ogr -f“ ESRI Shapefile”“%〜dpnf.shp”“%f”
注意:它将使用KML的名称作为shapefile的名称,因此请确保您的KML具有shapefile的正确命名格式。shapefile将在与相应kml相同的目录中创建。子目录中的KML也将转换为shapefile。
要将KML转换为Shp文件格式,可以使用ogr2ogr实用程序。首先,您需要将其安装在系统中,如果已经安装,则在终端中使用ogr2ogr键入。
现在要进行转换,需要执行给定的命令,即
--- ogr2ogr -f 'ESRI Shapefile' Output_sahpefile.shp Input_KML.kml
这是ogr2ogr可以完成转换的方式,如果没有获得结果,则可以通过编码方法将Kml转换为shp。
这也可以使用PHP完成。您可以创建一个将此命令定义为字符串的函数,并可以在shell_exec()方法中将此字符串赋予执行的功能。Shell_exec()实际上执行命令并以字符串形式返回输出。
public function KML_to_shp($KMLfilepath,$output){
$query="ogr2ogr -f 'ESRI Shapefile' $output.gml $KMLfilepath";
shell_exec($query);
}
这是使用命令行工具ogr2ogr或使用php代码将kml转换为shp的帖子。如果您使用QGIS工具,则可以在此处kml浏览我的一篇博客文章,以使用QGIS进行shp转换,或者继续使用此文章。
在ArcGIS中,只需搜索“ kml TO LAYER”或“ Layer to KML”。该工具将帮助您转换为shapefile和KML