Использование файлов KMZ в Картах Google

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

Спасибо.

Ответ 1

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

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

В вашем конкретном случае ваш script должен выглядеть следующим образом:

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

Ответ 2

Да, вы можете указать файл 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);