【问题标题】:Nearest land mark in geometry几何中最近的地标
【发布时间】:2013-02-04 09:10:38
【问题描述】:

我有一个名为 map_places 的表,其中包含城市或国家信息以及相应的几何图形以及与城市相关的许多其他信息。我的数据库系统是 PostGIS。我的要求是:

我的应用程序的输入将是几何图形,它可能是也可能不是存储在 DB 中的精确几何图形。我需要借助输入几何从表格中找到最近的城市信息。此输入不是由用户提交的,而是由系统提交的。非常感谢任何帮助。

php 中是否有可用的最近邻实现或 SQL 来处理此问题

【问题讨论】:

标签: php javascript jquery sql postgresql


【解决方案1】:

此处的“位置”行是您的项目的坐标(整数或浮点数)。 $id - 表“map_places”中所需项目的 ID。此查询的结果将是项目的 ID,该项目的位置与您传入查询的 id 的项目位置最近

SELECT * FROM(
SELECT T2.id, abs(T1.location-T2.location) as DIF
FROM  map_places T1, map_places T2
WHERE T1.id = $id AND T1.id<>T2.id
order by T1.id) as RES
WHERE DIF = (SELECT min(abs(T1.location-T2.location))
FROM  map_places T1, map_places T2
WHERE T1.id=$id AND T1.id<>T2.id)

【讨论】:

  • 简单的算术通常是不够的,因为这些地方所在的星球是蛋形的,而且这些地方有不同的高度。
  • T1 和 T2 是 map_places 表的别名,用于在 map_laces 表的自连接中区分自己
猜你喜欢
  • 2014-08-16
  • 1970-01-01
  • 1970-01-01
  • 2010-12-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
相关资源
最近更新 更多