2014-04-11 61 views
2

上滾動,它似乎允許滾動到現有地圖數據之外。滾動實際上是有限制的,但它似乎在實際的地圖範圍之外。Google Maps API v2:使用我的Google Map API v2標準設置防止在地圖邊界

有沒有簡單的方法來解決這個問題?

enter image description here

+0

對此的任何更新,尤其是從JS API調用時? –

+0

我很長一段時間搬到其他項目。我不認爲我找到了一個很好的解決方案,但檢查AndyHs解決方案,這可能會有所斬獲。 – Paul

回答

0

在我的項目,我使用的是從onCameraChange調用的函數。它將相機移回到地圖的允許區域內。

// First set the bounds 
private static final LatLng NORTHEAST = new LatLng("LAT HERE", "LNG HERE"); 
private static final LatLng SOUTHWEST = new LatLng("LAT HERE", "LNG HERE"); 
private static final LatLngBounds BOUNDS = new LatLngBounds(SOUTHWEST, NORTHEAST); 

的方法是這樣的:

if (BOUNDS.contains(googleMap.getCameraPosition().target)) { 
    return; 
} 

double x = googleMap.getCameraPosition().target.longitude; 
double y = googleMap.getCameraPosition().target.latitude; 

double maxX = BOUNDS.northeast.longitude; 
double maxY = BOUNDS.northeast.latitude; 
double minX = BOUNDS.southwest.longitude; 
double minY = BOUNDS.southwest.latitude; 

if (x < minX) { 
    x = minX; 
} 
if (x > maxX) { 
    x = maxX; 
} 
if (y < minY) { 
    y = minY; 
} 
if (y > maxY) { 
    y = maxY; 
} 


googleMap.moveCamera(CameraUpdateFactory.newLatLng(new LatLng(y, x))); 

我希望這是你在找什麼。

+0

這是一個解決方案,是真的。如果您爲新相機位置設置動畫,看起來會更好。儘管如此,它並不是一個真正的解決方案,因爲您仍然可以滾動定義邊界的邊界。我想要的是與Google地圖應用中的行爲相同:您無法進一步滾動。 – Paul