【问题标题】:Move camera position to fit LatLngBounds with regard to marker height移动相机位置以适应标记高度的 LatLngBounds
【发布时间】:2015-05-03 00:23:20
【问题描述】:

我想将相机移动到适合LatLngBounds 的标记高度。到目前为止,我可以使用以下代码拟合标记的锚点:

LatLngBounds.Builder builder = new LatLngBounds.Builder();
for (Marker marker : markerList) {
    builder.include(marker.getPosition());
}
LatLngBounds bounds = builder.build();

int padding = getActivity().getResources().getDimensionPixelSize(R.dimen.home_map_padding); // offset from edges of the map in pixels
cameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, padding);
mGoogleMap.animateCamera(cameraUpdate);

它产生如下输出: 如您所见,底部有空白空间(这是int padding)。 我希望填充是这样的:

【问题讨论】:

    标签: android google-maps-markers google-maps-android-api-2 google-maps-api-2


    【解决方案1】:

    您的问题与此处发布的问题类似:

    Defining a CameraUpdate with LatLngBounds with different padding values

    解决方案是将实际 GoogleMap 的顶部填充设置为标记图标的高度。

    这样就可以了:

    Drawable drawable = <YOUR DRAWABLE HERE>;
    final int padding = drawable.getIntrinsicHeight();
    map.setPadding(0, padding, 0, 0);
    

    使用我的自定义标记图像看起来像这样(插入标尺以进行比较):

    【讨论】:

    • 事实上我的问题是重复的。但无论如何,你拯救了我的一天(甚至是其中的一小部分)。
    • @MarianPaździoch 很高兴我的回答很有帮助。我实际上是在自己寻找解决方案并找到了您的问题(以及另一个问题)。
    • 错误,因为指标自动移动
    • @delive 你能详细说明一下吗?
    • @delive 那里没有你的帖子,那里的答案和我建议的差不多,所以你在说什么?
    【解决方案2】:

    除非您使用自定义标记,否则我认为没有任何方法可以获取标记的高度。但是,鉴于标记保持相同大小,您可以将相机视图向上滚动一定量。

    您将不得不考虑滚动多少,但一旦获得该值,您就可以在必要时根据屏幕密度对其进行缩放。

    【讨论】:

    猜你喜欢
    • 2021-11-15
    • 2011-02-21
    • 2018-10-21
    • 2017-12-22
    • 2021-04-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多