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