如何获取用户的位置?

Posted

技术标签:

【中文标题】如何获取用户的位置?【英文标题】:How do I get the location of a user? 【发布时间】:2012-10-19 05:11:35 【问题描述】:

我能够在我的网站中获取用户的 IP 地址。现在我需要他的国家、城市、地区使用我得到的 IP。我正在尝试使用以下代码的 Google 地理定位 API,

    <div id="yourinfo"></div>
    <script type="text/javascript" src="http://www.google.com/jsapi?key=ABQIAAAAp04yNttlQq-7b4aZI_jL5hQYPm-xtd00hTQOC0OXpAMO40FHAxQMnH50uBbWoKVHwgpklyirDEregg"></script>
    <script type="text/javascript">
        if(google.loader.ClientLocation)
        
            visitor_lat = google.loader.ClientLocation.latitude;
            visitor_lon = google.loader.ClientLocation.longitude;
            visitor_city = google.loader.ClientLocation.address.city;
            visitor_region = google.loader.ClientLocation.address.region;
            visitor_country = google.loader.ClientLocation.address.country;
            visitor_countrycode = google.loader.ClientLocation.address.country_code;
            document.getElementById('yourinfo').innerhtml = '<p>Lat/Lon: ' + visitor_lat + ' / ' + visitor_lon + '</p><p>Location: ' + visitor_city + ', ' + visitor_region + ', ' + visitor_country + ' (' + visitor_countrycode + ')</p>';
        
        else
        
            document.getElementById('yourinfo').innerHTML = '<p>Whoops!</p>';
        
    </script>

真的,这段代码对我不起作用。它正在执行 else 部分并显示 Whoops!。 如何获取用户的地理位置。如果有其他想法,请告诉我。

我已经尝试过以下代码,它运行良好,但在免费版本中需要 6 秒的延迟。后来我才知道谷歌免费提供这项服务..所以我试试看。

http://services.ipaddresslabs.com/iplocation/locateip?key=SAK58RWP983694534K4Z&ip=".$ClientIP

提前谢谢你

【问题讨论】:

我的一个朋友告诉我,这个用于地理定位的谷歌 api 只能在美国使用。是真的吗? 有没有其他方法可以用google api对IP进行地理编码,我应该得到xml响应。??? 我刚刚尝试使用您从 google.com 导入的 API 链接,它在 this jsFiddle 中运行良好。也许您在检索脚本时遇到问题(尝试直接访问 API 的 URL 以查看它是否正确返回 JS)。此外,根据 Google 脚本的编写方式,如果您已经定义了 window.google,那么脚本将不会加载(参见脚本开头的 if 结构)。此外,geoloc 在美国以外的地方工作,因为我在欧洲并且得到了一个非常准确的 geoloc。希望这会有所帮助。 【参考方案1】:

如果您乐于使用 HTML5,您应该访问此tutorial on geolocation。

【讨论】:

【参考方案2】:

在客户端使用这个:

http://services.ipaddresslabs.com/iplocation/locateip?key=SAK58RWP983694534K4Z&ip=local-ip

它对我很好。

顺便说一下,上面的key被屏蔽了,你得换个新的key。

【讨论】:

以上是关于如何获取用户的位置?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取用户位置国家 [关闭]

获取经纬度后如何获取用户的位置

html5获取地理位置,如果用户拒绝了,之后每次加载都提示:拒绝获取地理位置,如何获取权限:如果用

如何获取用户的位置?

如何获取用户位置的纬度和经度?

javaScript / API - 如何获取用户的精确位置? [复制]