回答

1

你必須定義並檢查新的位置是在標記的onDragListener範圍之外:如果新的位置是在界限之外,你可以標記重置到最後有效的位置或做任何你想做的事情。

要匹配標記是否在邊界內,必須使用LatLngBounds對象的方法contains

事情是這樣的:

LatLngBounds bounds; 
LatLngBounds.Builder builder = new LatLngBounds.Builder(); 

// You construct your bounds in a way like this 
builder.include(new LatLng(latitude1, longitude1)); 
builder.include(new LatLng(latitude2, longitude2)); 
builder.include(new LatLng(latitude3, longitude3)); 
// etc 

bounds = builder.build(); 

googleMap.setOnMarkerDragListener(new GoogleMap.OnMarkerDragListener() { 
    @Override 
    public void onMarkerDragStart(Marker marker) { 

    } 

    @Override 
    public void onMarkerDrag(Marker marker) { 

    } 

    @Override 
    public void onMarkerDragEnd(Marker marker) { 

     if (bounds.contains(marker.getPosition())) { 
      // cast your spell 
     } else { 
      // you can't drag here 
     } 

    } 
}); 
+0

如果解決方案是正確的,請設置爲接受。 –