在 Google 地图中使用 KMZ 文件

问题描述 投票:0回答:3

有什么方法可以在 Google 地图中使用 KMZ 文件吗?我的 KML 文件约为 10.7MB,因此无法加载到 Google 地图上。 KMZ 文件大约 2MB。我认为唯一的方法是拥有多个 KML,但工作量太大。我可能最终会这样做,但只是想知道是否可以使用 KMZ?

谢谢。

google-maps-api-3 kml kmz
3个回答
21
投票

是的,您可以使用地图 API 指定 KMZ 文件:

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 太大了。尽管它作为 KMZ 被压缩到 2MB,但地图会查看解压后的大小,在您的情况下,它大于 10MB。尝试将其缩小一点 - 如果将您的 KMZ URL 替换为上面第一个片段中的 URL,它将起作用。看来您需要使用多个 KML 文件。也许您可以将 KMZ 加载到 Google 地球中,然后将每个省保存为自己的文件(右键单击地球“地点”选项卡中的文件夹,然后选择另存为...)


2
投票

是的,您可以以与指定 KML 文件完全相同的方式指定 KMZ 文件,您甚至可以同时设置两者,注意除了变量名称和文件扩展名之外没有任何变化:

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

-1
投票

pessoal estou trabalhando com kmz、kml porem ele sao muito grandes、existe alguma forma、mesmo paga de carregar um arquivo desse tamanho na web e depoismostrar sobre o mapa? ele tem aproximadamente 50mb(kmz) seria possivel?

© www.soinside.com 2019 - 2024. All rights reserved.