문제

  1. 여기에 문제가 있습니다 ... 사용자가 주소를 입력 할 수있는 필드가 있습니다 (Google Maps API를 통해 지오 코딩 될 것입니다).
  2. 내 데이터베이스에 위젯의 여러 주소가 있습니다 (주소로 저장되었습니다. 다시 쉽게 지오 코딩 할 수 있음).

내가 필요한 것은 사용자가 주소를 입력하고 주소와의 거리에 따라 내 위젯 목록을 입력하는 것입니다. 내 위젯에 대한 수천 개의 주소가 있으며 사용자는 분명히 무한한 주소를 가지고 있습니다.

어떤 아이디어?

감사.

도움이 되었습니까?

해결책

SELECT latitude, longitude, SQRT( POW( 69.1 * ( latitude - 52.58 ) , 2 ) + 
POW( 69.1 * ( - 1.12 - longitude ) * COS( latitude / 57.3 ) , 2 ) ) AS distance 
FROM location ORDER BY distance

여기를 클릭하십시오그들은 거리를 계산하는 몇 가지 방법을 제공합니다. 당신에게 가장 적합한 것을 선택하십시오.

다른 팁

MySQL DB에 품목을 저장하는 경우 여기에 필요한 근거가 있습니다

Google을 사용하여 GEO 거리 필터링을 계산할 수 없습니다. 그렇게하려면 데이터를 보내고 저장하고 쿼리해야합니다. 그들은 지금 또는 미래에 그 서비스를 제공 할지도 모르지만 나는 그것을 듣지 못했습니다.

더 합법적이고 유능하고 비싸다.

A/ AS 하나의 관심 지점 또는 위치는 사이트 고객이 입력하고 GEO 좌표를 수집합니다. 그런 다음 자신의 검색 엔진을 사용하고 지점에서 멀리 떨어져 검색하십시오. Google과의 계약을 위반 한 것으로 보이지만 서버에서로드를 제거하는 '캐싱'결과를 언급합니다. (그 이유는 내 개인적인 추측입니다.)

B/ Google을 사용하여 한 번에 하나씩 대량 지오 코딩을 수행하여 마지막으로 본 사이트의 IP 주소에 따라 하루에 최대 5000으로 수행하십시오. 그것이 사용 계약 위반이 아닌지조차 확실하지 않습니다.

c/ 지오 코딩 서비스와 계약을 구매하고 그들이 당신을 위해 지오 코드를 저장하십시오.

D/ 지오 코딩 라이브러리를 구매하고 자신의 지오 코딩을 수행하십시오.

이 블로그 게시물, "Google Maps API를 사용하여 거리를 계산하십시오", 약간의 도움이 될 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top