【问题标题】:How to convert .shp or .kml file to Google Maps polygon coordinates?如何将 .shp 或 .kml 文件转换为 Google Maps 多边形坐标?
【发布时间】:2014-02-17 20:00:17
【问题描述】:

我有一个 .shp 文件,并尝试使用许多工具(shp2kml、ESRI 转换器、qgis)将其转换为 kml 文件。当我仔细查看 kml 文件时,当我在谷歌地图中定位一个位置时,坐标似乎与同一区域的坐标不同。另一方面,所有形状似乎都显示在 kml 文件中......但是,我无法将它们放入 Google 地图中(我想使用 Google 地图而不是 Google 地球)。

我不打算让 Google 地图读取 .kml 文件,因为我想要polygons available for coding

现在,我想将 .kml(或原始 .shp 文件)转换为 Google 地图多边形(每个形状都是一个多边形)。我怎样才能做到这一点?

从文件中获得正确的 Google 地图多边形坐标对我来说已经是一个巨大的胜利。在 Google 上,我找不到答案。

谢谢!

【问题讨论】:

  • 您是否查看过第三方 KML 解析器(geoxml3geoxml-v3)?他们将获取同一域中的 KML 文件,并使用本机 Google Maps Javascript API v3 对象进行渲染。
  • 使用 Google Maps API 时,KML 有时会让人头疼。我更喜欢使用gdal's ogr2ogr 将 shapefile 转换为 GeoJSON。 GeoJSON 很容易转换为 Google Maps 类型。甚至还有一个名为 geojson-google-maps 的第三方 JS 库。

标签: google-maps google-maps-api-3 kml shapefile google-polyline


【解决方案1】:

我遇到了同样的问题!

如果特征对象是一个 Poligon:

if (event.feature.getType()=='Polygon'){
    var gP = event.feature.getGeometry(); //return Polygon geometry object
    var gLG = gP.getArray()[0]; //return the LinearRing geometry object
    var arPnt = gLG.getArray(); //return the points of the LinearRing 
    var poly = new google.maps.Polygon({paths: arPnt });
}

一行:

var poly = new google.maps.Polygon({paths: event.feature.getGeometry().getArray()[0].getArray()});

【讨论】:

    猜你喜欢
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-05
    • 1970-01-01
    • 2015-04-10
    相关资源
    最近更新 更多