Your model must be like this:
# Import django module
from django.contrib.gis.db import models
class Point(models.Model):
placename = models.CharField(max_length=50)
geom = models.PointField(srid=4326)
objects = models.GeoManager()
def __unicode__(self):
return '%s %s %s' % (self.name, self.geom.x, self.geom.y)
your view is :
from django.contrib.gis.geos import *
from adress.models import Point
from django.http import HttpResponse
from django.contrib.gis.measure import D # ``D`` is a shortcut for ``Distance``
def AdressFinder(request):
adress = request.POST.get('sentAdress', '')
getAdressCoord = Point.objects.get(placename = str(adress))
po = POINT(getAdressCoord.x getAdressCoord.y)
pnt = fromstr(str(po), srid=4326)
qs = Point.objects.filter(point__distance_lte=(pnt, D(km=5)))
return HttpResponse(your choose for returning object)
it will give you objects in 5 km square.
Geodjango Distance Lookups
Availability: PostGIS, Oracle, SpatiaLite
The following distance lookups are available:
distance_lt
distance_lte
distance_gt
distance_gte
dwithin
Dont forget, qs is in array and it filter all objects for your request that you have to loop for getting all objects one by one..
Now you can convert your result to geojson or anything for your app...
i hope it helps you....