Python Django-确定地理坐标是否在圆内

Python Django-确定地理坐标是否在圆内,python,django,gis,geodjango,geopy,Python,Django,Gis,Geodjango,Geopy,django是否有任何东西可以查看地理坐标(十进制lat/long)并确定是否位于具有特定半径(比如100公里)的圆内 我有特定类型的数据,每个数据都有一个lat/long,我想在数据库中进行搜索,看看这些数据是否位于具有指定半径大小的圆内 我可能会自己写一些东西来处理这个问题,但我想知道是否已经写了一些东西来处理这个问题 如果您不介意非常好的精度,这个问题可以用纯SQL解决 您可以使用此特定SQL查询查找GPS位置周围的点: # find point around : latitude = 4

django是否有任何东西可以查看地理坐标(十进制lat/long)并确定是否位于具有特定半径(比如100公里)的圆内

我有特定类型的数据,每个数据都有一个lat/long,我想在数据库中进行搜索,看看这些数据是否位于具有指定半径大小的圆内


我可能会自己写一些东西来处理这个问题,但我想知道是否已经写了一些东西来处理这个问题

如果您不介意非常好的精度,这个问题可以用纯SQL解决

您可以使用此特定SQL查询查找GPS位置周围的点:

# find point around :
latitude = 46.2037010192871
longitude = 5.20353984832764
query= "SELECT ID, NOM, LAT, LON, 3956 * 2 * ASIN(SQRT(POWER(SIN((%s - LAT) * 0.0174532925 / 2), 2) + COS(%s * 0.0174532925) * COS(LAT * 0.0174532925) * POWER(SIN((%s - LON) * 0.0174532925 / 2), 2) )) as distance from POI  having distance < 50 ORDER BY distance ASC " % ( latitude, latitude, longitude)

或者用

谢谢你,朱珠儿。我想这会管用的。我还不想和詹戈搞混。这太完美了。出于好奇,我只是查阅了一些postgis文档,发现了这个。如果你已经在使用postgis的话,它看起来就简单了一点。谢谢你。我想我应该从MySQL转向Postgres,因为Postgres似乎对GIS的东西有更多的支持。除了GIS专业人士似乎讨厌MySQL之外,我对它了解不多。因为您使用的是Django,所以切换数据库不需要花费太多精力。
from django.db import connection
cursor = connection.cursor()
cursor.execute( query )
rows = cursor.fetchall()