12

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

谢谢。

4

2 回答 2

18

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

于 2012-03-21T18:17:10.057 回答
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);
于 2015-02-10T22:53:11.103 回答