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

Google Maps API: Change Polygon Colors (Polygons Created From NetworkLink KML)

背景

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

我可以通过 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(笨蛋)

问题

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

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

其他选项:

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

example using geoxml3

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