2016-05-16 63 views
3

我有Django 1.7,后面跟着PostgreSQL 9.3。在给定的圆圈内的Django点距离

我想存储一个带有几何场圆的模型,并且如果给定点位于存储的几何圆内,就能够得到真或假。我发现,questionlibrary而且这个option,所以我迷路了......

什么是正确的,更简单的方式做到这一点,是它更好地保存点和半径,然后计算它(所以我需要安装django-postgres-geometry?),还是应该更新Django和PostgreSQL?

回答

2

您将需要在PostgreSQL中安装PostGIS扩展来实现此目的。这就是Django和Postgres用于空间计算的原因。

检查点是否转了一圈,你可以做Django的外壳下面:

from django.contrib.gis.geos import Point 
    point = Point(45.3, 34.2, srid=4326) # lon, lat 

    # check if point in polygon 
    mypoly.contains(point) # this returns True/False 
+0

我可以用我的Django和PostgreSQL的版本实现它,或者我应该升级? – Rada

+1

@Rada你的Django和Postgres版本都很好 - 你只需要在Postgres数据库中安装第三个库,名为'PostGIS' http://postgis.net/这是Django/Postgres用于空间计算的 – djq

+0

@ djq-但我还需要一些库让Django在我的模型中使用circleField?我想如何创建该字段并将其保存在postgresql中? – Rada