2013-08-08 2 views
0

HTML5의 위치 정보 기능을 사용하려고합니다. 좌표를 얻고 다른 좌표를 사용하여 Google Maps API를 호출하는 기능이 있습니다. 위도와 경도를 수동으로 지정하면 위도가 좋지만 어떤 이유로이 방식으로 작동하지 않습니다. 빈지도가 표시되고 컨트롤이 있지만 실제지도는 표시되지 않습니다. 나는 그 코드가 정확하다고 믿는다. 그러나 아마도 나는 무엇인가를 간과했다. 문자열로 서로 연접 LatLng 생성자 2 개 인수를Google지도 HTML5에서 LatLng 코드가 제공된 경우 빈지도를 표시하는 API Geolocation

var x = document.getElementById("msg"); 
    function getLocation() { 
     if (navigator.geolocation) { 
      navigator.geolocation.getCurrentPosition(showPosition, showError); 
     } 
     else { x.innerHTML = "Geolocation is not supported by this browser."; } 
    } 

    function showPosition(position) { 
     var mapOptions = { 
      center: new google.maps.LatLng(position.coords.latitude + ", " + position.coords.longitude), 
      zoom: 5, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
     }; 
     var map = new google.maps.Map(document.getElementById("Map"), mapOptions); 
     var acOptions = { 
      types: ['establishment'] 
     }; 
     var autocomplete = new google.maps.places.Autocomplete(document.getElementById('autocomplete'), acOptions); 
     autocomplete.bindTo('bounds', map); 
     var infoWindow = new google.maps.InfoWindow(); 
     var marker = new google.maps.Marker({ 
      map: map 
     }); 

     google.maps.event.addListener(autocomplete, 'place_changed', function() { 
      infoWindow.close(); 
      var place = autocomplete.getPlace(); 
      if (place.geometry.viewport) { 
       map.fitBounds(place.geometry.viewport); 
      } else { 
       map.setCenter(place.geometry.location); 
       map.setZoom(17); 
      } 
      marker.setPosition(place.geometry.location); 
      infoWindow.setContent('<div><strong>' + place.name + '</strong><br />'); 
      infoWindow.open(map, marker); 
      google.maps.event.addListener(marker, 'click', function (e) { 

       infoWindow.open(map, marker); 

      }); 
     }); 

     var x = document.getElementById("msg"); 
     x.innerHTML = position.coords.latitude + ", " + position.coords.longitude; 
    } 

    function showError(error) { 
     switch (error.code) { 
      case error.PERMISSION_DENIED: 
       x.innerHTML = "User denied the request for Geolocation." 
       break; 
      case error.POSITION_UNAVAILABLE: 
       x.innerHTML = "Location information is unavailable." 
       break; 
      case error.TIMEOUT: 
       x.innerHTML = "The request to get user location timed out." 
       break; 
      case error.UNKNOWN_ERROR: 
       x.innerHTML = "An unknown error occurred." 
       break; 
     } 
    } 
    google.maps.event.addDomListener(window, 'load', getLocation); 

답변

2

(및 세 번째 옵션) 모두 숫자 한 위도와 다른 경도 둘 :

여기서 코드이다.

center: new google.maps.LatLng(position.coords.latitude, position.coords.longitude), 
+0

와우, 나는 그렇게 간단한 것을 놓쳤다는 것을 믿을 수 없습니다. 나를 잡아 주셔서 감사합니다! – Blake

관련 문제