2010-08-15 3 views
0

나는 다음과 같이 정의 장고 PointField에 일부 내셔널 그리드 참조를 삽입하기 위해 노력하고있어 :GeoDjango에 WKT로 영국 내셔널 그리드 참조를 어떻게 제공합니까?

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

는 그러나, 나는 WKT에 올바르게 포맷하는 방법을 모르겠어요. 이것은 단순히 기본적인 내셔널 그리드 참조, TR3241 사용하려고하면 내가 무엇을 얻을 수 있습니다 : (! WKT에 독서 후 격렬하게 추측)

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 

을 그리고 이것은 내가 만약 내가 무엇을 얻을 사용 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

당신은 단지에 점을 가정하고, 이런 식으로 뭔가를해야 lon1 LAT1 :

그것은 당신의 형상 열이 oscode라고 보이는
insert into geography_table (name, geometry_field) values ('Chez Francois',\ 
ST_GeomFromText('POINT(lon1 lat1)', 27700)); 

; 사용을 확인하려면 psql mydb을 누르고 \d을 누르십시오. 모든 테이블의 목록이 나타나야합니다. 원하는 테이블이 유형 지오메트리로 나열됩니다. 바닥에 "enforce_srid_oscode" CHECK (st_srid(oscode) = 27700)과 같은 줄이 있어야합니다.

큰 이미지 비트는 이러한 레코드가 지구상의 일부 지오메트리에 대한 세부 정보가 포함 된 열이 하나 이상있는 일반 데이터베이스 테이블이라는 것입니다. 이 기하학 값의 삽입은 기하학 유형이어야하며, 영어를이 기하학에 비교적 (상대적으로) 얻는 f}은 geometry constructor입니다.

관련 문제