修复 Google-Map 中两个标记之间的缩放级别
Fix zoom level between two Marker in Google-Map
目前我使用 Google-Map-v2,我想显示两个 标记 之间的方向。一切正常,两个标记之间的方向计算和绘制fine.But只剩下一个问题。
问题是 Google 中这两个标记之间的缩放级别太大了。我在 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,... 但是什么都没变
试试这个:
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);
您使用的代码正确,如果您想缩小(向外),则需要增加值 (50);如果您希望位于包含两个标记 (你可以跳过这个值以防万一)。
如果您将值设置为 150 或更大,并且级别太多,您可以在 LatLng
缩放后使用动画回调来缩小:
Google API
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 级。
目前我使用 Google-Map-v2,我想显示两个 标记 之间的方向。一切正常,两个标记之间的方向计算和绘制fine.But只剩下一个问题。
问题是 Google 中这两个标记之间的缩放级别太大了。我在 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,... 但是什么都没变
试试这个:
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);
您使用的代码正确,如果您想缩小(向外),则需要增加值 (50);如果您希望位于包含两个标记 (你可以跳过这个值以防万一)。
如果您将值设置为 150 或更大,并且级别太多,您可以在 LatLng
缩放后使用动画回调来缩小:
Google API 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 级。