Как я могу предоставить ссылку на британскую национальную сетку как WKT для GeoDjango? - PullRequest
0 голосов
/ 16 августа 2010

Я пытаюсь вставить некоторые ссылки на национальную сетку в поле Django PointField, определенное следующим образом:

oscode = models.PointField(srid=27700, null=True, blank=True)

Однако я не знаю, как правильно отформатировать их в WKT. Вот что я получу, если попробую просто использовать базовую ссылку на национальную сетку, TR3241:

INSERT INTO places (placeid, structidx, subidx, county, name, oscode) VALUES ('10', '1', '1', 'Kent', 'Dover', 'TR3241');
psycopg2.InternalError: parse error - invalid geometry
LINE 1: ...'1', 'Kent', 'D1', 'Eastry', 'Bewsbury', 'Dover', 'TR3241', ...
                                                             ^
HINT:  You must specify a valid OGC WKT geometry type such as POINT, LINESTRING or POLYGON

И это то, что я получаю, если я (дико догадываясь после прочтения WKT!) Использую POINT(TR3241):

psycopg2.InternalError: parse error - invalid geometry
LINE 1: ...'1', 'Kent', 'D1', 'Eastry', 'Bewsbury', 'Dover', 'POINT(TR3...
                                                             ^
HINT:  "POINT(" <-- parse error at position 6 within geometry

Как правильно отформатировать ссылку на сетку?

1 Ответ

1 голос
/ 14 сентября 2010

Вам просто нужно что-то вроде этого, предполагая точку с lon1 lat1:

 insert into geography_table (name, geometry_field) values ('Chez Francois',\
 ST_GeomFromText('POINT(lon1 lat1)', 27700));

Похоже, ваш столбец геометрии называется oscode;чтобы проверить, используйте psql mydb и нажмите \d.Вы должны увидеть список всех таблиц, те, которые вас интересуют, будут перечислены как геометрия типа.Внизу должна быть строчка, примерно такая, как "enforce_srid_oscode" CHECK (st_srid(oscode) = 27700).

Бит большой картинки, который может сбить вас с толку, состоит в том, что эти записи являются обычными таблицами базы данных, по крайней мере, с одним столбцом, содержащим сведения о некоторой геометрии.на земле.Вставки в эти геометрические значения должны быть геометрическими типами, и способ, которым вы переходите от (относительно) простого английского к этим геометриям, с помощью геометрического конструктора .

...