目前我使用 Google-Map-v2 ,我想在两个 Markers 之间显示方向。一切都很好,两个 Markers 之间的方向计算并绘制得很好。但是只剩下一个问题。
问题是Google-Map中这两个标记之间的缩放级别太多了。我在SO中搜索并找到一个解决方案,通过以下代码更改缩放级别:
LatLngBounds.Builder builder = new LatLngBounds.Builder();
builder.include(origin);
builder.include(dest);
LatLngBounds bounds = builder.build();
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, 50);
mMap.animateCamera(cu);
现在它更好但仍然缩放级别不好。是否可以对代码进行一些修复? (如果我可以修复一些填充视图)
我也改变50到6,12,......但没有改变。
答案 0 :(得分:16)
你正在使用正确的代码,如果你想要缩小(外部)或减少到0,如果你想要在包含两个标记的最小区域(你可以),则需要增加值(50)跳过案例中的值。
如果您设置的值为150或更高,并且级别太高,您可以使用动画回调缩小" latlng"变焦:
https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap.html#animateCamera(com.google.android.gms.maps.CameraUpdate,com.google.android.gms.maps.GoogleMap.CancelableCallback)
LatLngBounds.Builder builder = new LatLngBounds.Builder();
builder.include(origin);
builder.include(dest);
LatLngBounds bounds = builder.build();
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, 50);
mMap.animateCamera(cu, new GoogleMap.CancelableCallback(){
void onCancel(){}
void onFinish(){
CameraUpdate zout = CameraUpdateFactory.zoomBy(-3.0);
mMap.animateCamera(zout);
}
});
这应该缩放到latLng,完成后,缩放3级。
答案 1 :(得分:3)
试试这个:
CameraPosition cameraPosition =
new CameraPosition.Builder()
.target(yourlatlng)
// .bearing(targetBearing)// you can ignore it
.zoom(12)// your zoom value
// .tilt(40) // angle of view
.build();
mMap.animateCamera(
CameraUpdateFactory.newCameraPosition(cameraPosition),
500,
null);