2015-06-15 4 views
2

У меня есть файл KMZ, который выглядит следующим образом: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); 

Проблема в том, что карта сгенерирована ОК, маркеры в порядке, но в консоли нет ошибок, в то время как groundOverlay из файла KMZ не отображается на карте.

Я не могу найти причину этого - что мне не хватает? Я создал файл KMZ вручную - возможно, я что-то пропустил? но тогда, почему нет ошибки?

Спасибо за помощь

EDIT1 Я проверил файл KMZ с elsevier-apps.sciverse.com/GoogleMaps/verification онлайн валидатор - все отлично работает там.

ответ

0

Итак, как оказалось: вы не можете использовать локальные файлы KML/KMZ. Все файлы должны быть доступ общественности, и вы должны поставить рабочий URL в new google.maps.KmlLayer(VALID_URL);


или ...
вы можете использовать geoxml3 для анализа локальных файлов KMZ/KML.

Так что теперь все работает отлично :) Мой файл KMZ был верным, мой JS-код был также правильным (за исключением этой части, описанной выше). Я надеюсь, что это поможет кому-то :)

Смежные вопросы