나는이 경우, 그것에 대해 당신에게 디딤돌하지만, 그게 전부 제공 할 수 있습니다.
$distance = 10;
$latitude = 37.295092;
$longitude = -121.896490;
$sql = "SELECT loc.*, (((acos(sin(($latitude*pi()/180)) * sin((`latitude`*pi()/180))+cos(($latitude*pi()/180)) * cos((`latitude`*pi()/180)) * cos((($longitude - `longitude`)*pi()/180))))*180/pi())*60*1.1515) AS `distance` FROM table_with_lonlat_ref loc HAVING distance < $distance"
당신은 당신이 가지고있는 두 테이블 사이에 가입하고 1 또는 2까지의 거리를 감소 않는 쿼리를 만드는 경우, 당신은 개념에 당신이 필요로하는 거의 모든 위도/경도 조합을 가지고 올 수 있습니다. 또는 미국 우편 번호가 모두있는 DB를 찾을 수도 있습니다.이 DB에는 위도/경도가 있고 일치하는 우편 번호를 기반으로 다른 테이블에 삽입 할 수있는 하나의 테이블에 대한 쿼리가 있습니다. 나는 어딘가에 그런 zipcode DB를 가지고있다.
도 나는 http://www.maxmind.com/app/geolite이 그것을 덜 싶어 지불을 완료하지 제안 할 수 있으며 그것은 모든 너무 자주하지만까지 변경합니다. 이것으로 방문자의 IP를 기준으로 참조 점으로 사용할 수있는 거의 모든 위도/경도 조합을 얻을 수 있습니다. IP가 허브 나 마을에서 스팀으로 튀어 나오는 경우가 있습니다. 무엇보다 좋은 점은 서버가 처리 할 수있는 제한 만 제공하며 maxmind의 사용 조건을 벗어난 API 제한에 대한 걱정이 없습니다.
어쨌든 모든 조합으로 인해이 조합을 여러 사이트에서 사용하고 있습니다. 그러나 현재까지 많은 문제를 가지고 올 수 있습니다. 그럼 난 당신의 질문에 해당되지 직접적인 답을 알고 있지만 이미 라트와 걷고 데이터베이스를 가지고 있기 때문에 나는 그것이 솔루션
* "기본적으로해야합니다 .."*. 질문을하십시오. 더 나은 방법은 구체적인 질문으로 만드십시오. –
이것 좀 봐 ... http://www.hashbangcode.com/comment/2732 - 구글을 사용할 수 있지만 서비스 조건은지도를 보여줘야한다! – aserwin
나는 서비스로서 http://www.geonames.org/을보고있다. 언급 한 바와 같이 API 호출에 제한이있어서 한 시간에 2000 건의 호출을 제한합니다. 우편 번호가 필요한 114,000 개의 레코드가 있습니다. 주어진 ZIP lat와 longs에서 이것을 계산할 수 있습니까? –