2012-05-01 3 views
1

지리적 문제가 생겼습니다. PostGIS 사용에 관해서 물어볼 필요가 있습니다. 삼투를 통해 OpenStreetMap 데이터를 PgSQL로 가져 왔고이 데이터를 쿼리해야합니다.PostGIS OSM 쿼리

본질적으로 나는 GPS로부터의 위치를 ​​가지고 있으며, 적어도 먼 거리 (100m라고 말할 수 있음)의 일부분 인 노드, 방식 및 영역의 모든 태그를 얻을 필요가 있습니다.

어디서부터 시작해야할지 모르겠습니다.

감사합니다.

답변

1

는 :

select * from nodes_with_tags 
where st_distance(geography(geom), 
geography(st_geomfromewkt('SRID=4326;POINT(' || lng || ' ' || lat || ')'))) 
    <= 100; 

'지리'기능을 변환 물건 속도가 느려집니다하지만 이해할 수없는 정도가 아니라 미터의 거리를 제공합니다.

또한 'ways'테이블에서 'geom'열을 ways.linestring 열로 대체하여 동일한 쿼리를 수행 할 수 있습니다.

0

확인이 링크 : LINK

그것은 ZIP 코드와 함께 작동하지만 SQL에 당신을 잘 알고 있다면, 당신은 쉽게 변경할 수 있습니다. 참고 : 대형 DB를 사용하는 경우 테두리 상자 (Box3D 함수 참조)도 사용해야합니다. 쿼리 시간을 줄이는 데 도움이됩니다. 당신이 위도를 가지고 경도는 다음과 같이 시도 할 경우

+0

질문이 필요합니다. 내가 숲의 1 km의 정방형의 중심에있다라고 말하는와 내가 거리의 단지 100 m를 볼 정도로 나는 어떤 숲의 노드도 보지 않는다. 이 사건도 역시 다루겠습니까? – user978734