使用Google Maps API从当前缩放级别获取最大观看距离

时间:2009-09-07 13:52:54

标签: javascript google-maps

加载某些方向时,地图会调整到适当的缩放级别。

然后我在地图中心的某个半径范围内请求数据库中的几个标记。

如何根据当前缩放级别获得正确的半径值?该值应该是从地图中心到边缘的实际距离。

谢谢!

1 个答案:

答案 0 :(得分:3)

我认为将标记放在实际边界内而不是半径更容易,更准确。如果愿意,您可以轻松扩展或缩小边界。

使用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)";
}

但是如果你真的想使用radius方法,你可以这样做:

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.