2017-01-05 5 views
3

이 주제에 대한 기사가 많이 있지만 내 필요에 맞는 것을 찾을 수 없습니다. 내가 필요한 유일한 것은 다른 우편 번호의 x 마일 반경 내에서 우편 번호 목록을 얻는 것입니다. 나는 우편 번호 데이터베이스를 가지고 있지 않으며 정확히 내가 필요로하는 무료 서비스가 있지만 (http://postcodes.io/), 거래 차단기 제한 (최대 반경 = 2km)이 없으므로 실제로 사용하지 않습니다.우편 번호 (또는 좌표)와 반지름이있는 우편 번호 (GB) 목록을 얻으려면 어떻게해야합니까?

Google지도 API를 좀 더 자세하게 살펴볼 필요가 있다고 생각합니다. 필요한 정보를 제공 할 수 있다고 생각하지만 문서에서 명확하지 않습니다.지도에 초점이 맞춰져 있습니다. 지금). 누군가가 약간의 빛을 비출 수 있다면 나는 크게 감사 할 것입니다.

이것은 C# 프로젝트 용이므로 모든 유용한 라이브러리를 환영합니다.

답변

4

포스트 코드 데이터베이스를 다운로드하십시오. this one 또는 this one 데이터에 대한 정확성과 완전성 요구 사항이 높은 경우 buying access to the official database을 고려하십시오. Google's GeoCoding API을 사용하여 누락 된 좌표를 검색 할 수 있습니다. 허용되는 일일 무료 할당량보다 많은 코드를 해결해야하는 경우, 더 큰 할당량을 구입하는 것이 좋습니다. 매우 저렴합니다. Google은 설명서에서이 내용을 다룹니다.

데이터베이스를 만들었 으면 확장 프로그램이있는 SQL 데이터베이스에 저장하거나. Postgis을 입력 한 다음 SQL을 사용하여 조회를 수행하거나 인접한 우편 코드를 빨리 찾을 수있는 양식으로 전처리하십시오. 내 경험상, 우편 번호로 조회하는 가장 좋은 방법은 오버 헤드를 추가하고 postcode → [ (postcode, distance), (postcode, distance), .. ] 관계의 해시 맵을 저장하는 것입니다.이 목록에는 조회 할 최대 반경의 모든 우편 번호가 들어있는 목록이 있습니다. 즉, 검색시 트리 탐색을 사용하지 마십시오. 좌표와 포스트 코드 관계에 대해 BSP tree과 같은 공간 데이터에 대한 정교한 데이터 구조를 사용하거나 간단하게 유지하고 각 노드에 그리드 내의 연관된 사각형 내에있는 모든 포스트 코드가 포함 된 거친 2D 그리드 구조를 사용할 수 있습니다 .

2

허용 된 답변을 보완하기 위해 postcodes.io는 사용하는 데이터 세트의 pg_dump도 제공합니다 (Postgres와 Postgis가 활성화되어 있어야 함).

파일을 다운로드하고 압축을 풀면 PostgreSQL 복원 절차 (예 : $ cat postcodeiodb.sql | psql postcodesiodb 만 있으면 전체 데이터 세트를 가져올 수 있습니다. 추가 가져 오기 스크립트가 필요하지 않습니다. 또한 pg_dump은 필요한 모든 스키마 & 색인을 생성합니다. https://github.com/ideal-postcodes/postcodes.io/blob/master/latest

면책 조항 :

이 프로젝트는 여기에서 최신 데이터 세트에 대한 포인터를 유지 내가 알고 postcodes.io

+0

이 아주 좋은 유지, 감사합니다! – Fabio