在Google地图中使用KMZ文件

时间:2012-03-21 18:06:57

标签: google-maps-api-3 kml kmz

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

感谢。

2 个答案:

答案 0 :(得分:17)

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

答案 1 :(得分: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);