首页 > 代码库 > 百度地图3.0实现图文并茂的覆盖物
百度地图3.0实现图文并茂的覆盖物
前一段时间搞地图要显示周围房源信息,之前搜索的都是使用2.x的,现在百度地图官方新出了3.0版本由于之前思维局限一直没有实现图文并茂,今天看了别人2.0的实现方式,把它用到3.0上成功显示,下面看一下效果
现在3.0显示覆盖物mBaiduMap.addOverlay(OverlayOptions arg0),有两个类可以添加MarkerOptions和TextOptions,分别对应图片和文字,但是两个无法合在一起,换一个思路就是我们自定义覆盖物大多数都是自定义布局,但是查看官方文档没有现成的接口,所以我们可以把布局文件view转换成bitmap,然后通过BitmapDescriptorFactory.fromBitmap来获取BitmapDescriptor,这样就可以自定义图文并茂的覆盖物了,下面是如何将View转换成Bitmap的方法:
<span style="font-size:14px;">/** * 从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; }</span>
我做的是云检索显示内容,具体的可以查看官方的demo,我这里只写出用到的主要函数的方法:
<span style="font-size:14px;">@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); } }</span>
我上面是使用TextView,如果要显示其他的内容自己可以使用布局文件。
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。