2012-03-21 9 views
11

Czy jest jakiś sposób wykorzystania pliku KMZ w Mapach Google? Mój plik KML ma rozmiar około 10,7 MB, więc nie ładuje się w Mapach Google. Plik KMZ ma rozmiar około 2 MB. Jedynym sposobem, jaki widzę, jest posiadanie wielu KML, ale to za dużo pracy. Mogłem to zrobić, ale zastanawiałem się, czy można użyć KMZ?Używanie plików KMZ w Google Maps

Dzięki.

Odpowiedz

16

Tak, można określić plik KMZ za pomocą API mapy:

var kmzLayer = new google.maps.KmlLayer('http://www.kmzlinks.com/redirect.asp?id=110&file=PalmIsland%2Ekmz'); 
kmzLayer.setMap(map); 

w Twoim konkretnym przypadku, skrypt powinien wyglądać następująco:

<script type="text/javascript"> 
    function initialize() { 
    var myOptions = { 
     center: new google.maps.LatLng(58.33, -98.52), 
     zoom: 11, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    var kmzLayer = new google.maps.KmlLayer('http://xeenat.com/energy/data.kmz'); 
    kmzLayer.setMap(map); 
    } 
</script> 

ALE - KML jest zbyt duża . Mimo że jest skompresowany do 2 MB w postaci pliku KMZ, przeglądarka sprawdza rozmiar po jego zdekompresowaniu, aw Twoim przypadku jest większy niż 10 MB. Spróbuj trochę go skrócić - jeśli zastąpisz URL KMZ tym, który znajduje się w pierwszym fragmencie powyżej, zadziała. Wygląda na to, że musisz użyć wielu plików KML. Być może możesz załadować KMZ do Google Earth, a następnie zapisać każdą prowincję jako swój własny plik (kliknij prawym przyciskiem myszy folder na karcie "Miejsca" Earth i wybierz Zapisz jako ...)

+0

w twoim kodzie mapa nie jest zadeklarowana jako zmienną globalną, więc gdy ją wywołasz, pojawia się wyjątek: Uncaught ReferenceError: mapa nie jest zdefiniowana. Musisz wstawić var map; before function initialize() { –

+0

Wygląda na to, że KMZ nie pomoże w tym przypadku - nadal istnieje ograniczenie rozmiaru nieskompresowanego pliku KML z pliku KMZ: https://developers.google.com/kml/documentation/mapsSupport –

+1

@MikeJeffrey Jestem bardzo początkującym użytkownikiem JavaScript i zrobiłem to, co powiedziałeś, ale teraz moja mapa się nie ładuje. W rzeczywistości mam ten cały fragment kodu z dokumentacji Google Maps v3. – mapr

2

Tak, możesz określić Plik KMZ dokładnie w taki sam sposób, w jaki określasz plik KML, który możesz ustawić jednocześnie zauważyć jak nic się nie zmienia oprócz nazwy zmiennej i rozszerzenia pliku:

var kmz_Layer = new google.maps.KmlLayer('http://www.kmzlinks.com/redirect.asp?id=110&file=PalmIsland%2Ekmz'); 
var kml_Layer = new google.maps.KmlLayer('http://www.kmzlinks.com/redirect.asp?id=110&file=PalmIsland%2Ekml'); 
kml_Layer.setMap(map); 
kmz_Layer.setMap(map);