【问题标题】:Change color of markers for each KML Layer?更改每个 KML 图层的标记颜色?
【发布时间】:2013-01-28 21:42:25
【问题描述】:

我在 Google 地图 (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 无法做到这一点,这似乎是它会发生的地方,所以除了直接在图层对象。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        猜你喜欢
        • 2013-04-28
        • 1970-01-01
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多