博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
百度地图3.0实现图文并茂的覆盖物
阅读量:6966 次
发布时间:2019-06-27

本文共 2031 字,大约阅读时间需要 6 分钟。

前一段时间搞地图要显示周围房源信息,之前搜索的都是使用2.x的,如今百度地图官方新出了3.0版本号因为之前思维局限一直没有实现图文并茂,今天看了别人2.0的实现方式,把它用到3.0上成功显示,以下看一下效果

如今3.0显示覆盖物mBaiduMap.addOverlay( arg0),有两个类能够加入MarkerOptions和TextOptions,分别相应图片和文字,可是两个无法合在一起,换一个思路就是我们自己定义覆盖物大多数都是自己定义布局,可是查看官方文档没有现成的接口,所以我们能够把布局文件view转换成bitmap,然后通过BitmapDescriptorFactory.fromBitmap来获取BitmapDescriptor,这样就能够自己定义图文并茂的覆盖物了,以下是怎样将View转换成Bitmap的方法:

/**	 * 从view 得到图片	 * @param view	 * @return	 */	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;	}
我做的是云检索显示内容,详细的能够查看官方的demo,我这里仅仅写出用到的主要函数的方法:

@Override	public void onGetSearchResult(CloudSearchResult result, int error) {		if (result != null && result.poiList != null				&& result.poiList.size() > 0) {			mBaiduMap.clear();			LatLng ll;			BitmapDescriptor bd;			LatLngBounds.Builder builder = new Builder();			for (CloudPoiInfo info : result.poiList) {				TextView textView = new TextView(UElivesRentsRoom.this);				textView.setGravity(Gravity.CENTER);				textView.setBackgroundResource(R.drawable.icon_gcoding);				textView.setTextColor(getResources().getColor(android.R.color.white));				ll = new LatLng(info.latitude, info.longitude);				if (info.title != null) {					textView.setText(info.title);				}else {					textView.setText("未知");				}				bd = BitmapDescriptorFactory.fromBitmap(BMapUtil.getBitmapFromView(textView));				OverlayOptions oo = new MarkerOptions().icon(bd).						position(ll);				mBaiduMap.addOverlay(oo);								builder.include(ll);				bd.recycle();			}			LatLngBounds bounds = builder.build();			MapStatusUpdate u = MapStatusUpdateFactory.newLatLngBounds(bounds);			mBaiduMap.animateMapStatus(u);		}	}
我上面是使用TextView,假设要显示其它的内容自己能够使用布局文件。
你可能感兴趣的文章
[RxJS] Introduction to RxJS Marble Testing
查看>>
单例设计模式
查看>>
hadoop 日常问题汇总(持续更新)
查看>>
Atitit.一个cms有多少少扩展点,多少api wordpress  cms有多少api。。扩展点...
查看>>
使用C# + httpWebRequest 解析WMTS服务元数据
查看>>
帧中继网络 (转)
查看>>
Mac拷贝/复制文件夹路径快捷键
查看>>
理解String的compareTo()方法返回值
查看>>
WebKit Remote Debugging
查看>>
利用JS实现复制/粘贴功能
查看>>
开心网外挂开发手册
查看>>
yii直接执行sql
查看>>
IO处理线程
查看>>
期望dp-hdu-4336-Card Collector
查看>>
OpenCV中的SVM參数优化
查看>>
同步与异步 阻塞与非阻塞
查看>>
iOS - KVC 键值编码
查看>>
新浪微博客户端(6)-创建首页下拉菜单
查看>>
SpringBoot拦截器中service或者redis注入为空的问题
查看>>
spring boot与spring mvc的区别是什么?
查看>>