更改每个KML图层的标记颜色?

时间:2013-01-28 21:42:25

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

我在Google地图上有许多不同的KML图层(v3)。将标记的随机颜色分配给每组标记。但是,我希望能够控制它。

到目前为止,这就是我所拥有的:

map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);    
var kmlLayerOptions = { preserveViewport: true, suppressInfoWindows: true };    
var Layer1 = new google.maps.KmlLayer('http://myurl.com/1.xml', kmlLayerOptions);
Layer1.setMap(map);
var Layer2 = new google.maps.KmlLayer('http://myurl.com/2.xml', kmlLayerOptions);
Layer2.setMap(map);

我需要能够说我希望第1层使用蓝色标记,第2层使用红色标记,但我似乎无法弄清楚这一点。

从我所知道的,没有办法用kmlLayerOptions来做这件事,这就是它会发生的地方,所以我看不出我能在逻辑上做出哪些改变而不是直接在图层对象。

2 个答案:

答案 0 :(得分:1)

您无法使用KmlLayer更改它(至少目前,您可以创建Enhancement request to add the functionality)。

您可以使用FusionTablesLayers(将KML导入FusionTables,然后使用用户界面在Google Maps API v3中设置图标或动态样式(假设您需要少于5个不同的图标,以及您想要的图标)可以在FusionTables中获得。

最后一个选项是编辑现有的KML以使用您想要的图标。

答案 1 :(得分:1)

KmlLayer根据KML文档本身的样式进行渲染,您无法在任何图层选项中覆盖它。

如果您不想修改KML本身,可以使用第三方库(例如http://code.google.com/p/geoxml3/)在客户端上呈现KML,而不是让Google的服务器呈现它,这样就可以了能够覆盖渲染默认值。