[請益] php+mysql 地理地址編碼

看板PHP作者 (vivi)時間13年前 (2012/09/10 11:11), 編輯推噓2(204)
留言6則, 4人參與, 最新討論串1/1
小弟目前在寫 地址轉經緯度的程式 是利用GOOGLE MAP API V2 的範例去修改的 利用php從資料庫讀入地址後 轉成經緯度在寫入資料庫 但是解碼出來的經緯度跟實際位置差很多 我把資料庫的地址複製貼上GOOGLE MAP 轉出來的事正確的 以下是程式碼 讀資料庫的部分就沒列出來了 有爬文看過的方法都試過了 還是一樣...請幫幫忙 困擾好久.. // Initialize delay in geocode speed $delay = 0; $base_url = "http://" . MAPS_HOST . "/maps/geo?output=csv&key=" . KEY; // Iterate through the rows, geocoding each address while ($row = @mysql_fetch_assoc($result)) { $geocode_pending = true; while ($geocode_pending) { $address = $row["ADDR2"]; $id = $row["CUST_NO"]; $request_url = $base_url . "&q=" . urlencode($address); $csv = file_get_contents($request_url) or die("url not loading"); echo $id.",".iconv("utf-8","big5",$address)."\r\n"; $csvSplit = explode(",", $csv); $status = $csvSplit[0]; $lat = $csvSplit[2]; $lng = $csvSplit[3]; if (strcmp($status, "200") == 0) { // successful geocode $geocode_pending = false; $lat = $csvSplit[2]; $lng = $csvSplit[3]; $query = sprintf("UPDATE cys_customer " . " SET lat = '%s', lng = '%s' " . " WHERE CUST_NO = %s LIMIT 1;", mysql_real_escape_string($lat), mysql_real_escape_string($lng), mysql_real_escape_string($id)); $update_result = mysql_query($query); echo $query."\r\n"; if (!$update_result) { die("Invalid query: " . mysql_error()); } } else if (strcmp($status, "620") == 0) { // sent geocodes too fast $delay += 100000; } else { // failure to geocode $geocode_pending = false; echo "Address " . iconv("utf-8","big5",$address) . " failed to geocoded. "; echo "Received status " . $status . "\n"; } usleep($delay); } -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.130.92.115

09/10 11:40, , 1F
api 拿到的資料會比 google map 的舊,所以是正常的
09/10 11:40, 1F

09/10 11:40, , 2F
或改 v3 試試吧
09/10 11:40, 2F

09/10 12:15, , 3F
但是我手動輸入裡面的資料 出來的結果是正確的..
09/10 12:15, 3F
已解決 ※ 編輯: vivi50218 來自: 220.130.92.115 (09/10 13:10)

09/13 17:21, , 4F
要不要講一下是什麼問題 跟 如何解決的@@
09/13 17:21, 4F

09/14 14:12, , 5F
是編碼的問題 讀資料庫的時候把編碼改為utf-8就好
09/14 14:12, 5F

10/04 19:57, , 6F
我是初學者,想請教是否可以讀取yahoo or google上的股價?
10/04 19:57, 6F
文章代碼(AID): #1GJLfakg (PHP)
文章代碼(AID): #1GJLfakg (PHP)