如何使用Google地图准确获取当前地址?

时间:2016-01-27 14:38:28

标签: javascript google-maps geolocation laravel-5.1

我试图获取我当前的位置,但问题是标记指向的地址只是我现在最近的街道。我怎样才能准确地得到我的位置?

继承人的屏幕截图。提前致谢 :) Click here

<input type="button" value="Show Location" onclick="showlocation()"/> 

<br/>
    Latitude: <span id="latitude">..</span> <br>
    Longitude: <span id="longitude">..</span><br>
    Address: <span id="add">..</span><br>
    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script> 
    <script>

    function showlocation(){

        navigator.geolocation.watchPosition(callback);

    }
    function callback(position){
        document.getElementById('latitude').innerHTML=position.coords.latitude;
        document.getElementById('longitude').innerHTML=position.coords.longitude;
          var geocoder = new google.maps.Geocoder();
          var latitude = position.coords.latitude;
          var longitude = position.coords.longitude;
          var latLng = new google.maps.LatLng(latitude,longitude);
        geocoder.geocode({       
            latLng: latLng     
            }, 
            function(responses) 
            {     
               if (responses && responses.length > 0) 
               {        
                   address(responses[0].formatted_address);     
               } 
               else 
               {       
                 alert('Not getting Any address for given latitude and longitude.');     
               }   
            }
    );
    } 
        function address(str) 
        {
          document.getElementById('add').innerHTML = str;
        }

    </script>

1 个答案:

答案 0 :(得分:1)

使用Geolocation API。要获取当前位置,您可以调用getCurrentPosition()方法。这将启动异步请求以检测用户的位置,并查询定位硬件以获取最新信息。

  

确定位置后,执行定义的回调函数。如果发生错误,您可以选择提供第二个回调函数。第三个可选参数是一个选项对象,您可以在其中设置返回位置的最大年龄,等待请求的时间以及您希望该位置的高精度。

documentationexample可能会对您有所帮助。