在Maps API中启用/禁用kml文件中的地标?

时间:2016-10-30 08:57:31

标签: javascript google-maps google-maps-api-3

function initMap() {
  var map = new google.maps.Map(document.getElementById('map'), {
    zoom: 12,
    center: {lat: 37.06, lng: -95.68}
  });
  var kmlLayer = new google.maps.KmlLayer({
    url: 'http://googlemaps.github.io/kml-samples/kml/Placemark/placemark.kml',
    suppressInfoWindows: true,
    map: map
  });
}

加载KML文件的简单示例,该文件将在地图上显示地标,取自:https://developers.google.com/maps/documentation/javascript/examples/layer-kml-features

我的问题是,如何切换地标?我希望首先禁用所有这些功能,但是当我运行测试,搜索或其他任何内容时,我可以显示某些内容。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

您无法动态修改KmlLayer中显示的地标。

选项:

  1. 使用第三方KML解析器,例如geoxml3geoxml-v3,它们将KML显示为本机Google Maps Javascript API v3对象,可以动态隐藏/显示。
  2. example

    1. 将您的KML导入FusionTables并使用FusionTablesLayer,您可以通过更改图层查询来切换显示的对象。

    2. 在您的服务器上创建动态KML并使用KmlLayer显示