我正在开发一个在Google地图上显示服务器生成的KML的应用程序。我负责业务层和后端,但现在我面临着基于extjs的前端问题。我想问一个关于地标着色的KML问题,看它是否与谷歌地图或我的应用程序有关。由于我没有关于前端开发的很多细节,我会在需要时询问我的其他代码/实现细节。
我现在知道的是我们使用以下Javascript库:
我的目标是生成一个显示在Google地图上的KML,并显示一组地理区域,每个地理区域由一个多边形表示,每个地理区域随机着色。我只需要相邻的多边形不会显示相同的颜色。我发现我的Java KML库中的MapColorMode.RANDOM
应该可以解决问题。
所以我根据以下片段创建了一个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文件或其他什么问题?我还可以做些什么来在地图上实现相同的观看?
答案 0 :(得分:2)
根据Google API, <randomColor>
不受支持!
链接还为您提供了所有支持的KML标记的列表...
另请注意,Google对使用样式呈现地图上的项目数量设置了一些限制。如果您的KML中有太多项目,它将回退到默认值。
但在你的情况下,因为randomColor。
答案 1 :(得分:0)