0

我想知道是否有一种方法可以使用 Google Maps API 显示在线托管的 kml 的地标。当我搜索在线 KML -> https://maps.google.com/maps?f=q&hl=en&q=http时,我想做的是有一个面板来导航文件夹,就像谷歌地图提供的文件夹一样://kmlscribe.googlepages.com/SamplesInMaps.kml

使用 API 仅显示 KML 没有任何问题,这是我拥有的代码:

<html>
<head>
    <script type="text/javascript" src= "http://maps.google.com/maps/api/js?sensor=true">
    </script>
    <script>
var map;
var cta_layer;

function initialize() {
    var kmlUrl = 'http://kmlscribe.googlepages.com/SamplesInMaps.kml';
    var myOptions = {
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    cta_layer = new google.maps.KmlLayer(kmlUrl, {suppressInfoWindows: false,preserveViewport:false});
    cta_layer.setMap(map);
}
    </script>
</head>
<body onload="initialize()">
    <div id="map_canvas"  style="height: 800px;width: 800px;">
    </div>
</body>

感谢您的帮助。

4

1 回答 1

0

查看 KML 的第三方解析器。 geoxml-v3有最好的“侧边栏”支持。您也可以使用geoxml3,但您必须自己构建侧边栏。

笔记:

  1. 这两个第三方解析器都在浏览器中解析 KML 并使用本机 Google Maps API v3 对象呈现它,因此它们对于复杂的 KML 可能存在性能问题。

  2. 如果 KML 托管在与网页不同的域中,则它们需要代理才能访问 KML(由于 XmlHttpRequest 的域限制相同)

例子

于 2013-04-08T15:20:25.460 回答