Does django have anything that will look at a geographic coordinate (decimal lat/long) and determine if is inside a circle with a certain radius (let's say 100 Km)?
I have certain type of data, each has a lat/long and I would like to make a search in the database to see if that data is located inside of a circle with a specified radius size.
I could probably write something myself that will handle this but I wander if there is something written already that will handle this.
This problem can be solved in pure SQL if you dont mind about very good precision.
You can find points around a GPS position with this specific SQL query :
# 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)
This will give you all records with gps records in a 50km area.
You can easily plug this in django with :
from django.db import connection
cursor = connection.cursor()
cursor.execute( query )
rows = cursor.fetchall()
or with django raw queries
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With