ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

android 百度地图不能点击marker

2020-03-16 12:39:39  阅读:256  来源: 互联网

标签:mBaidumap bundle Marker 点击 marker new android view


 先看代码

声明监听器

mrakerListener=new BaiduMap.OnMarkerClickListener() {
            //marker被点击时回调的方法
            //若响应点击事件,返回true,否则返回false
            //默认返回false
            @Override
            public boolean onMarkerClick(Marker marker) {
                View view = View.inflate(getApplicationContext(), R.layout.map_info, null);
                TextView sj = view.findViewById(R.id.sj);
                TextView ms = view.findViewById(R.id.ms);
                TextView wz = view.findViewById(R.id.wz);
                TextView wc = view.findViewById(R.id.wc);
                final InfoWindow mInfoWindow = new InfoWindow(view, marker.getPosition(), -47);

                Bundle bundle = marker.getExtraInfo();

                sj.setText("时间:"+bundle.getString("sj"));
                wz.setText("位置:"+bundle.getString("wz"));
                ms.setText("定位模式:"+bundle.getString("ms"));
                wc.setText("误差:"+bundle.getString("wc")+"米");

                mBaidumap.showInfoWindow(mInfoWindow);
                return false;
            }
        };
        mBaidumap.setOnMarkerClickListener(mrakerListener);

画marker和折线,问题出在开始的时候先画marker,再画折线,但是折线太多了,把marker挡住了,导致marker无法点击,把绘制顺序颠倒一下就行了 

OverlayOptions mOverlayOptions = new PolylineOptions()
		.width(10)
		.color(WzckActivity.this.getResources().getColor(R.color.ploylineColor))
		.points(gjlist);
//在地图上绘制折线
//mPloyline 折线对象
Overlay mPolyline = mBaidumap.addOverlay(mOverlayOptions);

LatLng endpoint = gjlist.get(0);
MapStatus mMapStatus = new MapStatus.Builder()//定义地图状态
		.target(endpoint)
		.zoom(18)
		.build();  //定义MapStatusUpdate对象,以便描述地图状态将要发生的变化
MapStatusUpdate mMapStatusUpdate = MapStatusUpdateFactory.newMapStatus(mMapStatus);
mBaidumap.setMapStatus(mMapStatusUpdate);//改变地图状态

//定义Maker坐标点
LatLng point = gjlist.get(jsonArray.length()-1);
//构建Marker图标
BitmapDescriptor bitmap = BitmapDescriptorFactory
		.fromResource(R.mipmap.ic_map_end);
//构建MarkerOption,用于在地图上添加Marker
OverlayOptions option = new MarkerOptions()
		.position(point)
		.icon(bitmap);
//在地图上添加Marker,并显示
Marker marker=(Marker)mBaidumap.addOverlay(option);
Bundle bundle=new Bundle();
bundle.putString("ms", startPositionMode);   //携带对象数据
bundle.putString("wz", point.longitude+","+point.latitude);   //携带对象数据
bundle.putString("sj", startTime);   //携带对象数据
bundle.putString("wc", "500");   //携带对象数据

marker.setExtraInfo(bundle);

 

 

标签:mBaidumap,bundle,Marker,点击,marker,new,android,view
来源: https://blog.csdn.net/zhoukaiyoung/article/details/104896413

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有