系统相关
首页 > 系统相关> > android-如何基于屏幕位置而不是地图位置来定位InfoWindows?

android-如何基于屏幕位置而不是地图位置来定位InfoWindows?

作者:互联网

我的自定义infoWindows大于默认值.这意味着我必须降低单击标记时地图中心的位置,以便infoWindow可以完整显示.问题是,由于我将地图位置向下移动了特定的纬度,因此当地图放大关闭时,偏移量太大.相反,当我将镜头拉远时,它的移动幅度不够大.如何相对于屏幕高度放置infoWindow?

屏幕的默认外观. X是infoWindow的锚点

|-----|
|-----|
|--X--|
|-----|
|-----|

我想要的:(无论缩放级别如何)

|-----|
|-----|
|-----|
|--X--|
|-----|

解决方法:

要降低地图以标记为中心的点.抱歉,您失去了默认的信息窗口实现.不用担心您的自定义信息窗口将轻松移植到此方法.处理onMarkerClick是一件非常好的事情,因为现在您的信息窗口可以处理链接到外部内容的按钮,任何信息窗口在google maps应用程序上所做的任何操作(如导航按钮)都可以在onMarkerClick()上使用弹出窗口或对话框片段来完成.

跟着这些步骤.

>告诉地图您正在处理onMarkerClick. mMap.setOnMarkerClickListener(this);
>覆盖onMarkerClick(Marker marker)以
>显示弹出窗口
http://android-er.blogspot.com/2012/03/example-of-using-popupwindow.html
或对话框片段.
>移动地图,使标记位于屏幕底部.
计算新纬度时要考虑到缩放比例和北向. This library
会有所帮助. mMap.moveCamera(CameraUpdateFactory.newLatLng(markers newlat newlon));
>返回false;从onMarkerClick事件告诉android
处理标记.

请注意,对于要使用默认地图信息窗口的标记,请从onMarkerClick()返回true.

标签:infowindow,google-maps-android-api-2,android
来源: https://codeday.me/bug/20191121/2050633.html