<分区>
我正在寻找一个好的 PHP 地理定位服务,所以当我启动我的应用程序时,我可以有类似的东西:
<?php
$service = new GeoLocService();
echo $service->getLat();
echo $service->getLng();
?>
以纬度和经度值检索用户的位置。
<分区>
我正在寻找一个好的 PHP 地理定位服务,所以当我启动我的应用程序时,我可以有类似的东西:
<?php
$service = new GeoLocService();
echo $service->getLat();
echo $service->getLng();
?>
以纬度和经度值检索用户的位置。
最佳答案
地理定位需要在浏览器中完成,因为服务器(即 PHP)永远无法找到大部分相关数据。在浏览器中进行地理定位的主要 API 是 Google 的,但作为开发人员的您不需要使用该 API;您将使用标准化的浏览器 API(尽管目前只有少数浏览器支持)。
对于在服务器端定位用户,您将获得的最有用的信息是他们的 IP 地址,这通常足以将他们定位到最近的城镇。您可以下载 IP 到国家和 IP 到位置的数据库和 API 来帮助解决这个问题。有些是免费的,但要获得城镇级别的位置,您需要为服务付费。无论您选择哪种方式,它们都需要保持最新,因为 IP 范围通常会重新分配。
浏览器级 API 的工作原理是让浏览器扫描 Wi-Fi 接入点的区域。它将访问点列表发送给谷歌,谷歌然后使用它来计算纬度/经度(通常会得到惊人的准确结果)。
他们是怎么做到的?您可能还记得谷歌最近因从人们的 Wi-Fi 中窃取数据而陷入困境吗?他们实际上想做的是为这个地理定位功能绘制世界上的 Wi-Fi 接入点。
当然,它确实需要客户端启用 Wi-Fi。
请注意,您的浏览器不会向客户端(即 Javascript 或 DOM)提供直接访问此访问点列表的权限,因此您无法将其发布到 PHP 以通过服务器使用此方法获取位置;它必须在客户端完成。
关于php - 有好的 PHP 地理定位服务吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4724971/