GeoXml3 - 自定义地图平铺

时间:2013-10-07 21:23:23

标签: javascript google-maps-api-3 geoxml3

  

似乎我有一些来自Google KML Layer的残余代码   隐藏了我的自定义磁贴,而不是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'选项吗?

1 个答案:

答案 0 :(得分:1)

geoxml3的选项可防止它缩放数据并使地图居中于数据:

zoom    boolean true    
  

如果 true,解析器将在解析完KML文档后自动将地图移动到地理数据的最佳位置。

(如上所示默认为true,将其设置为false以防止该行为)

  

来自 geoxml3 Parser Reference

的参考资料