ローカル kml ファイルをロードする hello world プログラムを作成しました (Google のドキュメントから借用):
var ctaLayer = new google.maps.KmlLayer("http://localhost:8080/kml/cta.kml");
これは機能しません (何もロードされません)。
ただし、その行を次のように変更すると:
var ctaLayer = new google.maps.KmlLayer("http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml");
それは正しく読み込まれます。両方の kml ファイルは同一です。自分で提供するときにロードするにはどうすればよいですか? (絶対パスと相対パスの両方を試しましたが、使用しているパスが正しいことはわかっています...)
また、アプリサーバーの構成ファイルに正しい MIME タイプを追加しました。
<mime-mapping>
<extension>kml</extension>
<mime-type>application/vnd.google-earth.kml+xml</mime-type>
</mime-mapping>
<mime-mapping>
<extension>kmz</extension>
<mime-type>application/vnd.google-earth.kmz</mime-type>
</mime-mapping>
しかし、まだ読み込まれません。
私はグーグルのドキュメントでこれを見つけました:
Google Maps API は、地理情報を表示するために KML および GeoRSS データ形式をサポートしています。これらのデータ形式は、KmlLayer オブジェクトを使用してマップ上に表示されます。このオブジェクトのコンストラクターは、公開されている KML または GeoRSS ファイルの URL を取得します。
だから私がやろうとしていることは、公にアクセス可能なURLからkmlを提供しないと不可能だと思います...誰かがそうでなければ証明できない限り