0

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

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

php 中是否有一个最近邻实现可用于此或 SQL 来处理此

4

1 回答 1

1

这里的“位置”行是您的项目的坐标(整数或浮点数)。$id - 表“map_places”中所需项目的 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)
于 2013-02-04T10:04:19.060 回答