サーバーで生成された KML を Google マップに表示するアプリケーションに取り組んでいます。私はビジネス層とバックエンドを担当していますが、現在、extjs ベースのフロントエンドの問題に直面しています。目印の色付けについて KML に質問して、Google マップまたは自分のアプリケーションに関連するものかどうかを確認したいと思います。私はフロントエンドの開発についてあまり詳細を持っていないので、必要に応じて追加のコードや実装の詳細について同僚に尋ねます。
私が今知っていることは、次の Javascript ライブラリを使用していることです。
- https://maps.googleapis.com/maps/api/js?v=3.10&sensor=false
- http://geoxml3.googlecode.com/svn/branches/polys/geoxml3.js
- http://geoxml3.googlecode.com/svn/trunk/ProjectedOverlay.js
私の目標は、Google マップに表示される KML を生成し、それぞれがポリゴンで表され、ランダムに色付けされた一連の地理的領域を示すことです。隣接するポリゴンが同じ色を表示しないようにするだけです。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>
(データは、プライバシーよりも簡潔にするために難読化されています)
地球上での表示方法は次のとおりです(良い):
Google マップでの表示方法 (悪い):
問題は、マップで白く表示されるのはなぜですか? マップの機能、Javascript ライブラリ、KML ファイルなどに問題がありますか? マップでも同じように表示するにはどうすればよいですか?