Google Maps API:更改多边形颜色(从NetworkLink KML创建的多边形)

时间:2015-10-05 13:47:12

标签: google-maps-api-3 kml

背景

我正在使用Google Maps Javascript API为网站创建地图。我希望能够使用GUI对其进行编辑,并让更改自动更新公共地图。

我可以通过Google的MyMaps实现这一目标。我使用它创建了一个地图,然后导出了一个NetworkLink KML文件。我将KML文件作为KML图层读入我的JS API地图。

问题

我不确定如何在JS API地图中与数据进行交互。我需要将多边形设置为不同颜色,并使用containsLocation()

等功能

当前代码

KML文件

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
    <Document>
        <name>Lighting</name>
        <description><![CDATA[A map showing all lighting reps.]]></description>
        <NetworkLink>
            <name>Lighting</name>
            <Link>
                <href>http://www.google.com/maps/d/kml?forcekml=1&amp;mid=zUHNjsLRU3p0.k_6G1fwoLGr4</href>
            </Link>
        </NetworkLink>
    </Document>
</kml>

JS API代码

var gMap = new google.maps.Map(element, opts);
var kmlLayer = new google.maps.KmlLayer({
  url: 'data.kml',
  map: gMap
});

Working Example(Plunker)

问题

我可以编辑这些多边形,改变颜色等吗?我该怎么做?

1 个答案:

答案 0 :(得分:0)

修改KmlLayer中定义的对象颜色的唯一方法(当前)是更改KML。

其他选择:

  • 使用第三方KML解析器(如geoxml3geoxml-v3),使用原生Google Maps Javascript API v3对象呈现KML。请注意,这些第三方解析器受XmlHttpRequest的相同域限制,因此KML必须与网页位于同一域中,或通过代理提供。

example using geoxml3

  • 将KML导入FusionTablesLayer,可以动态设置样式。