解決
Google KML レイヤーのコードが残っていて、それが GeoXML3 ではなくカスタム タイルを隠していたようです
元の質問
GeoXml KML レイヤーを上に配置したカスタム画像タイルを使用できるかどうか疑問に思っています。
現在、レイヤーがレンダリングされると、マップ上の他のすべてが消えます。
レイヤーの作成時に「preserveViewport」を true に設定しない限り、Google KMLLayer でも同じことが起こります。
GeoXML3 に同様のオプションがあるかどうか知っている人はいますか? または、その機能を実装するのはどれほど難しいでしょうか?
これが私のマップ初期化コードです:
var centerCoords = new google.maps.LatLng(66.722541, -140.625000);
var mapOptions = {
center: centerCoords,
zoom: 4,
streetViewControl: false,
mapTypeControlOptions: {
mapTypeIds: ['Atlas', 'Satellite', 'Road']
}
};
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
map.mapTypes.set('Atlas', mapAtlas);
map.mapTypes.set('Satellite', mapSatellite);
map.mapTypes.set('Road', mapRoad);
map.setMapTypeId('Atlas');
これを使用してレンダリングすると問題なく動作し、カスタム タイルの上に KML が表示されます。
var kmlLayer = new google.maps.KmlLayer({
url: 'http://gmaps-samples.googlecode.com/svn/trunk/ggeoxml/cta.kml',
preserveViewport: true
});
kmlLayer.setMap(window.map);
重要な部分は「preserveViewport」です。これがないと、KML レイヤー以外のすべてが非表示になります (私のカスタム マーカーとタイル)。
GeoXml3 パーサーを使用すると、同じ (すべてが非表示になります) ことが起こります。
var myParser = new geoXML3.parser({map: window.map});
myParser.parse('cta.xml');
KML ファイルは同じです。これには、そのような「prerenderedViewport」オプションがないためだと思いますか?