我有一个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文件 在线验证器 - 一切正常。
答案 0 :(得分:0)
因此,事实证明 - 您无法使用本地KML / KMZ文件。所有文件必须公开访问,您应该将工作URL放入
new google.maps.KmlLayer(VALID_URL);
或...
您可以使用geoxml3来解析本地KMZ / KML文件。
所以现在,一切都运转得很好:)我的KMZ文件是正确的,我的JS代码也是正确的(除了上面描述的这一部分)。我希望它可以帮助某人:)