Границы API Карт Google: работает в FF, а не в Safari? - PullRequest
2 голосов
/ 21 марта 2011

Я использую этот код для установки границ карты Google на основе списка местоположений:

Странно то, что в Firefox это работает нормально: карта перемещается и масштабируется в соответствии с заданнымместах.Вместо этого в Safari карта загружается в середине Тихого океана.

Вы можете мне помочь?

Спасибо, Аугусто

LatLngList = []
var bounds = new google.maps.LatLngBounds();

function add_point_to_list(point) {
    var lat = point.split(" ")[0]
    var lng = point.split(" ")[1]
    var Gpoint = new google.maps.LatLng(lat,lng)
    LatLngList.push(Gpoint)
    bounds.extend(Gpoint);
}   

$.getJSON('/locations/user_map?id=' + <%= @user.id %>, function(data){
    if (data.posts) {
        for (var i in data.posts) { 
            var cord = (data.posts[i].lat + " " + data.posts[i].lng)
            add_point_to_list(cord)
        }
    }
})

function map_init() {
    var myOptions = {
        zoom: 6,
        mapTypeControl: false,
        panControl: false,
        zoomControl: false,
        mapTypeControl: false,
        scaleControl: false,
        streetViewControl: false,
        mapTypeId: google.maps.MapTypeId.TERRAIN
    }
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
    //set map center
    // map.setCenter(latlng);
    map.fitBounds (bounds);
    //updateMapOverlays();
    //google.maps.event.addListener(map, 'idle', updateMapOverlays);
    markerCluster = new MarkerClusterer(map, [], {gridSize: 70, maxZoom: 14, zIndex: 1});
    geocoder = new google.maps.Geocoder();

    refresh_overlays('/locations/user_map?id=' + <%= @user.id %>);

    marker = new google.maps.Marker({
    map: map,
    icon: userMarkerImage,
    position: latlng,
    zIndex: 100
    });

}

1 Ответ

1 голос
/ 21 марта 2011

решаемая. Init карты вызывал переменную bounds, когда она еще не была готова.

Итак, я поставил map.fitBounds (bounds); в конце обратного вызова AJAX:

$.getJSON('/locations/user_map?id=' + <%= @user.id %>, function(data){
    if (data.posts) {
        for (var i in data.posts) { 
            var cord = (data.posts[i].lat + " " + data.posts[i].lng)
            add_point_to_list(cord)
        }
        map.fitBounds (bounds);
    }
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...