0

解決

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」オプションがないためだと思いますか?

4

1 に答える 1

1

geoxml3 のオプションで、マップをデータに合わせてズームしたり中央に配置したりできなくなります。

zoom    boolean true    

true の場合、KML ドキュメントの解析が完了した後、パーサーはマップを地理データに最適な場所に自動的に移動します。

(上記のようにデフォルトでtrueに設定されています。その動作を防ぐにはfalseに設定してください)

geoxml3パーサー リファレンスからの参照

于 2013-10-07T23:06:48.613 に答える