如何通过IP地址检测用户地理位置?

时间:2018-03-08 21:57:59

标签: google-maps google-maps-api-3 geolocation ip-geolocation

如何通过IP地址检测用户地理位置?

需要纬度和经度

3 个答案:

答案 0 :(得分:2)

您可以使用可以检测用户的HTML5 navigator.geolocation.getCurrentPosition()'通过各种方式,包括IP地址。

https://developers.google.com/maps/documentation/javascript/geolocation

答案 1 :(得分:0)

通过IP地址获取用户坐标有两种主要方式。

  1. HTML5地理位置(如果可用,使用GPS或wifi或IP地址) 此选项已集成到Web浏览器中,并且在将信息共享到网站之前需要用户权限。

  2. IP地理位置 此选项用于查询从历史信息派生的脱机数据库中的地理位置信息。您可以从IP2Location LITE等获得免费数据库。

  3. 参考:https://www.geolocation.com

答案 2 :(得分:0)

例如,您可以使用Google Maps Geolocation API。以下是一些代码:

  function findLatLonFromIP(apiKey) {
    return new Promise((resolve, reject) => {
      $.ajax({
        url: `https://www.googleapis.com/geolocation/v1/geolocate?key=${apiKey}`,
        type: 'POST',
        data: JSON.stringify({considerIp: true}),
        contentType: 'application/json; charset=utf-8',
        dataType: 'json',
        success: (data) => {
          if (data && data.location) {
            resolve({lat: data.location.lat, lng: data.location.lng});
          } else {
            reject('No location object in geolocate API response.');
          }
        },
        error: (err) => {
          reject(err);
        },
      });
    });
  }