Как импортировать данные Lat / Long в PostgreSQL - PullRequest
0 голосов
/ 05 августа 2010

PostgreSQL / Django / newbie здесь.

У меня есть куча JSON-данных с данными о местах и ​​широте / длине, и я хочу импортировать их в свою базу данных.До сих пор я поменял скрипт для форматирования своего JSON в операторы SQL, поэтому я могу импортировать их с помощью множества операторов INSERT.

Но мое поле 'location' (PointField) вызывает у меня горе, когда япопробуйте использовать синтаксис ST_PointFromText ('POINT (lon lat)').В частности:

ОШИБКА: новая строка для отношения "finder_venue" нарушает проверочное ограничение "forcece_srid_location"

Так как мне создать правильный SRID?

Или, учитывая легкость Джанго, я не могу не чувствовать, что совершаю здесь программную ересь.Может кто-нибудь направить меня в более разумное русло?

Спасибо,

Джон

1 Ответ

1 голос
/ 06 августа 2010

Если вы хотите установить SRID в PostGIS, вы можете сделать это:

ST_SetSRID(ST_PointFromText('POINT(-122 37)'), 4326)

(здесь 4326 - SRID.)

Для GeoDjango ваша модель будет определяться следующим образом:это:

from django.contrib.gis.db import models
class Thing(models.Model):
    # ...
    location = models.PointField(srid=4326)  
    objects = models.GeoManager()

Если вы на самом деле используете 4326, вы можете его опустить, так как это по умолчанию.Затем вы установите location экземпляров вашей модели так:

from django.contrib.gis.geos import Point
some_thing.location = Point(-122, 37)
...