如何获取用户位置?

3

我能够在我的网站中获取用户的IP地址。现在,我需要通过获取到的IP地址来获取他所在的国家、城市和地区。我正在尝试使用谷歌的地理位置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只能在美国使用。这是真的吗? - Vignesh Gopalakrishnan
有没有其他方法可以使用Google API对IP进行地理编码,以便我可以获得XML响应? - Vignesh Gopalakrishnan
我刚试了一下你从google.com导入的API链接,在这个jsFiddle中运行良好。也许你在检索脚本时遇到了问题(尝试直接访问API的URL以查看是否正确返回JS)。此外,根据Google脚本的编写方式,如果您已经定义了window.google,那么脚本将不会加载(请参见脚本开头的if结构)。此外,地理定位在美国以外也可以使用,因为我在欧洲并且得到了相当准确的地理定位。希望这能有所帮助。 - Stock Overflaw
2个回答

0

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接