3
加載某些方向時,地圖將調整爲適當的縮放級別。使用Google Maps API獲取當前縮放級別的最大觀看距離
然後我要求在地圖中心某個半徑範圍內的數據庫中有多個標記。
如何根據當前縮放級別獲得正確的半徑值?該值應該是從中心到地圖邊緣的實際距離。
謝謝!
加載某些方向時,地圖將調整爲適當的縮放級別。使用Google Maps API獲取當前縮放級別的最大觀看距離
然後我要求在地圖中心某個半徑範圍內的數據庫中有多個標記。
如何根據當前縮放級別獲得正確的半徑值?該值應該是從中心到地圖邊緣的實際距離。
謝謝!
我認爲在實際範圍內而不是半徑範圍內獲得標記會更容易和更準確。如果您願意,您可以輕鬆擴展或縮小邊界。
的Javascript:
var bounds = map.getBounds();
var sw = bounds.getSouthWest();
var ne = bounds.getNorthEast();
var s = sw.lat();
var w = sw.lng();
var n = ne.lat();
var e = ne.lng();
PHP/SQL:
$query = "SELECT * FROM Markers WHERE ";
if ($w > $e) { // If the bounds include the intl. date line
$query .= "(lat BETWEEN $s AND $n) AND ((lng BETWEEN -180 AND $e) OR (lng BETWEEN $w AND 180))";
} else {
$query .= "(lat BETWEEN $s AND $n) AND (lng BETWEEN $w AND $e)";
}
但如果你真的想要去與半徑的方法,你可以做這樣的事情:
var w = map.getBounds().getSouthWest().lng();
var centerLng = map.getCenter().lng();
var distance = centerLng - w; // This is the distance from the center to the left edge in degrees.
真棒,謝謝! – 2009-09-09 10:23:53
上/下或左/右邊緣? – 2009-09-07 14:16:52
好吧,考慮到我需要距離地圖中心的距離,我真的不重要......但是讓我們說,頂部/左邊緣。 – 2009-09-07 14:38:34
是否要從地圖中心或地圖範圍內的所有標記中獲取半徑的所有標記?這是兩回事。 – 2009-09-07 18:16:34