【问题标题】:Google Maps JavaScript API won't display markers from KML exported from My MapsGoogle Maps JavaScript API 不会显示从“我的地图”导出的 KML 中的标记
【发布时间】:2015-09-01 04:42:34
【问题描述】:

我想使用 Google Maps JavaScript API 显示 Google 我的地图上的地图;这样我就可以轻松地将多个地图合并为一个并创建路径/标记,而无需以编程方式进行。

这是我正在使用的测试地图。这是一张粗糙的地图,但我希望路径和标记都显示在我的 JavaScript 中。

https://www.google.com/maps/d/edit?mid=z_Tk3EyXNpN8.k743LUvJRr1U&usp=sharing

这里是 JavaScript: http://jsfiddle.net/gB2YD/66/

发生的情况是我绘制的路径显示得很好,但我一生都无法弄清楚如何让标记实际显示。

<title>Google Maps API v3 : KML Layer</title>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false">
</script>

<body onload="display_kmlmap()">

<div id="map_canvas" style="width:500px; height:400px; float:left">
</div>
</body>

...

function display_kmlmap()
{
    // https://www.google.com/maps/d/edit?mid=z_Tk3EyXNpN8.k743LUvJRr1U&usp=sharing
    var map_options = { };  
    var map = new google.maps.Map(document.getElementById("map_canvas"),map_options);

    var kmlUrl = 'https://rawgit.com/Ravenstine/a3b18c71942a812b5b11/raw/dafd404a0410bfbc7c4ef77ef1c6437b313e8cf0/testmap.kml';
   var kmlOptions = { map: map};

    // Create the kmlLayer - and you are done
    var kmlLayer = new google.maps.KmlLayer(kmlUrl, kmlOptions);
}

奇怪的是,当我第一次尝试通过概念验证进行此操作时,我可以发誓一个月前标记看起来还不错。

【问题讨论】:

  • @sajanyamaha 我也注意到了这一点,尽管这似乎是正常行为(尽管我不太清楚为什么)。不知何故,JavaScript API 向该 URL 发送了一个请求,允许它检索足够的 KML 来显示路径。我不知道它还能如何获得这些数据。我创建该 KML 文件的方法是转到问题中的第一个链接,单击共享图标,选择“下载 KML”,然后选中两个复选框。尽管无论我选择哪种设置,我都会遇到同样的问题。

标签: javascript google-maps google-maps-api-3 maps kml


【解决方案1】:

似乎有一个错误。

当我从

中删除 &lt;color/&gt;

Style#icon-503-DB4436-nodesc-normal&gt;IconStyle我看到了标记。

根据文档,&lt;color/&gt; 根本不支持 &lt;IconStyle/&gt; 并且将被忽略,因此它不应该影响渲染。

相关:Issue 8551 in the issue tracker

【讨论】:

  • 如果是这种情况,我可能有点搞砸了,因为我需要使用链接地图,以便 JavaScript 地图反映我对 Google 我的地图地图所做的更改。我不确定我是否可以编写一个代理来编辑 KML,因为他们的网络似乎混淆了它。
  • 它没有被混淆,它是压缩的,你必须解压归档文件(kmz),它包含一个文件doc.kml。但是,我已经提交了错误报告:code.google.com/p/gmaps-api-issues/issues/…
  • 谢谢你,顺便说一句。我自己可能没有想到这一点。我的客户需要一张将他们的“我的地图”地图与另一个具有其位置历史记录的 KML 源相结合的地图,因此他们必须能够使用“我的地图”并在组合地图上更新他们的更改。由于我没有时间弄清楚如何在客户端压缩 zip 并通过 KML 进行解析,所以我只是在 Ruby 中编写了一个代理来去除这些颜色标签。
猜你喜欢
  • 1970-01-01
  • 2016-11-17
  • 1970-01-01
  • 2015-07-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-27
  • 2012-05-26
  • 1970-01-01
相关资源
最近更新 更多