mysql - MySQL POINT 空间索引查询从中心 POINT 半径内
问题描述
我看到了许多解决方案,用于从 a 获取最近的行POINT
以转换为X()
并Y()
进行距离的三角计算...据我了解,这似乎没有利用空间索引?
您如何利用空间索引,在最常见的意义上,返回空间POINT
在距离中心半径范围内的行POINT
?
换句话说,你如何得到这样的东西——LatLng
每行存储为 POINT 的 lat lng 位置在哪里,以及CenterPoint
震中
伪代码查询:SELECT * FROM geotable WHERE d=Distance(LatLng,CenterPoint) < 10 ORDER by d
解决方案
您可以使用 st_distance_sphere
SELECT *
FROM geotable
WHERE st_distance_sphere(POINT(-82.337036, 29.645095 ), POINT(`longitude`, `latitude` ))/1000 < 10
在这里您可以看到一个工作示例
推荐阅读
- linux-kernel - gdb 不会在断点处停止 startup_32
- javascript - 通过用户输入通过函数更改全局变量
- c++ - 在上面把我推开?
- scala - Scala宏:限制变量名
- php - 如何在 Yajrabox 中添加显示数据按钮
- tensorflow - 在 Doc2Vec 模型中添加数据 ID
- android - 如何从android中的Amazon cognito用户池中检索用户名
- python - 从 Selenium 和 Python 中的灯箱下载有关 firefox 的 PDF
- amazon-dynamodb - 需要建议:如官方文档所述,将 DynamoDB 构建为新模型
- sql - 如何检查包含字段和类似值的 JSON 字符串?