如何访问点击的多边形以在Google Maps Api v3中更改它的样式

时间:2016-03-23 21:49:12

标签: google-maps-api-3 kml

我使用类似下面的代码来显示建筑物KML图层。 Click事件有效,我得到名字和HTML。我需要做的是,我想改变点击的多边形/线的样式。我想说我想改变边框宽度。我怎么能这样做?

function initMap() {
    var map = new google.maps.Map(document.getElementById('map'), {
        zoom: 11,
        center: {
            lat: 41.876,
            lng: -87.624
        }
    });

    var ctaLayer = new google.maps.KmlLayer({
        url: 'http://googlemaps.github.io/js-v2-samples/ggeoxml/cta.kml',
        map: map
    });

    ctaLayer.addListener('click', function(kmlEvent) {
        //need to change style of the clicked element here.
    });
}

1 个答案:

答案 0 :(得分:1)

您无法使用API​​更改KmlLayer的样式。

选项:

  1. 使用FusionTablesLayer(将您的KML导入FusionTable,您可以从FusionTable动态设置折线样式)。

  2. 使用第三方KML解析器(例如geoxml3geoxml-v3)将KML呈现为原生Google Maps JavaScript API v3折线,然后修改它们。请注意,第三方解析器遵循KML的相同域安全策略,因此只能通过代理从其他域访问KML。

  3. example using geoxml3 (polylines change to yellow on mouseover)