2012-01-02 6 views
0

Firefox에서 복제 할 수있는 Google지도에 이상한 문제가 있습니다. 설명하자면, 정적 인지도가 있습니다. 클릭하면 중앙의 마커와 상호 작용이 가능한 전체지도로 확대됩니다. Firefox를 제외한 모든 브라우저에서 정상적으로 작동합니다. Firefox에서지도가 올바르게 가운데 맞춤되지 않습니다. 마커는 배치되지만 표시 영역 바로 위의지도의 왼쪽 상단 모서리에 있습니다.Google지도가 Firefox에서 작동하지 않음

아이디어가 있으십니까? 이것은 잠시 나를 당황하게했습니다.

자바 스크립트 :

// lat and lng are initialized earlier 
var latlng = new google.maps.LatLng(lat, lng); 
var myOptions = { 
    zoom: 13, 
    center: latlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP, 
}; 

var map = new google.maps.Map($("#map_canvas")[0], myOptions); 

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

var resizeMap = function() { 
    $("#smallMap, #smallMapOverlay").remove(); 
    $("#map_canvas").show(); 
    google.maps.event.trigger(map, 'resize'); 
    map.setCenter(latlng, 13); 
}; 

$("#smallMapOverlay").live("click", function (e) { 
    e.preventDefault(); 
    resizeMap(); 
}); 

CSS :

show()의 콜백에 resizesetCenter 방법을 가하고, 그리고 작은 지연을 제공하는 것은 문제를 해결 것으로 보인다
#map_canvas { 
    width: 640px; 
    height: 377px; 
} 
+0

당신이 http://jsfiddle.net/ 데모를 만들 수주십시오? –

답변

0

.

var resizeMap = function() { 
    $("#smallMap, #smallMapOverlay").remove(); 
    $("#map_canvas").show(10, function() { 
     google.maps.event.trigger(map, 'resize'); 
     map.setCenter(latlng, 13); 
    }); 
}; 

가장 세련된 해결책은 아니지만 작동합니다.

0

Karim79 '수정 사항. 나는 약간 다른 방식으로 그것을 해결했다. 당신이 매핑 기능을 처리 할 수있는 래퍼 클래스가있는 경우, 당신은, 그래서 같은 리셋 기능을 만들 수

function reset(){ 
     setTimeout(function(){gm.event.trigger(_gMap, 'resize');}, 50); 
     setTimeout(function(){_gMap.setCenter(settings.mapOptions.center);}, 100); 
    } 

최저

관련 문제