1

? (아마도 각 장단점이 있겠습니까?)근접 검색이

  • 우편 번호 데이터베이스는 갈 방법이 있습니까?
  • 또는 Geocoder?
  • 알고 있어야 할 모범 사례가 있습니까?

(사용 예제, 기업들이 나열 할 수 있으며, 사용자가 자신의 우편 번호를 입력하고 가까운, 또는 특정 마일 반경 내에있는 기업을 찾을 수있는 옐로우 페이지 유형의 응용 프로그램.)

업데이트 : 응용 프로그램은 정확히 위의 예제 응용 프로그램처럼 거의이다 - 기업은 필수 응용 프로그램에 표시 할 수있는 디렉토리 (사업의 각 유형의 범주가되는) 사용자는 범주로 이동 (거리만큼 결과를 정렬 할 수 있습니다 자신의 우편 번호를 입력 한 후 - 가장 가까운 사업장이 먼저 표시됩니다.) 이름이나 다른 기준으로 검색 할 필요가 없습니다. 간단하게 'Boxer Dog Breeders'페이지로 이동하여 거리별로 정렬 할 수 있습니다.

답변

0

나는 나 자신을 지오 코딩 경험이 없지만, 알렉스 Reisner의 Geocoder 보석 마일에 의해, 최선의 선택처럼 보인다.

지오 코더는 루비를위한 완벽한 지오 코딩 솔루션입니다. Rails에서는 지오 코딩 (거리 또는 IP 주소 별), 역 지오 코딩 (지정된 좌표를 기반으로 거리 주소 찾기) 및 거리 쿼리를 추가합니다. 객체에서 지오 코드를 호출 한 다음 Venue.near ("Billings, MT")와 같은 범위를 사용하는 것만 큼 간단합니다.

사용 방법에 대한 전체 예제는 README을 확인하십시오.

1

추가 검색 기준 (예 : 회사 이름, 카테고리) 또는 복잡한 정렬을 추가하려는 경우 DB가 10000 이상으로 커지면 외부 검색 서버를 사용하는 것이 좋습니다. 예 : sphinx search + thinking sphinx. http://freelancing-god.github.com/ts/en/geosearching.html

의 RoR 모델 솔루션 (같은 Geocoder가) full text searching 매우 효율적이지 : 여기

는 geosearching의 예입니다.

+0

안녕, 대답을 주셔서 감사합니다 - 나는 응용 프로그램에 대한 자세한 정보 (은 다른 정렬 옵션 또는 검색이되지 않습니다) – A4J

+0

내가 얼마 전에 비슷한 응용 프로그램을 작성하여 질문을 업데이트했습니다. 나는 지오 코딩을 역전시키기 위해 thinkig_sphinx를 ['reverse_geocoded_by'] (http://www.rubygeocoder.com/)와 함께 사용했다. 답 제리에 대한 – rogal111

8

그럼 대답은 당신이 원하는 무엇에 따라 달라집니다. 반지름과 물건 내에서 간단한 근접 검색을 원할 경우 Geocoder 보석은 더 이상입니다! 이제 고급 검색 기능 (다각형, 다중 다각형 검색 등)을 원하면 PostrgeSQL 데이터베이스와 훌륭한 PostGIS 확장을 제안합니다. Rails와 함께 사용하려면 지름 공간 계산을 위해 GEOSProj이라는 초고속 라이브러리를 사용하는 RGeo이라는 정말 멋진 보석의 저자가 제공 한 PostGIS adapter for ActiveRecord을 꼭 확인해야합니다.

그렇지 않으면 GIS 기능이있는 전용 검색 서버가 필요하다면 ElasticSearch을 사용해야하며 Ruby에는 Tire이라는 ES를 지원하는 훌륭한 보석이 있습니다.

희망이 있습니다.

+0

감사합니다 - 난, 응용 프로그램에 대한 정보와 내 질문에 업데이트 된 지오 코더가 (당신이 동의 할 것?) 난 그냥 2,500 요청 일 구글의 API에 한계에 대한 걱정,하지만 잘 될 것 같다 -입니다 그게 우려의 문제 야? 아니면 캐싱 옵션이이를 부정 할 것인가? – A4J

+0

글쎄, 지오 코딩 요청을 캐싱하는 방법에는 여러 가지가 있습니다. Redis를 사용하는 것이 좋습니다.하지만 앱이 더 커지면 조만간 Google API 제한에 도달 할 가능성이 높습니다. – Gerry