我使用类似下面的代码来显示建筑物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.
});
}
答案 0 :(得分:1)
您无法使用API更改KmlLayer的样式。
选项:
使用FusionTablesLayer(将您的KML导入FusionTable,您可以从FusionTable动态设置折线样式)。
使用第三方KML解析器(例如geoxml3或geoxml-v3)将KML呈现为原生Google Maps JavaScript API v3折线,然后修改它们。请注意,第三方解析器遵循KML的相同域安全策略,因此只能通过代理从其他域访问KML。
example using geoxml3 (polylines change to yellow on mouseover)