PHP/Mysql x y 坐标之间的半径搜索

标签 php mysql coordinates radius

我已经获得了一个人的(荷兰语)x y 坐标以及数据库中不同位置的 x y 坐标,例如:

x = 158322
y = 460782

现在我想找到该人所在位置周围15公里半径内的所有位置。 找到这个的最好方法是什么?你能举个例子吗?

最佳答案

根据您拥有的数据量,您需要计算固定点与数据集中每个点之间的距离。如果数据集很大,可以先获取15km边界框中的所有点,然后计算匹配点的距离。

要在 php 中计算距离,您可以执行以下操作:

$distance = sqrt(($x-$x2)^2+($y-$y2)^2 // = pythagoras a^2+b^2=c^2

当然,这是假设地球是平的。如果您需要补偿地球的曲率,请在谷歌上搜索“计算两个坐标之间的距离”。

如果我没记错的话,你提到的“荷兰坐标”以米为单位,所以获得 15 公里的边界框应该像 x +/- 15000y +/- 一样简单15000

顺便说一句,mysql 有一个 sqrt 函数,所以从技术上讲,你可以在 mysql 中完成所有这些操作。

此外,如果您需要代码将 Rijksdriehoekscoördinaten 转换为 GPS 坐标,请告诉我;)

关于PHP/Mysql x y 坐标之间的半径搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36320582/

相关文章:

php - post.php X-Editable保存数据到MYSQL数据库

php - 从数据库读取 url 不起作用

html - 链接 css 文件会破坏 html 表格格式

c# - Windows Phone 如何通过坐标获取国家/地区?

php - 转义 MySQL UPDATE(如果长度)

php - 确定对象是否是 PHPUnit 模拟对象

mysql - 如何使用 MySQL 将日期时间更新 +15 小时

PHP库存管理注册

android - 使用 GraphView 库 android 从 Json 数据绘制图形

mysql - 在 MYSQL 中用 2 个坐标(以米为单位)计算地球上距离的最佳方法是什么?