1

我使用 Google 地球创建了一个 kml 文件,该文件使用外部图像创建了一个叠加层。它运行良好,我想找到一种相当方便的方式来转换 kml,以便 Google 地图可以读取它并以类似的方式显示它。

谷歌地图无法处理谷歌地球坐标,所以我尝试自己转换它们。例如我替换了地球坐标:

<gx:LatLonQuad>
<coordinates>
-80.34344837780532,33.1105864538138,0 
-80.31934785561177,33.09410014458361,0 
-80.30034967982111,33.11373571527255,0 
-80.32473786478347,33.13044135685429,0 
</coordinates>
</gx:LatLonQuad>

具有等效的地图坐标:

<LatLonBox>
<north>33.13044135685429</north>
<south>33.11373571527255</south>
<east>-80.31934785561177</east>
<west>-80.34344837780532</west>
</LatLonBox>

不幸的是,它们并不完全“等效”。地图叠加层略微偏离并且旋转不正确。

以下是两人的照片:

地球示例

在此处输入图像描述

地图示例

在此处输入图像描述

我知道为什么它不起作用,但我对另一种解决方案感到茫然。任何人都知道在涉及图像叠加时将 Google Earth kml 转换为 Google Maps kml 的简单方法?

4

1 回答 1

1

根据KML 参考a<LatLonBox>也有一个旋转。不确定 Google 地图是否支持该功能,但它应该可以解决您遇到的问题。允许您指定一个旋转框(这<gx:LatLonQuad>就是您正在做的事情),这就是指定的内容:

http://www.geocodezip.com/geoxml3_test/v3_geoxml3_kmltest_linktoB.html?filename=http://www.geocodezip.com/geoxml3_test/GoogleEarthPolygon.kml

根据Google Maps 的 KML 参考,支持 LatLonBox,不支持旋转:

 KML Element    Supported in Google Maps? 
 <LatLonBox>    yes
 <rotation>     no

因此,您需要使您的叠加层在北/南东/西边界(未旋转的 LatLonBox)上对齐以在 Google 地图上工作。

您计算的 LatLonBox(小蓝框)有问题,您需要绿框:

http://www.geocodezip.com/v3_GoogleEx_layer-kml_linktoB.html?filename=http://www.geocodezip.com/geoxml3_test/GoogleEarthPolygonA.kml

我认为解决这个问题的唯一方法是让你的原始图像旋转它并保存一个在北/东南东/西边界上对齐的图像,该图像适合更大的盒子。

要么以某种方式制作支持旋转的自定义叠加层。

于 2013-03-06T22:41:16.750 回答