2013-04-18 32 views
0

我試圖找出如何檢索MySQL表下方使用「左上角的緯度和經度」和「右下角的緯度和經度」爲地理邊界框的信息。邊框搜尋在MySQL

CREATE TABLE `markers` (
    `id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY , 
    `name` VARCHAR(60) NOT NULL , 
    `address` VARCHAR(80) NOT NULL , 
    `lat` decimal(10,7) NOT NULL , 
    `long` decimal(10,7) NOT NULL, 
    `geopoint` point NOT NULL, 
    PRIMARY KEY (id), 
    SPATIAL geopoint (geopoint) 
) ENGINE = MYISAM ; 

到目前爲止,我有下面的SQL查詢,我不知道這是否是檢索信息的最有效的方法是什麼?

$sql = "SELECT * FROM `markers` WHERE (long BETWEEN '$west_long' AND '$east_long') AND (lat BETWEEN '$north_lat' AND '$south_lat')"; 
+2

與從其他表中檢索信息有什麼不同? –

+0

我需要檢索基於地圖的邊界框的信息如上所述! – Chris

+0

問題保持不變。但是,您也可以提供有關您的邊界框的更多信息,例如...代碼? –

回答

0

有相當令人印象深刻的公式將兩個緯度轉換爲距離(米,英里),經度相同。

只要你的要求是在一定範圍內地球,你應該幫助的MySQL與第二大大簡化擴大地方條件,以減少右矩形。

這是你的選擇,如果你把這些公式在PHP或SQL - 在米箱子可以拉/長轉換成一個盒子。

在LAT-長篇一個簡單的矩形永遠不會成爲一個真正的長方形,就像你可以在每個橙色見。

Marco