2014-06-18 2 views
0

현재 위도/경도 위치를 가져 오는 페이지가 있습니다. 제출 한 페이지는 Google지도에 마커와 함께 표시되는 페이지로 이동합니다. 당신이 그것을 클릭하면 풍선은 정적 문자열로 팝업 :html5/jquery mobile - 역 지오 코딩 문제

(I 현재 데이는 위도/LNG 값을 표시)

var infowindow = new google.maps.InfoWindow({ 
     content: '<p>' + lat + ',' + lng + '</p>' 
    }); 

그래서 내가 값을 가지고,하지만 난 때 geocoder.geocode({'latLng': latlng}...을 통해 latlng 변수를 실행하면 오류가 발생하고지도 만 표시됩니다. 또한 방문 페이지에서 자동으로 현재 위치를 가져 오지 않습니다.

당신은 여기에서 볼 수 있습니다 code example

이 지오 코딩에서 내 첫 번째 시도이다, 그래서 나는 내가 잘못 뭘하는지 모르겠어요.

내가 참고로이 페이지를 사용했다 : https://developers.google.com/maps/documentation/javascript/geocoding

답변

0

문제는이 코드에 있습니다,

var lat = $("#lat").val(); 
var lng = $("#lng").val(); 
var latlng = new google.maps.LatLng(lat, lng); 

당신은 latlng 변수로 두 개의 텍스트 필드의 값을 가져 오는되지만 그것들은 문자열입니다. 대신 숫자가 필요합니다. 변환하는 쉬운 방법은 단항 + 연산자입니다 : 그 변화와

var lat = +$("#lat").val(); 
var lng = +$("#lng").val(); 
var latlng = new google.maps.LatLng(lat, lng); 

, 예상대로지도가 작동합니다. 마이클의 대답은 정확

+0

아아 아아 확인과 같은 부동 소수점 수에 "1.234" 같은 문자열 변환을 위해 특별히입니다 parseFloat()를 사용하는 것을 선호합니다. 나는 이것이 문자열/정수 문제라는 것을 깨닫지 못했다. 고맙습니다! – stinkysGTI

+0

매우 일반적인 오류입니다. 직접 해보았습니다. 그래서 쉽게 발견 할 수있었습니다! :-) Maps API가 'LatLng' 인수의 오류 확인이나 변환을 수행하지 않는다는 점은 유감 스럽습니다. –

+0

그래, 너는 그것 때문에 구글과 모두, 그들은 그 같은 일들을 생각했을 거라고 생각할거야 안녕, 고마워! – stinkysGTI

1

그러나 나는 1.234

var lat = parseFloat($("#lat").val()); 
var lng = parseFloat($("#lng").val()); 
var latlng = new google.maps.LatLng(lat, lng);