Использование файлов KMZ в Google Maps

есть ли способ использовать файл KMZ в Google Maps? Мой файл KML составляет около 10.7 MB, поэтому он не загружается на Google Maps. KMZ файл составляет около 2 МБ. Единственный способ увидеть это-иметь несколько KML, но это слишком много работы. Я мог бы в конечном итоге сделать это, но мне просто интересно, можно ли использовать KMZ?

спасибо.

2 ответов


Да, вы можете указать файл KMZ с помощью API Карт:

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

в вашем конкретном случае, ваш скрипт должен выглядеть так:

<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>

но - ваш KML слишком большой. Несмотря на то, что он сжат до 2 МБ как КМЗ, карты смотрят на размер после его распаковки, и в вашем случае это больше, чем 10 МБ. Попробуйте немного сократить его - если вы замените свой URL-адрес KMZ на тот, который указан в первом фрагменте выше, он будет работать. Похоже, вам нужно будет использовать несколько файл KML. Возможно, вы могли бы загрузить KMZ в Google Earth, а затем сохранить каждую провинцию как свой собственный файл (щелкните правой кнопкой мыши на папке на вкладке "места" Земли и выберите "Сохранить как"...)


Да, вы можете указать файл KMZ точно так же, как вы указали бы файл KML, который вы даже можете установить одновременно, заметьте, как ничего не меняется, кроме имени переменной и расширения файла:

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);