GeoDjango - 一个点和一个多棱镜查询集之间的距离。

问题描述 投票:0回答:1

我对Django很熟悉,但对GeoDjango和PostGIS很陌生。

我有一个问题,我想找到离一个点最近的MuliPolygon。这个点可以是在MultiPolygon之外,也可以是在MultiPolygon之内。最近的意思是最近的边界点。

我知道我可以用以下方法计算两点之间的距离 from django.contrib.gis.db.models.functions import Distance - 但我不想使用 centroid 因为多角形的边界有可能比多角形的边界更接近一点。centroid 的。

我有一个模型 Land 随地 surface_area 这是个 MultiPolygon. 我有一个用 from django.contrib.gis.geos import Point. 这是我用来尝试建立查询的数据。

如果有任何关于最佳实践的帮助,我将不胜感激。

django postgis geodjango
1个回答
0
投票

GeoDjango's 距离查询 利用相应数据库的距离函数。

由于你使用的是PostgreSQL和PostGIS,所以相应的 ST_Distance 方法,对于几何体类型返回两个几何体之间的最小二维笛卡尔(平面)距离,单位为投影单位(空间参考单位)。

对于几何体类型,以投影单位(空间参考单位)返回两个几何体之间的最小2D笛卡尔(平面)距离。

因此你可以使用 距离查询 来进行计算。

如果你想用不同的方式来实现它(例如使用多边形的边界框),你可以参考这个Q&A。如何在geodjango中获得k个最近的邻居?

© www.soinside.com 2019 - 2024. All rights reserved.