2009-10-02 6 views
4

나는 상점 위치 애플리케이션을 개발 중입니다.Google지도를 사용한 근접 검색

상점을 검색하면 현재 주소 및 우편 번호를 기반으로 한 Google지도의 위치가 표시됩니다.

이제 반경 500m 이내에 다른 상점을 보여주는 기능을 만들고 싶습니다. 이렇게하려면 근접 검색/계산을 수행해야합니다.

가장 큰 질문은 어떻게 접근해야 하는가입니다.

내가 수행 한 코드 예는 find this link입니다. 하지만 코드를 사용할 수 있는지 (그리고 코드 중 어떤 코드를 사용해야하는지) 확실하지 않습니다. 누구든지 더 좋은 예가 있습니까?

또한 각 저장소에 대한 지리 코드를 저장하는 데이터베이스에 새 테이블을 추가 할 생각입니다. '이드', '위도'및 '경도'보다 더 많은 필드가 필요합니까?

난 그냥 phpro.org에서 this link을 발견
UPDATE. 그것은 내가 필요한 것처럼 보입니다! 누구든지 예제를 사용하고 코멘트를 달 수 있습니까? 구글지도 API와 직접

+0

시스템에 POI가 있습니까? 또는지도를 사용하여 그 작업을 수행하기를 원하십니까? – Petrogad

+0

@Frederico : POI는 무엇입니까? – Steven

답변

1

당신 캔트 반경 검색, 그러나, 당신은 검색에 포함 할이자 (POI)의 각 지점의 위도와 경도를 알아야 (또는 주소를 지오 코딩을 통해 그들을 알아낼 수) .

이 다음에 근접성을 검색하기 위해 Great Circle 방정식을 사용할 수 있으며 매우 빠릅니다. 우리는 이것을 내 직장에서의 로케이터 서비스 용 저장 프로 시저로 구현했으며,이 도구를 사용하여 응답 시간이 0.1 초 미만인 3500 개 이상의 위치를 ​​검색합니다.

+0

ISP에서 저장 프로 시저를 허용하지 않습니다. ( – Steven

+0

다음 코드에서이를 구현할 수 있습니다. 방정식이 잘 공표되었습니다. –

1

일부 SQL 구현에는 지형 공간 확장이 포함되어 있습니다. 이러한 구현에서는 지정한 지점으로부터의 거리를 기준으로 결과를 필터링하는 WHERE 절을 직접 작성할 수 있습니다.

SQL 구현 문서를 확인하십시오. 지리 정보 POINT 유형이있는 경우 좌표를 lat/lng 쌍이 아닌 POINT로 입력하는 것이 좋으며 위치를 중심으로 테이블에 액세스하려는 경우 해당 필드를 SPATIAL KEY로 사용하는 것이 좋습니다.