我想知道是否可以通过设备的每个站点为Google地图边界设置不同的填充。
因为我有一个与整个活动相匹配的mpview,但是我在屏幕底部1/3处有一个MapOverlay(一些带有非翻译背景的Linerar布局内的Text)。
现在我想通过使用地图边界放大。但它应该从底部有更多的填充,所以它并没有落后于我的mapOverlay。
我使用120代的填充代码。
final com.google.android.gms.maps.model.LatLngBounds.Builder bounds = new LatLngBounds.Builder();
bounds.include(pref.getSavedLatLng());
bounds.include(currentLatLng);
map.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds.build(), 120));
有没有办法为这个问题设置不同的填充或其他解决方案?
感谢您的帮助和对不起我的英语。
答案 0 :(得分:31)
这是一个较老的问题,也许提问者找到了解决方案,但这里是针对将来遇到同样问题的人。使用
googleMap.setPadding(left, top, right, bottom)
设置单个衬垫,然后使用
googleMap.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds.build(), 0))
完成后,不要忘记将填充设置回0(或之前的任何内容)。因为与newLatLngBounds()
不同,setPadding()
设置的填充是永久性的。
答案 1 :(得分:1)
问题很严重,但要查看更多信息,请查看here。
如果应该将绑定应用于特定操作,则设置地图填充可能不是一个好的解决方案,因为它是永久性的。
应用100及以上的填充以查看地图中的效果。贝娄是一个简单的例子。
final int MAP_BOUND_PADDING = 180; /* In dp */
LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (LatLng latLng : listLatLng) { //listLatLngis a list of latLng to bound. You can put two if you want.
builder.include(latLng);
}
LatLngBounds bounds = builder.build();
CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, MAP_BOUND_PADDING);
mMap.animateCamera(cu);
答案 2 :(得分:0)
这可以使用,但这里我们有小动画问题!
clock_t begin = clock();
...............
clock_t end = clock();
double time_spent = (double)(end - begin) / CLOCKS_PER_SEC;