mysql - 地理编码 - 获取边界内的所有记录

标签 mysql geospatial geocoding

假设我有一个位置(国家、地区、城市、城镇)及其纬度/经度坐标的数据库。

例如我有英格兰的坐标 52.16045,-0.70312

如果我只有纬度/经度,是否有办法返回英格兰边界内的所有位置?

我是否需要对位置进行多边形化...如果需要,如果我只有经纬度,我该怎么做。

请注意,数据库是 Mysql。

一些指导将不胜感激。

最佳答案

如果你有一个带有州边界的多边形,你可以使用 mysql 几何的 ST_CONTAINS 特征来找到多边形内的所有点

假设您有一个表(点),其中包含带有多边形的点和多边形,并且每个多边形都基于一个 polygon.name 你可以使用

SELECT points.col1 
FROM polygons
INNER points ON  ST_CONTAINS(polygons.geom, Point(points.longitude, points.latitude)) 
    AND polygons.name = 'Your_name';

ST_CONTAING 只是检查一个几何体是否包含在另一个几何体中

关于mysql - 地理编码 - 获取边界内的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54025637/

相关文章:

python - 使用英文字母对以母语书写的地址进行地理编码

node.js - Nominatim 为同一请求检索不同的数据

mysql - 笛卡尔积单表

mysql - MariaDB或MySQL中有矢量数据吗?

mysql - 根据值更新表而不重叠字段名称

r - 使用 broom 包整理 map 时保留区域名称

MySQL子查询变量传递

c# - 彼此靠近的 Lat、Long 簇

mysql - 在 MySQL 5.0 中创建 MySQL 空间过程

postgresql - PostGIS、Postgres、地理编码……