Skip to main content

A lightweight Django Geo Field to save and handle Geo Points. It supports to search the nearby points by their geohash

Project description

=====
Django-GeoField
=====

A lightweight Django Geo Field to save and handle Geo Points. It supports to search the nearby points by their geohash.

Quick start
-----------

0. Install django-geofield

pip install django-geofield

1. Add "django-geofield" to your INSTALLED_APPS setting like this::

INSTALLED_APPS = (
...
'django-geofield',
)

2. Define GeoPositionField in your Model like this::

class Point(models.Model):
...
position = GeoPositionField(db_index=True)

3. Run `python manage.py makemigrations` and `python manage.py migrate` to make it effect

4. The field will save a geo point with a string into database like this :

Point.objects.create(
position=GeoPosition(lat, lon, precision=6))

'wtmm7w,30.49145747305400533377905958332121372222900390625,120.042387425481223317547119222581386566162109375'

5. If you want to query the points whose geohash is matched exactly with the given point , you can :

pos = Point.objects.get(id=1)

points_matched = Point.objects.filter(position__geoprecise=pos.position.geohash)


The '__geoprecise' will find all points have the same geohash.

6. If you want to query the points in expand area to eliminate the geohash's marginal error, you can :

pos = Point.objects.get(id=1)

points_matched = Point.objects.filter(position__geosearch=pos.position.geohash)

The '__geosearch' lookup will find all points have one of 9 ( 1 center point and 8 expand point) geohash .



### **License**: MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django-geofield-0.0.1.tar.gz (9.4 kB view details)

Uploaded Source

File details

Details for the file django-geofield-0.0.1.tar.gz.

File metadata

File hashes

Hashes for django-geofield-0.0.1.tar.gz
Algorithm Hash digest
SHA256 c5ed5da846941b568d361d45c4c5d232e56abc641f24b5d53bb7dabadefe84c6
MD5 80f617eabe10bf008fdd84cef91c2c2b
BLAKE2b-256 2578aff9c1cd6edd79a92a0e5d7e2d0f60f72fab303e02abcb8b17faea84af54

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page