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 回答