2010-12-11 2 views
2

나는 SQL/Math를 얻기 위해 http://code.google.com/apis/maps/articles/phpsqlsearch.html을 읽었습니다. 나는 약간의 PHP 스크립트를 썼지 만 나는 결과가 없다.PHP 근처의 장소 스크립트 도움말

<?php 
$db_host = "localhost"; 
$db_username = "root"; 
$db_pass = ""; 
$db_name = "places"; 

mysql_connect("$db_host","$db_username","$db_pass") or die ("could not connect to mysql"); 
mysql_select_db("$db_name") or die ("no database"); 

$lat = "37"; 
$lon = "-122"; 
$radius = "25"; 
$sql = mysql_query("SELECT id, name, (3959 * acos(cos(radians('$lat')) * cos(radians(lat)) * cos(radians(lng) - radians('$lon')) + sin(radians('$lat')) * sin(radians(lat)))) AS distance FROM markers HAVING distance < '$radius' ORDER BY distance LIMIT 0 , 20") or die("error"); 

$nearby_check = mysql_num_rows($sql); 
if ($nearby_check > 0) 
{ 
    while($row = mysql_fetch_array($sql)) 
    { 
     $name = $row["name"]; 
     echo $name . '<br />'; 
    } 
} 
else 
{ 
    echo 'No Places found nearby'; 
} 
?> 

데이터베이스 구조 및 데이터는 Google 코드 기사와 동일합니다.

Thats my PHP 스크립트. 뭐가 잘못 됐어? 나는 그것이 SQL 문제일지도 모른다고 생각하고있다. 별로 모르겠다. 이 게시물은 2008 년 1 월에 나온 것입니다.

+1

당신이 어떤 오류를받을 수 있나요 ? –

+0

근처의 장소를 찾지 못했습니다. 무슨 일인지 잘 모르겠다. 나는 조금 더 많은 정보로 게시물을 업데이트했다. – Keverw

+0

흠, 잘 모르겠다. 반지름을 넓혀 보셨습니까? 2000으로 설정하면 아무것도 나타나지 않습니다. –

답변

1

http://www.geonames.org/export/

사용 geonames.org 당신이 원하는 것을 얻을 수 있습니다. 그것은 장소 근처에서 찾는 것입니다.

이 서버는 다운되지 않았습니다. 나는 이것을 http://webservicex.net과 달리 오랫동안 확인해 왔습니다.

PHP뿐만 아니라 자바 스크립트에서도 사용할 수 있습니다.

http://booking.com은 호텔 근처의 호텔, 공항 등을 표시하기 위해 이와 같은 서비스를 사용하고 있습니다.

저는이 프로젝트를 내 프로젝트 중 하나에 사용했습니다.

geonames는 데이터베이스 덤프를 제공하며 정기적으로 업데이트합니다.

자세한 내용은 해당 사이트를 참조하십시오.

http://www.geonames.org/export/web-services.html

http://forum.geonames.org/gforum/posts/list/499.page