首页 文章

在谷歌 Map 上叠加ESRI shapefile的最佳方法?

提问于
浏览
60

在Google Map 中叠加shapefile的最佳方法是什么?

经过一些阅读建议,将shapefile转换为KML并在Google Map 中叠加KML是一种选择 . 如果是这种情况,我如何将shapefile转换为KML?

我相信会有一些开源工具可用于此转换 . 任何人都可以指向一个工具来将shapefile转换为KML而不会丢失任何数据吗?

7 回答

  • 2

    我喜欢使用(开源和gui友好)Quantum GIS将shapefile转换为kml .

    Google Maps API仅支持subset of the KML standard . 一个限制是文件大小 .

    要减小文件大小,可以使用Quantum GIS的"simplify geometries"功能 . 这个"smooths"多边形 .

    然后,您可以选择您的图层并在其上执行“另存为kml” .

    如果您需要处理一堆文件,可以使用来自osgeo4w shell的Quantum GIS的ogr2ogr命令对该过程进行批处理 .

    最后,我建议使用你最喜欢的压缩程序压缩你的kml,以减小文件大小并将其保存为kmz .

  • 16

    使用http://www.shpescape.com/将Shapefile导入Google FusionTables(http://www.google.com/fusiontables),然后您可以通过多种方式使用数据,例如 . 使用GoogleMaps显示它 .

  • 1

    你的意思是在_1231865中的shapefile吗?无论哪种方式,您都应该能够使用ogr2ogr包中提供的ogr2ogr执行转换 . 您需要 .shp 文件,理想情况下需要相应的 .dbf 文件(它将提供上下文信息) .

    另外,考虑使用像MapShaper这样的工具来降低shapefile的复杂性,然后再将它们转换为KML;您将根据所需的详细信息大幅减少文件大小 .

  • 9

    我不会使用KML . 相反,请使用现在可以在Google Maps API中本机使用的GeoJSON . 这是一个较新的功能,原始响应中不存在 .

    在任何情况下,只需打开Quantum GIS中的SHP文件,然后您可以以任何您喜欢的格式(KML,GeoJSON)输出它 .

    如果您使用的是Google Maps for Work,我发现了一个高级扩展程序,可直接处理加载shapefile,您可以直接连接到从ESRI生成的shapefile . 我在CMaps网站上搜索了一下,发现这个片段通过状态shapefile加载了美国:https://gmapsplugin.net/cmapsanalytics/assets/shapes/usstates.shp

    var cMap = new centigon.locationIntelligence.MapView();
        cMap.key([your_api_key]);
    
    
        cMap.layerNames(["Basic Shapes"]);
        cMap.dbfKeys([['Alabama','Alaska','Arizona','Arkansas','California','Colorado','Connecticut','Delaware','District of Columbia','Florida','Georgia','Hawaii','Idaho','Illinois','Indiana','Iowa','Kansas','Kentucky','Louisiana','Maine','Maryland','Massachusetts','Michigan','Minnesota','Mississippi','Missouri','Montana','Nebraska','Nevada','New Hampshire','New Jersey','New Mexico','New York','North Carolina','North Dakota','Ohio','Oklahoma','Oregon','Pennsylvania','Rhode Island','South Carolina','South Dakota','Tennessee','Texas','Utah','Vermont','Virginia','Washington','West Virginia','Wisconsin','Wyoming']]);
        cMap.userShapeKeys([['Massachusetts','Minnesota','Montana','North Dakota','Hawaii','Idaho','Washington','Arizona','California','Colorado','Nevada','New Mexico','Oregon','Utah','Wyoming','Arkansas','Iowa','Kansas','Missouri','Nebraska','Oklahoma','South Dakota','Louisiana','Texas','Connecticut','New Hampshire','Rhode Island','Vermont','Alabama','Florida','Georgia','Mississippi','South Carolina','Illinois','Indiana','Kentucky','North Carolina','Ohio','Tennessee','Virginia','Wisconsin','West Virginia','Delaware','District of Columbia','Maryland','New Jersey','New York','Pennsylvania','Maine','Michigan','Alaska']]); 
        cMap.labels([['Massachusetts','Minnesota','Montana','North Dakota','Hawaii','Idaho','Washington','Arizona','California','Colorado','Nevada','New Mexico','Oregon','Utah','Wyoming','Arkansas','Iowa','Kansas','Missouri','Nebraska','Oklahoma','South Dakota','Louisiana','Texas','Connecticut','New Hampshire','Rhode Island','Vermont','Alabama','Florida','Georgia','Mississippi','South Carolina','Illinois','Indiana','Kentucky','North Carolina','Ohio','Tennessee','Virginia','Wisconsin','West Virginia','Delaware','District of Columbia','Maryland','New Jersey','New York','Pennsylvania','Maine','Michigan','Alaska']]); 
    
        cMap.polyDataSources([centigon.locationIntelligence.CMapAnalytics.DATA_PROVIDERS.SHAPE_DATAPROVIDER]);
        cMap.layerTypes([centigon.mapping.Layer.TYPE.POLY]);
        cMap.locations([["https://gmapsplugin.net/cmapsanalytics/assets/shapes/usstates.shp"]]);
    
        cMap.panTo("USA");
        cMap.zoomLevel(3);
    
  • 38

    Free "Export to KML" script for ArcGIS 9

    Here is a list有人发现的可用方法 .

    此外,在我看来,多边形图层的最有效表示是使用Google Maps API的折线编码,它可以显着压缩lat-lng数据 . 但是进入该格式需要工作:使用ArcMap将Shape导出为lat / lng坐标,然后使用Google Maps API转换为折线 .

  • 0

    只是为了更新这些答案,ESRI在ArcMap 10.X中包含了这个名为Layer to KML的工具 . 此外,还存在Map to KML工具 .

    只需导入所需的图层(矢量或光栅)并选择输出位置,分辨率等 . 非常简单的工具 .

  • 13

    2018年......我发现这个奇妙的在线工具http://mapshaper.org/可以从ESRI shapefile转换为SVG,TopoJSON,GeoJSON .

    以下是如何使用它的说明https://www.statsilk.com/maps/convert-esri-shapefile-map-geojson-format

    快速而直截了当! :)

相关问题