【问题标题】:Geocoding - get all records within a boundry地理编码 - 获取边界内的所有记录
【发布时间】:2019-01-03 15:51:27
【问题描述】:

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

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

如果我只有纬度/经度,我是否可以返回英格兰境内的所有地点?

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

记录数据库是Mysql。

我们将不胜感激。

【问题讨论】:

  • 我不确定您是否可以在 MySQL 中执行此操作。使用 PHP 这样的编程语言会容易得多。
  • 那些对我来说听起来不像是界限,它们是中心点。您将需要边界框,或者至少需要一个搜索半径。

标签: mysql geospatial geocoding


【解决方案1】:

如果你有一个带有状态边界的多边形,你可以使用 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 只是检查一个几何体是否包含在另一个几何体中

【讨论】:

  • @adam78 确实 openstreetmap.org 具有基于国家/地区的边界框数据,您可以将其转换为 scaisEdge 正在谈论的 MySQL 表。
  • @RaymondNijland www.openstreetmap.org 还提供州和行政区的边界......并且很容易获得,因为地图通常在 shp 中......
  • 我知道,道路、湖泊、河流、房屋..您可以禁用不需要的对象..是的,很可能国家/地区形状(边界)在互联网上的其他地方可用,我只提供 openstreetmap.org 作为一个例子
  • @RaymondNijland 如何将边界框数据从 openstreetmap.org 导入/导出到 mysql?
  • @scaisEdge 将整个 openstreetmap 导入数据库会占用大量磁盘空间吗?
猜你喜欢
  • 1970-01-01
  • 2014-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-02-01
  • 2019-08-10
  • 1970-01-01
  • 2019-05-27
相关资源
最近更新 更多