Google 地图处理 KML

Google Maps mangling KML

我已经创建了一些世界区域的 KML 文件,以便使用 Google 地图 API 进行显示。这一直运行良好,但最近有一个区域开始显示,好像数据已损坏。你可以在这里明白我的意思:

https://drive.google.com/file/d/0B9u3tNbtEyFRMTdwQTdEa0U5S2s/view?pli=1

如果我在 Google 我的地图中加载相同的 KML,它仍然可以正确显示:

https://www.google.com/maps/d/viewer?mid=z8mYjxPmAgBQ.kGn7mza0JOSU

它以前显示很好,但现在即使我回滚到以前版本的文件,它也会以这种奇怪的方式显示。

KML 区域是使用 QGIS 的 Vector > Geoprocessing Tools > Dissolve 工具合并国家(到 shp 文件)创建的,然后我将其保存为 KML。数据来自Natural Earth's ne_50m_admin_0_countries data set.

有人知道可能出了什么问题吗?

我会说 Google 地图 KML 呈现引擎存在一些问题。当我使用 geoxml3 第三方解析器渲染它时它有效,但当我使用 Google 地图 Javascript API v3 KmlLayer 渲染它时它不起作用。

rendered with geoxml3

请注意,第三方解析器的性能将取决于 KML 的复杂性。在 KmlLayer 中使用的瓦片基础渲染几乎总是会表现得更好。

issue #8003 in the Google Maps Javascript API ve issue tracker

我以为我要疯了。直到几天前,这已经工作了很多年。 我同意它似乎是多边形穿过 "international date line" 或反子午线的地方。我在地图上看到水平直线。 此外,我将我的 KML 文件换成了另一个来自不同来源的 KML 文件,同样的问题。感谢您恢复我的理智,我浪费了紧张的一天试图解决这个问题,我认为这是一个 Google 问题。 ps。他们在 Google 地球上工作得很好。