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 ...)
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() { –
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 –
@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