2014-10-04 2 views
1

인사말을 매핑, 친구가 나에게 교통의 경로를 일어 나는 다음과 같은 형식으로 단계 : 그는 나에게 말했다기하 구조 형식은 안드로이드

0102000020E610000049020000F2D077B7B23A53C0F03504C7651428C07E703E75AC3A53C07E37DDB2431428C07E8AE3C... 

그것이 MultiLineString했다. 를 사용할 때와

SELECT St_asewkt ('0102000020E6100000810200 .....'); 

내가 아마도 내가 좌표를 얻을 안드로이드에 경로를 그릴 구글지도 API에서 사용할 수있는 wkt 형식을 얻을 수 있어야하지만 : 나는 PostGIS 기능을 사용 나를 비운다. 도와주세요

나는 lat지도 좌표를 얻으려면 MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4)) ...과 같은 것을 얻을 필요가 있습니다. 안드로이드가있는 구글 맵스 API에 그걸 그릴 수 있습니다. 나는 기능 좌표를 얻으려고하는 이유

는 내가 가지고있는 것은이 값

0102000020E6100000810200 .....

이며, 구글지도 API와 안드로이드에 페인트 싶습니다 요약하면, 그건. 당신은 무엇

+0

시도 [ST_AsText] (http://www.postgis.org/docs/ST_AsText.html) –

+0

결과가 비어 있습니다. ( – Eragonz91

답변

2

는 동반자 잘 알려진 텍스트 (WKT)와 함께이 페이지에 설명 Well know binary, WKB,하지만 당신은 같은 것을 할 경우 ASCII (16 진수) 표현으로, the docs

를 참조하십시오

select st_setsrid(st_makepoint(50, -2),4326); 

당신은 당신과 비슷한 0101000020E6100000000000000000494000000000000000C0을 볼 수 있습니다. E'\\x 당신이 binary format docs를 참조하십시오 16 진수 문자열을 삽입하고 있음을 나타냅니다 경우

당신은

create table test (g geometry); 
insert into test(g) values(ST_GeomFromEWKB(E'\\x0101000020E6100000000000000000494000000000000000C0') 

으로 DB에 직접이를 삽입 할 수 있습니다.

지금

select g from test; 

을 할 경우에 당신은 다시 WKB을 얻을 것이다 당신이

select st_astext(g) from test; 

을 할 경우 당신은 더 많은 사람이 읽을 수있는 WKT 형식을 볼 수 있습니다.

올바른 형식으로 데이터를로드하는 가장 좋은 방법은 사용하는 것입니다

COPY table_name FROM your_file.csv CSV; 

당신의 WKB이 될 것

그대로, 인용 부호로 둘러싸는 your_file.csv에.

+0

매우 좋은 기여를하지만, 해결책이 있지만 작동하지 않는다고 생각합니다. 올바르게 삽입되었지만 데이터가 표시되면 아무 것도 표시되지 않습니다. 틀린가요? 내 친구가 말했습니다. 제거는 4326 – Eragonz91

+0

입니다. 원하는 경우 시도해 볼 가치가 있습니다. – Eragonz91

+0

그런 경로가 20 개 있고 나를 위해 아무 것도 작동하지 않습니다 .16410 자리 형식을 가지고 있으며 0102000020E610000000020000ED17951D064853C03CFA1A4281F827C01F ... – Eragonz91