1

我有一个 Google 地图,其中包含在 KML 文件中定义的点和多边形,并且点仅在另一个 KML 文件中定义。我希望能够根据缩放级别加载一个或另一个,并尝试了以下变体:

var url_end = "?nocache=" + (new Date()).valueOf();
var NWlayer = new google.maps.KmlLayer({
  if (map.getZoom() > 18){
    url: "http://www.example.com/Google/ShowPointsOnly.kml" + url_end
  }
  else {
    url: "http://www.example.com/Google/ShowAll.kml" + url_end
  }
});
NWlayer.setMap(map);

...但是根据我尝试的变化,无论缩放级别如何,我都会得到点和多边形,否则我根本没有得到任何地图。

4

1 回答 1

2

您需要为google.maps.Map zoom_changed 事件添加事件侦听器

var NWlayer1 = new google.maps.KmlLayer({
    preserveViewport: true,
    url: "http://www.example.com/Google/ShowPointsOnly.kml" + url_end
  });
var NWlayer2 = new google.maps.KmlLayer({
    preserveViewport: true,
    url: "http://www.example.com/Google/ShowAll.kml" + url_end
  });
google.maps.event.addListener(map, 'zoom_changed', function() {
  if (map.getZoom() > 18){
    NWlayer1.setMap(map);
    NWlayer2.setMap(null);
  } else {
    NWlayer1.setMap(null);
    NWlayer2.setMap(map); 
  }
});
于 2013-07-15T03:57:36.287 回答