解决方案
似乎我有一些来自 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”选项?