我有一个谷歌地图,使用JavaScript API创建..我有一组多边形,它们是地图上的叠加层。
这些多边形最初是作为KML文件创建的,但已经转换为编码多边形。编码算法信息: https://developers.google.com/maps/documentation/utilities/polylinealgorithm
示例:
oosrFrdygOh_sJpchBoog@y{lPyylHtcA_t\praM
这是俄亥俄州的一个4点多边形。
我的问题是,有没有办法将这些导入Google我的地图?我想导入这些内容,以便我可以编辑它们。
答案 0 :(得分:0)
尝试在编码字符串上调用decodePath()
,即:
let encodedPath = 'oosrFrdygOh_sJpchBoog@y{lPyylHtcA_t\praM';
let path = google.maps.geometry.encoding.decodePath(encodedPath);
答案 1 :(得分:0)
答案是否定的,无法导入编码的多边形。要将形状导入“我的地图”,必须先将其转换为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文件。