如果我有一個表地理編碼 - 獲得位置
id, location, latitude, longitude
,我將有一個位置代碼:(13.779242,100.472915)爲例。
!有兩個問題:我應該使用什麼字段類型的經緯度?雙?或者可能是空間的東西?但是對於計算距離來說更是如此?
不管怎樣,我想找到的位置(或者一個最準確的) 我在想輕鬆,如果我只想做這2個查詢:
Select * from location_table WHERE latitude > 13.779242 AND longitude > 100.472915." LIMIT 1"; // return as row 1
Select * from location_table WHERE latitude < 13.779242 AND longitude < 100.472915." LIMIT 1"; // return as row2
然後做一個比較
$lat_dis_1 = $row1->latitude - 13.779242;
$lat_dis_2 = 13.779242 - $row2->latitude;
if ($lat_dis_1 > $lat_dis_2) {
// row2 was closer
} else {
//row1 closer
}
和經度相同...或者我只是想在這裏過於simpel?
我有一個很難理解你的問題。你是否試圖找到2個位置中的哪個更靠近第三個位置? – thenetimp 2012-02-05 12:11:38
不,我想查找經緯度的位置。但是給定的項目可能並不像db中那樣精確,所以需要找到最接近的地方。 – renevdkooi 2012-02-05 12:13:11
雖然我不知道具體的答案,但我知道你可以用一個SQL查詢來做到這一點,然後返回第一行。我做了類似的商店定位器,這一切都在SQL中。 – thenetimp 2012-02-05 12:18:00