web-dev-qa-db-ja.com

Django PointFieldモデル属性に割り当てる方法は?

こんにちは私はDjangoモデルを次のように持っています:

class Address(models.Model):
    geoCoords = models.PointField(null=True, blank=True,)

次に、このモデルのインスタンスを作成します。

A = Address()

AのgeoCoordフィールドの座標を(5.3、6.2)に設定するにはどうすればよいですか?このようにポイントフィールドが割り当てられている例は見つかりません。それはとてもばかげた単純な質問です。実際、A.geoCordに割り当てたい座標はpygeocoderからのものです。フロートの2アイテムタプルです。

Django PointFieldsのドキュメントは基本的に non-existant です。

13
Saqib Ali

Djangoの新しいバージョンでは、次のことができます。

from Django.contrib.gis.geos import Point
pnt = Point(1, 1)

https://docs.djangoproject.com/en/1.11/ref/contrib/gis/geos/ で利用可能な多くの例

18
Jordi

次を使用できます。

from Django.contrib.gis.geos import GEOSGeometry
A.geoCoords = GEOSGeometry('POINT(LON LAT)', srid=4326) # 

ここで、latlonはそれぞれlatitudelongitudeを意味し、sridはオプションであり、Spatial Reference System Identifierを示します。

さまざまなジオメトリを描画する方法の詳細については、こちらをご覧ください: https://docs.djangoproject.com/en/dev/ref/contrib/gis/geos/#what-is-geos

9
siolag161