2011-03-21 1 views
2

위치 목록을 기반으로 Google지도의 경계를 설정하는 데 다음 코드를 사용합니다.Google Maps API 범위 : Safari에없는 FF에서 작동합니까?

이상한 점은 Firefox에서 잘 작동한다는 것입니다.지도가 지정된 위치에 맞게 이동하고 배율이 조정됩니다. 사파리에서는 대신 태평양의 중앙에지도가로드됩니다.

도와 주시겠습니까?

감사합니다, 해결 아우

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

} 
+0

Safari의 오류 콘솔을 확인하십시오. 오류가 있습니까? –

+0

콘솔 앞쪽에 오류가 표시되지 않습니다. – Augusto

답변

1

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