没有 HTML5 API 的地理定位
Posted
技术标签:
【中文标题】没有 HTML5 API 的地理定位【英文标题】:Geolocation without HTML5 API 【发布时间】:2013-10-13 13:35:02 【问题描述】:全部!
我需要确定当前用户城市。使用 html5 这不是问题。但我需要支持旧浏览器(leke 即 7,8)。 首先,我想使用 IP 地址查找位置。但它不容易实现(我需要带有位置的实际数据库)。免费的网络服务没有提供我需要的信息。其中许多可以确定一个国家(但不能确定城市)。
我尝试使用http://www.geoplugin.net/,而这项服务只返回国家(作为和另一个免费)。 我尝试使用带有 IP 的 CSV 数据库(但在互联网上我可以找到旧版本)。
您知道确定用户城市的免费方法吗? 谢谢!
【问题讨论】:
你有什么想法吗? 【参考方案1】:一些较旧的浏览器确实支持以某种形式获取用户位置。回到 IE7/8 时代,一些不同的浏览器以不同的方式处理地理定位。这对开发人员来说是一种痛苦。我这辈子都不记得如何在 IE7/8 中执行此操作,但记得在某些时候为此编写了一个包装器库。现在大多数人使用包装库来为他们处理所有不同的浏览器实现。 Bing Maps V7 javascript 将所有新旧功能封装到其 API 中的一个通用 GeoLocationProvider 类中,如果您的站点需要地图,这可能是一个选项:http://msdn.microsoft.com/en-us/library/hh125833.aspx
【讨论】:
有趣,但看起来 MS 类使用了 HTML5 API。就我而言,我希望能够检测国家/地区而无需征得用户的同意。 在这种情况下,您需要捕获用户的 IP 地址,然后从查找表中查找国家/地区。有一堆免费的数据库有这些数据。 谢谢@rbrundritt.. 我们是 WordPress 客户,所以我们可以利用他们基于 IP 的地理定位插件。【参考方案2】:您可以使用我们的地理定位 API https://ip-api.io 来完成此任务。它提供国家、城市、邮政编码等数据
示例请求:
$.getJSON("http://ip-api.io/json/",
function(result)
console.log(result);
);
示例响应:
"ip": "64.30.228.118",
"country_code": "US",
"country_name": "United States",
"region_code": "FL",
"region_name": "Florida",
"city": "Fort Lauderdale",
"zip_code": "33309",
"time_zone": "America/New_York",
"latitude": 26.1882,
"longitude": -80.1711,
"metro_code": 528,
"suspicious_factors":
"is_proxy": false,
"is_tor_node": false,
"is_spam": false,
"is_suspicious": false
【讨论】:
以上是关于没有 HTML5 API 的地理定位的主要内容,如果未能解决你的问题,请参考以下文章