3

我正在开发一个在 Google 地图上显示服务器生成的 KML 的应用程序。我负责业务层和后端,但现在我面临基于 extjs 的前端的问题。我想问一个关于地标着色的 KML 问题,看看它是否与 Google 地图或我的应用程序有关。由于我没有太多关于前端开发的细节,所以我会在需要时向我的同事询问其他代码/实现细节。

我现在所知道的是我们使用以下 Javascript 库:

我的目标是生成一个 KML,它显示在 Google 地图上并显示一组地理区域,每个区域由一个多边形表示,每个区域随机着色。我只需要相邻的多边形不显示相同的颜色。我发现MapColorMode.RANDOM从我的 Java KML 库中应该可以解决问题。

所以我基于以下片段创建了一个 KML:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:xal="urn:oasis:names:tc:ciq:xsdschema:xAL:2.0">
    <Document>
        <Style id="randomColour">
            <PolyStyle id="randomColour">
                <color>ffffffff</color>
                <colorMode>random</colorMode>
                <fill>1</fill>
                <outline>1</outline>
            </PolyStyle>
        </Style>
        <Folder>
            <styleUrl>randomColour</styleUrl>
            <Placemark>
                <name>0</name>
                <styleUrl>#randomColour</styleUrl>
                <Polygon>
                    <extrude>1</extrude>
                    <tessellate>1</tessellate>
                    <outerBoundaryIs>
                        <LinearRing>
                            <coordinates>...</coordinates>
                        </LinearRing>
                    </outerBoundaryIs>
                </Polygon>
            </Placemark>
            <Placemark>
                <name>7</name>
                <styleUrl>#randomColour</styleUrl>
                <Polygon>
                    <extrude>1</extrude>
                    <tessellate>1</tessellate>
                    <outerBoundaryIs>
                        <LinearRing>
                            <coordinates>...</coordinates>
                        </LinearRing>
                    </outerBoundaryIs>
                </Polygon>
            </Placemark>
            [...]
        </Folder>
    </Document>
</kml>

(数据被混淆更多是为了简洁而不是隐私)

这是它在地球上的显示方式(好):

谷歌地球

以及它在谷歌地图上的显示方式(坏):

谷歌地图

问题是:为什么它在地图上显示为白色?是地图功能、Javascript 库、KML 文件还是其他问题?我还能做些什么来在地图上实现相同的查看效果?

4

2 回答 2

2

根据Google API<randomColor>不支持!

该链接还为您提供了所有受支持的 KML 标签的列表...

另请记住,Google 对地图上将使用样式呈现的项目数量设置了一些限制。如果您的 KML 中有太多项目,它将回退到默认值。

但在你的情况下,这是因为 randomColor。

于 2013-09-27T08:30:07.697 回答
0

随机颜色模式在geoxml3 (polys 分支)中不起作用,这是一个错误,创建了一个问题并修复了它。

它总是在kmz分支中工作

上面的两个例子现在都可以工作了。

于 2013-09-27T15:41:30.880 回答