Карта не в центре все время - PullRequest
1 голос
/ 30 марта 2012

Я использую следующий код для центрирования карты и поэтому получаю маркер в центре. Проблема в том, что маркер в большинстве случаев находится в верхнем левом углу, а когда я увеличиваю и уменьшаю масштаб, маркер снова окажется в верхнем левом углу.

Что не так? Вы можете увидеть проблему / сайт в прямом эфире на erik-edgren.nu / погода .

function initialize_map() {
    var myOptions = {
        zoom: 4,
        mapTypeControl: true,
        navigationControl: true,
        navigationControlOptions: {
            style: google.maps.NavigationControlStyle.SMALL
        },
        streetViewControl: false,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }

    map = new google.maps.Map(document.getElementById('map_canvas'), myOptions);
}

function initialize() {
    $('#map_canvas').hide();

    if(geo_position_js.init()) {
        $('#current').html('Söker efter din plats. Var god vänta...');
        geo_position_js.getCurrentPosition(show_position, function() {
            $('#current').html('Kunde tyvärr inte hitta din position.');
        }, {
            enableHighAccuracy: true
        });
    } else {
        $('#current').html('Det verkar som att din webbläsare inte tillåter att webbsidan hämtar din position. Ta en titt i webbläsarens inställningar för att se om denna funktion är igång eller inte, och försök sedan igen.');
    }
}

function show_position(p) {
    $('#current').html('');
    $('#map_canvas').show();

    var pos = new google.maps.LatLng(p.coords.latitude, p.coords.longitude);
    map.setCenter(pos);
    map.setZoom(10);

    var marker = new google.maps.Marker({
        position: pos,
        map: map
    });

    $('#weather-data').load('weather-set.php?lat=' + p.coords.latitude.toFixed(6).replace(/\./, '') + '&long=' + p.coords.longitude.toFixed(6).replace(/\./, ''));
}

Заранее спасибо!

1 Ответ

0 голосов
/ 30 марта 2012

Убедитесь, что вы явно указали размер для элемента div map_canvas. Я столкнулся с этой проблемой в некоторых браузерах, когда случайно его пропустил.

<div id="map_canvas" style="width: 100%; height: 100%"></div> 

Из Документов API :

Обратите внимание, что карта всегда будет брать свой размер с размера ее содержащего элемента, поэтому вы всегда должны явно указывать размер для этого.

...