我構建了一個應用程序,它使用帶有多個標記的GMaps。用戶可以添加或刪除標記,但我的問題是選擇好的縮放級別來顯示所有的標記。如何在Google地圖上選擇正確的縮放比例
如果用戶添加或刪除標記,則縮放級別可能會更改。
定心我使用下面的代碼相機:
double xMin = 90.0 ;
double xMax = 0.0 ;
double yMin = 90.0 ;
double yMax = 0.0 ;
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (Place place : places) {
if (place.getLatitude() < xMin)
xMin = place.getLatitude();
if (place.getLatitude() > xMax)
xMax = place.getLatitude();
if (place.getLongitude() < yMin)
yMin = place.getLongitude();
if (place.getLongitude() > yMax)
yMax = place.getLongitude();
MarkerOptions markerOptions = new MarkerOptions();
markerOptions.position(new LatLng(place.getLatitude(), place.getLongitude()));
markerOptions.title(String.valueOf(place.getId()));
Marker marker = this.googleMap.addMarker(markerOptions);
allMarkersMap.put(marker, place);
displayMarkersMap.put(marker, place);
builder.include(marker.getPosition());
}
double xPos = (xMax + xMin)/2;
double yPos = (yMax + yMin)/2;
LatLngBounds bounds = builder.build();
int padding = 1; // offset from edges of the map in pixels
//CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, padding);
//this.googleMap.moveCamera(cameraUpdate);
LatLng latLng = new LatLng(xPos, yPos);
CameraPosition cameraPosition = new CameraPosition.Builder().target(latLng).zoom(2).build();
this.googleMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
但我沒有找到一個解決方案,具有良好的縮放值。
我認爲最好的選擇是使用'CameraUpdateFactory.newLatLngBounds(bounds,padding);'你已經在你的代碼 – antonio
中評論好了,但是如何動態地選擇ag ood縮放級別?我想選擇顯示地圖上所有標記的縮放級別 – Fred37b