Android百度地图自定义添加Marker点
1.循环往地图上添加Marker点
2.用Bundle保存每个点的信息,这个实体类需要序列化 继承Serializable 并给一个常量serialVersionUID
private static final long serialVersionUID = 8633299996744734593L;
3.setZoomF可以设置地图缩放等级 方便展示所有点
4.Marker的点击监听setOnMarkerClickListener
示例代码:
/*** 循环在Baidumap上添加marker点,并用bundle保存信息* 设置marker的点击监听*/
LatLng latLng = null;OverlayOptions option = null;Marker marker = null;private void initMarker() {Log.i("marker的头像地址", "《就是这个---》》》》》" + list);
// Log.d("________________", "latLng" + latLng);Bitmap bitmap1 = getViewBitmap(view);BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(bitmap1);for (int i = 0; i < list.size(); i++) {stationsBean = list.get(i);latLng = new LatLng(stationsBean.getLatitude(), stationsBean.getLongitude());//构建MarkerOption,用于在地图上添加Markeroption = new MarkerOptions().position(latLng).icon(bitmapDescriptor).zIndex(9) // 设置marker所在层级.draggable(true); // 设置手势拖拽//在地图上添加Marker,并显示marker = (Marker) mBaidumap.addOverlay(option);
// // 将信息保存Bundle bundle = new Bundle();bundle.putSerializable("marker", stationsBean);marker.setExtraInfo(bundle);}myListener.setZoomF(LevelUtil.getLevel(list.get(list.size() - 1).getFarfrom()) + 3);//设置缩放等级 根据点前位置和最远点的距离LogUtils.MyLog("----等级", LevelUtil.getLevel(list.get(list.size() - 1).getFarfrom()) + "juli" + list.get(list.size() - 1).getFarfrom());
// mBaidumap.setMapStatus(MapStatusUpdateFactory.newMapStatus(new MapStatus.Builder().zoom(3.0f).build()));//添加marker点击事件的监听mBaidumap.setOnMarkerClickListener(new BaiduMap.OnMarkerClickListener() {@Overridepublic boolean onMarkerClick(Marker marker) {//从marker中获取info信息Bundle bundle = marker.getExtraInfo();AroundOil.StationsBean stationsBeanThis = (AroundOil.StationsBean) bundle.getSerializable("marker");LogUtils.MyLog("----点击了", stationsBeanThis.toString());showMyDialog(stationsBeanThis);return true;}});}
/*** 将View转换成Bitmap** @param addViewContent* @return*/private Bitmap getViewBitmap(View addViewContent) {addViewContent.setDrawingCacheEnabled(true);addViewContent.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));addViewContent.layout(0, 0,addViewContent.getMeasuredWidth(),addViewContent.getMeasuredHeight());addViewContent.buildDrawingCache();Bitmap cacheBitmap = addViewContent.getDrawingCache();Bitmap bitmap = Bitmap.createBitmap(cacheBitmap);return bitmap;}
/*** 点击marker获得弹窗 调起导航**/private double d = 0;private double f1 = 0;private BigDecimal b = null;private void showMyDialog(final AroundOil.StationsBean stationsBeanThis) {//通过AlertDialog.Builder这个类来实例化我们的一个AlertDialog的对象,可以对Dialog的各个参数进行设置AlertDialog.Builder builder = new AlertDialog.Builder(getContext());//设置Title的标题builder.setTitle(stationsBeanThis.getOilname());//设置Title的图标builder.setIcon(R.mipmap.jiayou);//设置来显示主要的信息d = stationsBeanThis.getFarfrom() / 1000;b = new BigDecimal(d);f1 = b.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();builder.setMessage(stationsBeanThis.getAddress() + "\n距离:约" + f1 + "km");builder.setPositiveButton("导航", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {loadingLayout.setVisibility(View.VISIBLE); NavUtil.showChoiceNaviWayDialog(getActivity(),new LatLng(latitudenew, longitudenew), new LatLng(stationsBeanThis.getLatitude(), stationsBeanThis.getLongitude()), "当前位置", stationsBeanThis.getAddress());}});builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {@Overridepublic void onClick(DialogInterface dialog, int which) {
// Toast.makeText(getContext(), "取消" + which,Toast.LENGTH_SHORT).show();}});builder.show();}
Android百度地图自定义添加Marker点相关推荐
- android百度地图定位自定义图标,Android应用开发之android 百度地图自定义圆,更改默认图标等常用方法...
本文将带你了解Android应用开发之android 百度地图自定义圆,更改默认图标等常用方法,希望本文对大家学Android有所帮助. 总结了一下百度地图常用的方法(前提是集成百度地图环境成功): ...
- android百度地图画圆,Android应用开发之android 百度地图自定义圆,更改默认图标等常用方法...
本文将带你了解Android应用开发android 百度地图自定义圆,更改默认图标等常用方法,希望本文对大家学Android有所帮助. 总结了一下百度地图常用的方法(前提是集成百度地图环境成功): 1 ...
- 百度地图瓦片 android,百度地图自定义瓦片图获取
nodejs代码 const request = require('request'); const fs = require('fs'); const bagpipe = require('bagp ...
- android百度地图自定义覆盖物,Android 百度地图在地图上添加覆盖物(头像)
通过百度地图或者高德地图的demo可以看到有在地图上加载覆盖物的代码,但是加载的都是相同的覆盖物.如果加载不同的人物头像,而且一次加载很多的话,能不能实现呢.确实有这样的需求. 先看看效果图吧. im ...
- android百度地图自定义图层,百度地图开发之百度地图定位图层基本使用方法讲解...
(一):基本介绍: 百度地图可以直接提供定位功能,并且把位置信息以图层的形式标注在地图上面(PopupView),同时还支持自定义设置图标,这样便于用户直接查看位置信息.要实现以上的方法,我们主要需要 ...
- android 百度map 一个layout加载多个mapview,android 百度地图API 使用Marker和InfoWindow
前言:在android开发过程中,百度地图的使用是比较普遍的,但是如何使用,使用什么版本的百度API还是需要一些讲究. 在项目过程中,需要用到百度地图的marker和InfoWindow的功能. 标注 ...
- android百度地图 自定义气泡,百度地图自定义吹出框(气泡)(转)
demo模式:非ARC,使用storyboard. demo资源: http://download.csdn.net/detail/mad1989/5252037 Step1 创建demo,并添加百度 ...
- 百度地图自定义添加一个标注
1.引入百度地图js(需要去百度地图申请ak) <script type="text/javascript"src="https://api.map.baidu.c ...
- android 百度地图批量添加标注,百度地图API实战
为地图批量添加标注 这一节我们将在地图上标出我们获取的到旅馆位置 1.原理 我们可以通过for循环的方式为地图批量添加标注 2.设置点的新图标 我们可以通过Icon(url:String, size: ...
- android 百度地图 自定义地图标注,百度地图自定义标注
步骤:① 定义构造函数并继承Overlay,通过构造函数参数可以传递一些自由的变量.设置自定义覆盖物对象的prototype属性为Overlay的实例,以便继承覆盖物基类. functionCompl ...
最新文章
- [原]fuse-convmvfs 0.2.6介绍及使用
- 局域网win7计算机如何互访,局域网win7电脑的互访步骤
- python识别手写文字_如何快速使用Python神经网络识别手写字符?(文末福利)
- 从零开始编写深度学习库(二)FullyconnecteLayer CPU编写
- 一些比较恶心的代码片段
- 淘宝退款崩溃;马云预言成真;谷歌推新API | 极客头条
- codeforces 664B B. Rebus(乱搞题)
- bzoj3612 平衡 (dp)
- 用Java写一个递归遍历目录下面的所有文件
- winform 实现qq代理_「设计模式」代理模式:神奇的代理模式,节省了我80%开发时间...
- mse 反编译_专业Delphi反编译工具(DeDeDark)
- 如何修改ssh端口号
- 深度解析《软文广告经典案例300》
- 根据pc值确定出错的代码位置
- Elliptic Curve Cryptography: finite fields and discrete logarithms
- USB无线网卡共享台式机接入ADSL无线上网
- 10个程序员必上的网站
- weblogic下java程序占用cpu过高的问题排查
- The Network Adapter could not establish the connection.java.net.ConnectException: Connection refu
- 刚开始做淘宝运营应该怎么入手?