需要我网站上用户的确切位置(PHP,Jquery)

时间:2016-11-28 07:07:00

标签: php jquery google-api geolocation

我使用Google地理位置和其他资源,通过IP,Lang和Lat获取用户位置。

但所有结果都是错误的。需要在移动电话上集成位置检测器,这些检测器总是准确的。

先谢谢。

1 个答案:

答案 0 :(得分:0)

可以使用包GeoIP2(已取代GeoIP)来完成此操作。您可以使用编辑器安装软件包,并链接free database或从MaxMind购买更准确的数据库,具体取决于您希望的准确程度(城市,国家/地区等)。

取自Github的代码示例:

<?php
require_once 'vendor/autoload.php';
use GeoIp2\Database\Reader;

// This creates the Reader object, which should be reused across
// lookups.
$reader = new Reader('/usr/local/share/GeoIP/GeoIP2-City.mmdb');

// Replace "city" with the appropriate method for your database, e.g.,
// "country".
$record = $reader->city('128.101.101.101');

print($record->country->isoCode . "\n"); // 'US'
print($record->country->name . "\n"); // 'United States'
print($record->country->names['zh-CN'] . "\n"); // '美国'

print($record->mostSpecificSubdivision->name . "\n"); // 'Minnesota'
print($record->mostSpecificSubdivision->isoCode . "\n"); // 'MN'

print($record->city->name . "\n"); // 'Minneapolis'

print($record->postal->code . "\n"); // '55455'

print($record->location->latitude . "\n"); // 44.9733
print($record->location->longitude . "\n"); // -93.2323

免费数据库并不错,但我建议购买专业数据库,如果你需要它,尽可能准确无需使用GPS。这主要是因为当IP块出售等时,列表会经常更新...