使用Javascript获取用户位置

时间:2019-05-18 14:04:49

标签: javascript google-maps google-maps-api-3

我想在点击事件中获取用户的当前位置地址(城市,街道等)。

我尝试了html5地理位置并尝试管理数据。在单击按钮时,我正在通过创建警报框来检查地理位置是否受支持,并且它可以成功执行,但是在控制台中未打印任何值。

HTML

<div id="navbar"><span> Geolocation API</span></div>
<div id="wrapper">
<button id="location-button">Get User Location</button>
<div id="output"></div>

我的脚本

  <script>
      $('#location-button').click(function(){

        if (navigator.geolocation) {  
         alert("it is supported");
            navigator.geolocation.getCurrentPosition(function(position){
              console.log(position);
              $.get( "http://maps.googleapis.com/maps/api/geocode/json?latlng="+ position.coords.latitude + "," + position.coords.longitude +"&sensor=false", function(data) {
                console.log(data);
              })
              var img = new Image();
              img.src = "https://maps.googleapis.com/maps/api/staticmap?center=" + position.coords.latitude + "," + position.coords.longitude + "&zoom=13&size=800x400&sensor=false";
              $('#output').html(img);
            });

        }
        else
        {
            console.log("geo location is not supported")
        }
      });
 </script>

我想获取用户位置的完整地址。

2 个答案:

答案 0 :(得分:3)

您可以访问演示您的用例的jsfiddle sample

请注意,不建议在客户端使用Web服务,因为建议将Web服务请求用于服务器端请求。

如下所示,我使用的是Geocoder Service而不是Web服务地理编码

geocoder.geocode( { 'location': pos}, function(results, status, infowindow) {
      if (status == 'OK') {
            console.log(results[0].formatted_address);
            infoWindow.setContent('Location found: '+ results[0].formatted_address);
            infoWindow.setPosition(pos);
            infoWindow.open(map);
      } else {
                console.log('Geocode was not successful for the following reason: ' + status);
      }
    });

答案 1 :(得分:-3)

你根本做不到!地理定位使用移动设备上的三角测量或GPS,您将获得经度和纬度值甚至IP,并且您将获得最近的分配器设备(英语中的单词不正确)。 显然,对于地理位置定位,用户也必须对其进行授权。 因此,如果您要地址,最简单的方法就是通过表格询问。您可以使用与经度/纬度匹配相关的地图,但是这样做会很麻烦,因为您必须使用与之相关的所有地图和地球上的位置。