php - 有好的 PHP 地理定位服务吗?

标签 php web-services geolocation

<分区>

我正在寻找一个好的 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/

相关文章:

iphone - 自定义允许此应用程序使用位置弹出窗口 iOS

javascript - 确定哪个链接引导您进入当前页面

php - 忽略并继续处理特定的 Symfony2 kernel.exception 事件

PHP+jQuery 游戏安全

excel - 无法使用 VBA 通过 SOAP 请求从 Web 服务获取响应

java - 在没有 wsimport 的情况下使用 Java 中的通用 xml Soap Web 服务

java - Java与Android的交互

android - 从android类获取位置

php - 获取与所选游戏具有相同类别的所有游戏

android - 使用 API 22 获取用户位置经纬度