百度地图------百度infowindow重影问题记录我的

录这个问题,百度地图infowindow有两种构造方法,一种经过百度处理,传入的是图片,不能响应点击事件,另一种传入自己写的view,可以响应点击事件等,效果大致相同,但是我使用这种方法记的时候:

InfoWindow(View view, LatLng position, int yOffset)

会出现重影的现象,效果如下图:



在网上很多人遇到了这个问题,我咨询,都没有回复,帖子里面也没有解决方法,只能自己再看百度API;

我发现有个mapview.removeView()方法,当使用这个方法: infoWindow = new InfoWindow(baidumap_infowindow, latLng, -47);
       baiduMap.showInfoWindow(infoWindow);
mapView.removeView((baidumap_infowindow);之后,重影消失,但是,点击事件也没了,所以我觉得问题应该出在这里;查看API;

还有一个相对的mapview.addView();这个方法可以传入你自己写的view,也就是之前传入infowindow构造时的方法,那么问题简单了很多;我们可以实现类似infowindow的show()和hide()方法,addView(),removeView();也就意味着我们丢掉infowindow的方法,自己写一个view加上去。

但是如何实现显示在marker的位置,并且不随地图的移动,这里有一个mapView的方法:

就是这个方法,mapView.addView(View,LayoutParams);可以实现显示view的位置;接下来看LayoutParams;同样是在百度API里面:



返回MapViewLayoutParams.Buildercom.baidu.mapapi.map中的方法  
限定符和类型 方法和说明
MapViewLayoutParams.Builder MapViewLayoutParams.Builder.align(int alignX, int alignY)
指定 MapViewLayoutParams 的对齐方式,默认水平居中,垂直下对齐
MapViewLayoutParams.Builder MapViewLayoutParams.Builder.height(int height)
指定 MapViewLayoutParams 的高度
MapViewLayoutParams.Builder MapViewLayoutParams.Builder.layoutMode(MapViewLayoutParams.ELayoutMode mode)
指定 MapViewLayoutParams 的方式:屏幕坐标或者地图经纬度坐标
MapViewLayoutParams.Builder MapViewLayoutParams.Builder.point(Point p)
指定 MapViewLayoutParams 的屏幕坐标
MapViewLayoutParams.Builder MapViewLayoutParams.Builder.position(LatLng position)
指定 MapViewLayoutParams 的经纬度坐标
MapViewLayoutParams.Builder MapViewLayoutParams.Builder.width(int width)
指定 MapViewLayoutParams 的宽度



可以指定显示位置的方法,很强大;那么我们可以使用经纬度的方法;

LayoutParams params = new MapViewLayoutParams.Builder()
                .layoutMode(MapViewLayoutParams.ELayoutMode.mapMode)// 按照经纬度设置位置
                .position(LatLng)
                .width(MapViewLayoutParams.WRAP_CONTENT)
                .height(MapViewLayoutParams.WRAP_CONTENT)
                .yOffset(-37)
                .build();

也就是这样了,最后一步:

mapView.addView(baidumap_infowindow, params);

大功告成;当然记住在点击的事件里面,先removeView,再addView;

记录自己遇到的一个问题,希望能帮助到和我一样遇到同样问题的开发大兄弟。



  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值