我有一份LatLng坐标的数组列表。然后我根据坐标列表绘制一条多段线。如何使多段线图形适合我的屏幕?LatLngBounds.Builder是解决这个问题的正确方案吗?如果是,我该怎么使用呢?
发布于 2014-11-04 20:49:09
您可以尝试如下所示:
private void moveToBounds(Polyline p){
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for(int i = 0; i < p.getPoints().size();i++){
builder.include(p.getPoints().get(i));
}
LatLngBounds bounds = builder.build();
int padding = 0; // offset from edges of the map in pixels
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding);
mMap.animateCamera(cu);
}发布于 2015-05-08 15:06:27
我对答案做了一些改进: Melo ist to slow的答案
private void moveToBounds(Polyline p)
{
LatLngBounds.Builder builder = new LatLngBounds.Builder();
List<LatLng> arr = p.getPoints();
for(int i = 0; i < arr.size();i++){
builder.include(arr.get(i));
}
LatLngBounds bounds = builder.build();
int padding = 40; // offset from edges of the map in pixels
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding);
mMap.animateCamera(cu);
}发布于 2017-01-13 03:31:35
可以使用标记和多段线点执行此操作。
public void setMapMarkersBounds(List<Marker> markers, Polyline polyline) {
LatLngBounds.Builder builder;
float scale = getApplicationContext().getResources().getDisplayMetrics().density;
int padding = (int) (40 * scale + 0.5f);
builder = new LatLngBounds.Builder();
for (Marker marker : markers) {
builder.include(marker.getPosition());
}
for(int i = 0; i < polyline.getPoints().size(); i++){
builder.include(polyline.getPoints().get(i));
}
LatLngBounds bounds = builder.build();
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, padding);
mMap.animateCamera(cu, 400, null);
}https://stackoverflow.com/questions/24812483
复制相似问题