kmz文件不起作用

时间:2015-06-15 13:15:08

标签: javascript google-maps

我有一个KMZ文件,如下所示:

example.kmz:
  ->example.png
  ->example.kml

example.kml:

<?xml version="1.0" encoding="utf-8" ?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Document id="root_doc">
<Schema name="test" id="test">
    <SimpleField name="ID1" type="int"></SimpleField>
</Schema>
<Folder>
      <name>Ground Overlays</name>
      <visibility>0</visibility>
      <description>Examples of ground overlays</description>
      <GroundOverlay>
        <name>example overlay</name>
        <visibility>0</visibility>
        <description>Overlay example png.</description>
        <Icon>
          <href>example.png</href>
        </Icon>
        <LatLonBox>
          <north>50.080654</north>
          <south>50.079959</south>
          <east>19.993121</east>
          <west>19.992118</west>
          <rotation>0.0</rotation>
        </LatLonBox>
      </GroundOverlay>
    </Folder>
</Document>
</kml>

这样的JS代码:

var map = new google.maps.Map(document.getElementById('mapDiv'), {
            zoom: 11,
            minZoom: 1,
            streetViewControl: false
        });

//adding kmz layer from file
var kmzLayer = new google.maps.KmlLayer('/kml/example.kmz');
kmzLayer.setMap(map);

var markers = [];
var bounds = new google.maps.LatLngBounds();
//adding markers

// Automatically center the map fitting all markers on the screen
map.fitBounds(bounds);

问题是,地图生成正常,标记正常,但控制台没有错误,而KMZ文件中的groundOverlay不会在地图上呈现。

我找不到理由 - 我错过了什么? 我手动创建了KMZ文件 - 也许我错过了什么?但是,为什么没有错误?

感谢您的帮助

EDIT1 我用elsevier-apps.sciverse.com/GoogleMaps/verification检查了我的KMZ文件 在线验证器 - 一切正常。

1 个答案:

答案 0 :(得分:0)

因此,事实证明 - 您无法使用本地KML / KMZ文件。所有文件必须公开访问,您应该将工作URL放入 new google.maps.KmlLayer(VALID_URL);


或...
您可以使用geoxml3来解析本地KMZ / KML文件。

所以现在,一切都运转得很好:)我的KMZ文件是正确的,我的JS代码也是正确的(除了上面描述的这一部分)。我希望它可以帮助某人:)