百度地图4.1_1开发教程(8)为marker加上备注
项目需要在marker上添加对应的备注,这个效果在其他App上也可以见到,在朋友的帮助下,发现实现这个效果也不是很难。
首先上效果图:
由于没有找到合适的图片,所有备注的背景开口方向不对,这里仅做个示例不要在意那些细节。
还是应该先说一下实现思路吧,我们知道,marker的点的图标,是可以自定义的,根据我们公司web开发人员所说,web端是提供了为marker显示备注的api,但我们手机端没有对应的api,虽然,但是还是可以实现的。可能有人会想到,把显示的图标和备注写在一起做成,marker图标不就行了吗,而我,就是这样实现的。
主布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"><com.baidu.mapapi.map.MapViewandroid:id="@+id/activity_test_mv_mapview"android:layout_width="match_parent"android:layout_height="match_parent"android:clickable="true"/>
</LinearLayout>
marker布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="wrap_content"android:layout_height="wrap_content"android:gravity="center_vertical"><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"><ImageViewandroid:id="@+id/item_main_flight_remark_iv_image"android:layout_width="match_parent"android:layout_height="match_parent"android:gravity="center_vertical"android:src="@mipmap/ic_flight"/></LinearLayout><LinearLayoutandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:background="@mipmap/popup_flight_info"android:gravity="center_vertical"><TextViewandroid:id="@+id/item_main_flight_remark_tv_remarks"android:layout_width="wrap_content"android:layout_height="wrap_content"android:padding="5dp"/></LinearLayout></LinearLayout>
目前的布局是这样的:
private BitmapDescriptor ic_flight;private Marker mBGMarker; // 飞机Marker@Overrideprotected void onCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);setContentView(R.layout.activity_test);ButterKnife.bind(this);initWidget();addFlightInfo(FlightInfo.flightInfos);}private void initWidget(){mBaiduMap = mv_mapview.getMap();}/*** 添加marker**/private void addFlightInfo(List<FlightInfo> flightInfos){LatLng latLng = null ;View view = LayoutInflater.from(TestActivity.this).inflate(R.layout.item_main_flight_remark, null);ImageView iv_image = (ImageView)view.findViewById(R.id.item_main_flight_remark_iv_image);TextView tv_remarks = (TextView)view.findViewById(R.id.item_main_flight_remark_tv_remarks);for (int i = 0; i < flightInfos.size(); i++){
// iv_image.setImageResource(R.mipmap.ic_del_all); // 自定义修改marker左边的图标tv_remarks.setText(String.format("型号:%1$s\n单位:%2$s\n速度:%3$s\n",flightInfos.get(i).getModel(),flightInfos.get(i).getNum(), flightInfos.get(i).getSpeed()));latLng = new LatLng(flightInfos.get(i).getLatitude(), flightInfos.get(i).getLongitude());ic_flight = BitmapDescriptorFactory.fromBitmap(getBitmapFromView(view));MarkerOptions mo = new MarkerOptions().position(latLng).icon(ic_flight).zIndex(i).draggable(true);mBGMarker = (Marker) (mBaiduMap.addOverlay(mo));}MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(latlng);// 移动中心店至最后一个点mBaiduMap.animateMapStatus(u);}
FlightInfo.flightInfos是我写的静态类里的模拟数据
可以看到,我们的布局通过BitmapDescriptorFactory.fromBitmap(getBitmapFromView(view);这个方法,将布局加载成了一个bitmap,然后作为marker的点显示到地图上。
献上工具类:
public class BitmapTransView
{public static Bitmap getBitmapFromView(View view) {view.destroyDrawingCache();view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());view.setDrawingCacheEnabled(true);Bitmap bitmap = view.getDrawingCache(true);return bitmap;}
}
如此,就实现了我们要的功能。结合我之前的博客可实现点击marker弹出详情等更多功能。
如果帮到你,请帮我点赞啦,谢谢。
工具下载地址:http://download.csdn.net/detail/u012552275/9705461
百度地图4.1_1开发教程(8)为marker加上备注相关推荐
- 百度地图api php开发教程,百度地图API使用方法详解_PHP
最近做了个项目,其中项目中有个需求需要用到百度地图进行导航,通过查阅相关资料参考百度地图api完成了一个例子. 示例一: API地址:http://developer.baidu.com/map/js ...
- 百度地图api php开发教程,百度地图API使用方法详解_php实例
最近做了个项目,其中项目中有个需求需要用到百度地图进行导航,通过查阅相关资料参考百度地图api完成了一个例子. 示例一: API地址:http://developer.baidu.com/map/js ...
- 百度地图API的使用教程以及案例
百度地图API的使用教程以及案例 一.注册 百度地图:掌握当前的位置在网页显示位置,插入地图 拖拽,点击事件. 注意:定位 距离 公交 不关心 官网: 点我进入百度地图官网 应用场景:网页插入百度地图 ...
- 百度地图LBS应用开发代码
最近因为工作需要,领导要我将51地图API开发的一个应用迁移到百度地图,或者说用百度地图API进行重写,实现同样的功能.我先是把现有的这个51地图的应用了解了一下,然后就试着用百度地图做一些demo, ...
- 百度区块链 XuperChain开发教程(第二部分)
百度区块链 XuperChain开发教程(第二部分) 第一部分编译完成后,现在开始进入测试部分: $ cd output/ $ ./xchain-cli createChain msg="c ...
- 浅谈百度地图的简单开发再续前缘之公交,地铁路线检索查询(六)
关于百度地图的简单开发前段时间,写过一个小系列的博客关于百度地图的基本地图,定位,全景,导航等功能做了简单的介绍.从今天开始又将准备一期有关百度地图的POI检索的等一列查询功能,如城市检索,周边检索, ...
- 浅谈百度地图的简单开发最后收官之实现导航功能(五)
这篇是高仿百度地图的最后一篇了,今天主要来实现百度地图的导航的功能,并且该导航还自带语音播报功能,然后最后对整个百度地图开发过程遇到的问题进行一些列举,并给出一些解决的办法,可能总结的不是很齐全,希望 ...
- 百度地图api离线开发(示例源代码)
相关教程: 1.如何搭建WEB离线地图开发环境 2.下载离线地图数据(金字塔瓦片数据) 3.离线地图二次开发接口(离 ...
- 利用百度地图天气API开发微信小程序
2020.11.24更新: 更换了天气数据源,增加了小时预报和未来6天预报. 2020.11.19更新: 由于百度的API一直有问题,所以修改了初始进入后的定位方法. 2020.11.05更新: 最近 ...
最新文章
- 一致性哈希算法以及其PHP实现
- 皮卡丘为什么不进化_精灵宝可梦:进化后反而变弱的精灵!皮卡丘:知道我为什么不进化了?反而会变弱!...
- 字符集(CHARACTER SET)和校对集(COLLATE)
- 想法记录---实时计算的TopN的实现
- 用Java描述数据结构之栈和队列,以及栈和队列的常用方法
- 网页打开Android APP
- sysbench压测cpu,io,memory,threads,mutex
- SQL2008数据库可疑状态处理
- LAMP架构一(介绍)
- java实现等额本息算法
- 容灾~~~~~~~~~~~~~~~~~~~~
- 街景地图工作是如何工作的
- css动画中文字慢慢显示,利用定时器和css3动画制作文字依次渐变显示的效果
- java聚合函数_count()聚合函数正确用法
- 澳洲八大的IB(International Baccalaureate)成绩录取要求
- *ST荣联:正在培养区块链团队,积极储备相关解决方案的能力
- 2017年5月问题记录与总结——powerpc p1020 spi flash驱动
- php 数组 时间戳排序,php – 按时间戳排序Summed Collection
- 功率二极管的损耗分析和选型原则
- 实时数据库在超大集团中应用的技术要求和典型场景—以风力发电为例