如果我有一个表地理编码 - 获得位置
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