2012-01-10 4 views
1

이것이 나를 괴롭 히고 있습니다. Google지도 v3을 사용하여 위도를 결정하기 위해 php를 사용하여지도를로드합니다.lat, lng를 변수로 전달하면지도가 끊어집니다.

function initialize() { 
    var latlng = "<?php echo $lat;?>,<?php echo $long;?>"; 
    console.log(latlng); 
    var mapOptions = { 
     center: new google.maps.LatLng(<?php echo $lat;?>,<?php echo $long;?>), 
     zoom: 8, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas") 
             , mapOptions); 
} 

괜찮습니다. 나는 위도와 경도를 VAR

center: new google.maps.LatLng(latlng), 

지도를 전달하려고하지만 경우에 단지 블루 스크린을 보여줍니다 (더 줌 또는 컨트롤 또는 아무것도) 깨진되지 않습니다. 콘솔 로그와 소스는 매개 변수를 올바르게 생성하는 것처럼 보입니다. 무슨 일이 일어날 지에 대한 아이디어가 있습니까?

나는 을 body에 가지고 있었지만 스크립트 내에서 (document).ready으로 옮겼습니다. 이것은이 문제에 아무런 영향을주지 않는 것처럼 보입니다.

+1

'LatLng (lat, lng)'이 아닙니다. - http://code.google.com/apis/maps/documentation/javascript/reference.html#LatLng – georg

답변

5

따옴표 당신이 작동하지 않습니다 LatLng를 생성자에 문자열 리터럴에 전달하는 것을 의미하지는 같은

new google.maps.LatLng("<?php echo $lat;?>,<?php echo $long;?>") 

new google.maps.LatLng(<?php echo $lat;?>,<?php echo $long;?>) 

이기 때문입니다.

+0

물론 Durp입니다. 고맙습니다. – Zac

4
new google.maps.LatLng(12.3456, 12.3456); 

는 전 예상 있는지되는 함수로 두 수치 파라미터를 전달

var latlng = "12.3456,12.3456"; 
new google.maps.LatLng(latlng); 

동일하지 않다. 후자는 하나의 문자열을 함수에 전달하는데, 이는 오류입니다.

관련 문제