PostGIS로 역 지오 코딩을 수행하는 가장 좋은 방법은 무엇입니까?


13

PostGIS로 역 지오 코딩을 수행하는 방법이 있습니까? 웹에는 많은 정보가 있지만 매우 혼란 스러웠습니다 ...

PostGIS 데이터베이스를 사용하여 osm 데이터를 내 Postgres로 가져 왔습니다. 이제 데이터베이스로 지오 코딩 및 역 지오 코딩을 만들고 싶습니다. 저장 프로 시저가 있는지 또는 문제를 해결하는 프로젝트가 있는지 모르겠습니다.

다음으로해야 할 일은 이런 종류의 요청을 처리 할 수있는 웹 서비스를 만드는 것이지만 또 다른 질문입니다.


이 사이트에서 역 지오 코딩을 검색 하면 몇 가지 결과 가 있습니다. 눈에 띄는 대답은 를 제공하는 서비스에 관한 것입니다.
dassouki

귀하의 질문은 약간 모호합니다. 특정 문제가 있습니까? 아니면 지오 코딩을 역전시키는 일반적인 방법에 대한 도움이 필요하십니까?
Sean

이미 Nominatim을 사용해 보았지만 "gazetteer"출력 사용에 문제가있었습니다. osm 데이터를 가져올 때마다 "세그먼트 오류"가 발생합니다.
Joaquín M

답변:


14

마지막으로 PostGIS 데이터베이스로 지오 코딩 및 역 지오 코딩을 수행하는 방법을 이해합니다. 포인트에 가까운 지오메트리 유형을 찾는 저장 프로 시저를 만들었습니다. 이 저장 프로시 저는 거리 함수를 사용하여 가장 가까운 점을 얻습니다. 그런 다음이 저장 프로 시저를 호출하여 리버스 지오 코딩 요청을 해결하는 RESTful API를 만들었습니다.

내가 틀렸다면 정정하지만 Nominatim 프로젝트는 OSM에서 가져온 데이터베이스에 대한 API를 생성한다는 것을 이해했습니다. 따라서 역 지오 코딩 및 지오 코딩을 위해 저장 프로 시저를 만들 필요가 없습니다. 또한 웹을 통한 요청을 해결하기 위해 웹 서비스를 만들 필요가 없습니다.

이것이 누군가를 돕기를 바랍니다.

CREATE OR REPLACE FUNCTION reverse_geocode (lat double precision, lon double precision)
RETURNS text AS 
$BODY$ 
declare  point geometry;  rec record;  geocode text; 
begin  
    point := geomfromtext('POINT('||lat||' '||lon||')', 4326);  
    select name, distance(way, point) as dist  
    into rec  from mapserverdb_point  
    order by dist asc limit 1;  
    geocode := rec.name;  
    return geocode; 
end; 
$BODY$   
LANGUAGE plpgsql; 

절차를 볼 수 있습니까?
canisrufus

물론 : CREATE OR REPLACE FUNCTION reverse_geocode(lat double precision, lon double precision) RETURNS text AS $BODY$ declare point geometry; rec record; geocode text; begin point := geomfromtext('POINT('||lat||' '||lon||')', 4326); select name, distance(way, point) as dist into rec from mapserverdb_point order by dist asc limit 1; geocode := rec.name; return geocode; end; $BODY$ LANGUAGE plpgsql;
호아킨 M

4

PostGIS 2.0 Tiger 지오 코더에는 Tiger 데이터를 사용하는 역 지오 코더가 있습니다. 지오 코더는 PostGIS 1.5 8.4+ 이상에서 잘 설치됩니다.

미국에 거주하는 경우 모두 plpgsql 함수로 패키지되어 있으므로 사용하기가 가장 쉬울 수 있습니다.

http://www.postgis.org/documentation/manual-svn/Extras.html#Tiger_Geocoder http://www.postgis.org/documentation/manual-svn/Reverse_Geocode.html


감사. 역 지오 코딩을 위해 미국 정보가 필요하지 않았습니다. 이제 리버스 지오 코드가 PostGIS 데이터베이스와 작동하는 방식을 이해했습니다. 고마워
Joaquín M
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.