0

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

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

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 来做到这一点,这似乎是它会发生的地方,所以除了直接在图层对象上之外,我看不出还有什么地方可以在逻辑上进行这种更改。

4

2 回答 2

1

您无法使用 KmlLayer 更改它(至少目前,您可以创建增强请求来添加功能)。

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

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

于 2013-01-28T22:13:00.007 回答
1

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

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

于 2013-01-28T22:15:50.270 回答