【问题标题】:Geolocation without HTML5 API没有 HTML5 API 的地理定位
【发布时间】:2013-10-13 13:35:02
【问题描述】:

全部!

我需要确定当前用户城市。使用 HTML5 这不是问题。但我需要支持旧浏览器(leke 即 7,8)。 首先,我想使用 IP 地址查找位置。但它不容易实现(我需要带有位置的实际数据库)。免费的网络服务没有提供我需要的信息。其中许多可以确定一个国家(但不能确定城市)。

我尝试使用http://www.geoplugin.net/,而这项服务只返回国家(作为和另一个免费)。 我尝试使用带有 IP 的 CSV 数据库(但在互联网上我可以找到旧版本)。

您知道确定用户城市的免费方法吗? 谢谢!

【问题讨论】:

  • 你有什么想法吗?

标签: api geolocation location geotagging city


【解决方案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
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-28
    • 1970-01-01
    • 2015-03-27
    • 1970-01-01
    • 2011-03-24
    • 2012-02-18
    相关资源
    最近更新 更多