[英]Django - determining if geographic coordinates are inside of an circle
django是否有任何可以查看地理坐標(十進制緯度/長度)並確定是否在具有一定半徑的圓圈內(比如100公里)?
我有某種類型的數據,每個都有一個緯度/經度,我想在數據庫中進行搜索,以查看該數據是否位於具有指定半徑大小的圓內。
我本可以自己編寫一些可以處理這個問題的東西但是如果有一些已經寫好的東西可以解決這個問題我會徘徊。
如果您不介意非常好的精度,可以在純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)
這將為您提供50公里區域內所有gps記錄的記錄。
你可以在django中輕松插入:
from django.db import connection
cursor = connection.cursor()
cursor.execute( query )
rows = cursor.fetchall()
或者使用django原始查詢
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.