2017-12-07 12 views
0

다양한 속성의 위도와 경도가 저장된 데이터베이스가 있습니다. 나는이 도시의 부동산 중 어느 도시가 어느 도시에 속해 있는지 알아보고 싶습니다 (모든 부동산은 미국에 있습니다).PostgreSQL에서 위도와 경도로 도시 이름을 찾는 방법은 무엇입니까?

+0

Google MAP API를 시도하십시오. –

+0

SQL 쿼리에 Google MAP API를 어떻게 통합합니까? –

+0

우선 SQL 쿼리를 사용하여 lat 또는 long을 얻습니다. 이 API에서 위도 또는 경도를 전달하십시오. http://maps.googleapis.com/maps/api/geocode/json?latlng='.$lat.','$$$'&sensor=true ') –

답변

1

Postgresql에 대해 말하면, 우선 미국 도시 경계 데이터 파일을 가져와야합니다. 가능한 사이트는

https://www.census.gov/geo/maps-data/data/tiger.html 
https://www.census.gov/geo/maps-data/data/tiger-cart-boundary.html 
https://catalog.data.gov/dataset?tags=cities 

입니다. 그런 다음 데이터를 포스트그레스로 가져옵니다. 귀하의 속성 데이터가 이미 포스트그레스에 저장되어 있다고 가정합니다. 도시 경계의 SRID 지오메트리 유형이 4326인지 확인하십시오. 그렇지 않은 경우 ST_transform 함수로 쉽게 변환 할 수 있습니다.

마지막으로 특정 위도/경도가 어느 도시에 있는지 확인하려면 위도/경도를 점 지오메트리로 변환하고 도시 데이터를 확인해야합니다. 예를 들어 이런 것이 될 수 있습니다.

SELECT c.city_name FROM cities_boundaries AS c, properties AS p 
WHERE ST_CONTAINS(c.geom, ST_SetSRID(ST_MakePoint(p.longitude, p.latitude), 4326))