问题描述
|
我有一个通过MapTiler创建的漂亮的自定义地图,要使用GMaps进行渲染非常简单。下面是几行代码的基础。
我也有一个可爱的小KML层,可以很好地渲染。
但是。。。。对于我一生,我无法同时显示两个图层。指示KML渲染后,自定义地图图层就会消失。 Firebug甚至告诉我,甚至不需要我的自定义图块!理想情况下,我需要在自定义地图图层上添加KML图层。它将会显示一些英国地标的位置。
在我的脑海中,我正在思考投影类型和冲突,但是当两层分别在基础地图上正确呈现时,我真的陷入了黑暗。
谁能给我有关Google Maps V3中自定义地图类型的KML层的建议?
谢谢
var MyCustomMapType = new google.maps.ImageMapType({
getTileUrl: function(tile,zoom) {
return \"/static/images/maps/uk/\" + zoom+\"/\"+tile.x+\"/\"+ tile.y +\".png\";
},tileSize: new google.maps.Size(256,256),});
function init(){
var mapOpts = {
zoom: 6,center: new google.maps.LatLng(53.94315470224928,-3.515625),mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById(\"map_canvas\"),mapOpts);
map.overlayMapTypes.insertAt(0,MyCustomMapType);
var cathedrals = new google.maps.KmlLayer(\'http://pointing_at_my/kml/\');
// as soon as this executes,ImageMapType layer disappears
cathedrals.setMap(map);
}
解决方法
解决了。只是不要白痴。
<script type=\"text/javascript\" src=\"http://maps.google.com/maps/api/js?sensor=false\"></script>
<script type=\"text/javascript\">
var map,cathedrals;
var ukOverlay = new google.maps.ImageMapType({
getTileUrl: function(coord,zoom) {
var ymax = 1 << zoom;
var y = ymax - coord.y -1;
return \"/static/images/maps/uk/\" + zoom+\"/\"+coord.x+\"/\"+y+\".png\";
},tileSize: new google.maps.Size(256,256),isPng: true
});
function init(){
var mapOpts = {
zoom: 6,center: new google.maps.LatLng(54.40315470224928,-3.515625),mapTypeId: google.maps.MapTypeId.HYBRID,disableDefaultUI: false,mapTypeControl: false,scrollwheel: false,navigationControl: false,scaleControl: false,draggable: false
};
map = new google.maps.Map(document.getElementById(\"map_canvas\"),mapOpts);
cathedrals = new google.maps.KmlLayer(\'http://cathedralcafes.co.uk/kml/\',{preserveViewport: true});
map.overlayMapTypes.insertAt(0,ukOverlay);
cathedrals.setMap(map);
}
</script>