2012-03-21 43 views
11

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

谢谢。

回答

16

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

+0

,地图未声明为一个全局变量,所以当你调用它时,会出现一个异常:Uncaught ReferenceError:map没有被定义。你需要把 var map; 在函数初始化之前(){ – 2012-03-21 18:47:37

+0

看起来KMZ在这种情况下不起作用 - 对于KMZ中未压缩的KML仍然有一个大小限制:https://developers.google.com/kml/documentation/mapsSupport – 2012-03-21 18:52:44

+1

@MikeJeffrey我对JavaScript非常陌生,我已经完成了你所说的,但现在我的地图没有加载。实际上,我从Google Maps v3文档中获取了整个代码段。 – mapr 2012-03-21 18:54:03

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); 
在你的代码
相关问题