【问题标题】:Google Maps API: Change Polygon Colors (Polygons Created From NetworkLink KML)Google Maps API:更改多边形颜色(从 NetworkLink KML 创建的多边形)
【发布时间】:2016-01-02 04:55:09
【问题描述】:

背景

我正在使用 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)

问题

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

【问题讨论】:

标签: google-maps-api-3 kml


【解决方案1】:

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

其他选项:

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

example using geoxml3

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

【讨论】:

  • 实际上,我一直在看这个,我认为有区别。当 KML 提要直接来自 Google 我的地图时,它包含 &lt;Folder&gt; 元素,geoxml 无法解析。
猜你喜欢
  • 2011-08-24
  • 1970-01-01
  • 2012-10-14
  • 1970-01-01
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-24
相关资源
最近更新 更多