将多边形导入Google我的地图

Import Polygon Into Google My Maps

本文关键字:我的 地图 Google 导入 多边形      更新时间:2023-09-26

背景

我有一个谷歌地图,用JavaScript API创建。。我有一组多边形,它们覆盖在地图上。

这些多边形最初是KML文件,但已转换为编码的多边形。编码算法信息:https://developers.google.com/maps/documentation/utilities/polylinealgorithm

示例:

oosrFrdygOh_sJpchBoog@y{lPyylHtcA_t'praM

这是俄亥俄州的一个4点多边形。

问题

我的问题是,有没有办法将这些导入谷歌我的地图?我想导入这些,以便编辑它们。

答案是否定的,编码的多边形无法导入。要将形状导入"我的地图",必须首先将其转换为KML文件。

BlueCollar提出了第一步,即使用Google的编码API将编码形状解码为Lat/Lng对。

var encodedPath = 'oosrFrdygOh_sJpchBoog@y{lPyylHtcA_t'praM';
var path = google.maps.geometry.encoding.decodePath(encodedPath);

对于示例编码值,它将返回:

(39.91816, -85.33082),(38.013470000000005, -85.86915),(38.22091, -83.01270000000001),(39.76632, -83.02369),(39.91816, -85.33082)

然后需要将这些对插入到KML文件中:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
  <Placemark>
    <name>Test Shape</name>
    <Polygon>
      <extrude>1</extrude>
      <altitudeMode>relativeToGround</altitudeMode>
      <outerBoundaryIs>
        <LinearRing>
          <coordinates>
            -85.33082,39.91816
            -85.86915,38.01347
            -83.01270000000001,38.22091
            -83.02369,39.76632
            -85.33082,39.91816
          </coordinates>
        </LinearRing>
      </outerBoundaryIs>
    </Polygon>
  </Placemark>
</kml>

然后可以导入KML文件。

尝试对编码字符串调用decodePath(),即:

let encodedPath = 'oosrFrdygOh_sJpchBoog@y{lPyylHtcA_t'praM'; let path = google.maps.geometry.encoding.decodePath(encodedPath);