使用geokml3在谷歌地图上加载KML层

Load KML Layer on google Maps using geokml3

本文关键字:加载 KML 谷歌地图 geokml3 使用      更新时间:2023-09-26

我想使用Geoxml3在googlemap上加载kmlfile, googlemap被加载但层未显示,我不知道我的代码有什么问题,有人能帮助吗?

<script type="text/javascript">
var mapInstance;
var parser;
function doAlert() {
        alert("Parsed triggered!");
}
function initialize() {
        console.log("in init");
        var latlng = new google.maps.LatLng(41.1188827, 1.24449090);
        var mapOptions = {
                zoom: 14,
                center: latlng,
                mapTypeId: google.maps.MapTypeId.ROADMAP,
                mapTypeControlOptions: {
                style: google.maps.MapTypeControlStyle.DEFAULT
                }
        };
        mapInstance = new google.maps.Map(document.getElementById("map"), mapOptions);
        parser = new geoXML3.parser({
                map: mapInstance,
                zoom: false,
                processStyles: true,
                singleInfoWindow: true
                }
        );
        google.maps.event.addListener(parser, 'parsed', doAlert);       
        parser.parse('postes.kml');
}               
</script>
</head>
<body onload="initialize()">
        <div id="map" style="width: 100%; height: 100%"></div>
</body>
</html>

您不创建标记,您只解析kml,但不将其设置为映射。这是一些来自https://code.google.com/p/geoxml3/wiki/Usage

的示例代码
<script type="text/javascript">
    var myMap = new google.maps.Map(...);
    var myParser = new geoXML3.parser({
      map: myMap,
      processStyles: true,
      createMarker: addMyMarker,
      createOverlay: addMyOverlay
    });
    myParser.parse(['my_geodata1.kml', 'my_geodata2.kml']);
    function addMyMarker(placemark) {
      // Marker handling code goes here
      if (someCondition) {
        myParser.createMarker(placemark);
      }
    };
    function addMyOverlay(groundOverlay) {
      // Overlay handling code goes here
      if (someCondition) {
        myParser.createOverlay(groundOverlay);
      }
    };
  </script>