谷歌地图LatLngBounds偏移量

时间:2017-04-09 12:57:24

标签: android google-maps

我有这段代码

        LatLngBounds.Builder builder = new LatLngBounds.Builder();
        builder.include(mainLocation);
        builder.include(userLocation);
        LatLngBounds bounds = builder.build();
        CameraUpdate cu = CameraUpdateFactory.newLatLngBounds(bounds, 0);
        mMap.animateCamera(cu);

这样可以显示边界,但我想在屏幕的上半部分显示边界(有没有办法放置偏移y?)。

enter image description here

(希望这张照片能更好地解释一下)

3 个答案:

答案 0 :(得分:2)

如果我理解正确,您现在得到的是地图居中,这意味着您提供的位置在地图上居中。并且您希望这些位置位于屏幕的上半部分。

似乎there is not这样的API,允许仅将填充应用于底部。

您可以在屏幕下方的LatLngBounds.Builder添加虚假位置,现在CameraUpdate也会包含该点,这将在您的上半部分移动您的2个真实点。

答案 1 :(得分:0)

您可以使用GoogleMap对象中的the setPadding method

在您的情况下,您需要添加底部填充:

mMap.setPadding(0, 0, 0, 150);

答案 2 :(得分:0)

也许晚了,但我解决了这个问题。我在调用 animateCamera 之前为地图制作底部填充,更新后返回填充。

val heightValue = (Resources.getSystem().displayMetrics.heightPixels * 0.5).toInt()
map.setPadding(0,0,0,heightValue)

 val update = CameraUpdateFactory.newLatLngBounds(bounds,50)

 map.animateCamera(update,object:GoogleMap.CancelableCallback{
            override fun onFinish() {
                inUi {
                    map.setPadding(0,0,0,0)
                }
            }

            override fun onCancel() {}
        })