Google Maps V3 KML Layer поверх ImageMapType - PullRequest
0 голосов
/ 14 июня 2011

У меня есть довольно маленькая пользовательская карта, созданная с помощью MapTiler, и ее было очень легко визуализировать с помощью GMaps. Основы нескольких необходимых строк кода приведены ниже.

У меня тоже есть прекрасный маленький слой KML, который отлично рендерится.

Однако .... ради жизни я не могу заставить оба слоя отображаться вместе. Как только KML получит команду рендеринга, пользовательский слой карты исчезнет. Firebug даже говорит мне, что мои пользовательские плитки даже не запрашиваются! В идеале мне нужен слой KML поверх моего пользовательского слоя карты. Он покажет, где находятся несколько достопримечательностей Великобритании.

В глубине души я думаю о типах проекций и конфликтах, но когда оба слоя правильно отображаются на базовой карте по отдельности, я действительно остаюсь в темноте.

Может кто-нибудь дать мне совет по слоям KML по сравнению с пользовательскими типами карт в Google Maps V3?

Спасибо

  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);
 }

1 Ответ

0 голосов
/ 14 июня 2011

решаемая. Только не будь идиотом.

    <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,
        mapTypeControl: 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...