2009-09-07 1 views
3

지도를로드 할 때지도가 적절한 확대/축소 수준으로 조정됩니다.Google지도 API로 현재 확대/축소 수준에서 최대 시청 거리 가져 오기

그런 다음지도의 중심에서 특정 반경 이내에있는 여러 마커를 요청합니다.

현재 줌 레벨에 따라 올바른 반경 값을 얻으려면 어떻게해야합니까? 이 값은 중심에서지도의 가장자리까지의 실제 거리 여야합니다.

감사합니다.

+0

상단/하단 또는 왼쪽/오른쪽 가장자리? –

+0

글쎄, 나는지도의 중심으로부터의 거리가 필요하다고 생각해서, 나는 정말로 중요하지 않다. 그러나 말하자면, top/left edge. –

+0

반경이있는 모든 마커를지도 중심점이나지도 경계 내에있는 모든 마커로 가져 오시겠습니까? 그것들은 두 가지 다른 것들입니다. –

답변

3

반경 대신 실제 경계 내에서 마커를 얻는 것이 쉽고 정확하다고 생각합니다. 원하는 경우 경계를 쉽게 확장하거나 축소 할 수 있습니다.

자바 스크립트 :

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. 
+0

굉장하고, 감사! –

관련 문제