Android中百度地图的使用方法之覆盖物功能(一)
来源:互联网 发布:冒泡排序法c语言讲解 编辑:程序博客网 时间:2024/06/05 06:03
地图的主要用法:
①图层展示。普通图、卫星图及交通流量图
②定位
③自定义绘制点、线等几何图形
④覆盖物功能
⑤离线地图
⑥POI搜索
⑦地理编码
⑧路径规划
⑨公交路线查询
覆盖物功能
覆盖物功能:Overlay
Overlay中Marker和InfoWindow的结合使用
1.InfoWindow类
(1)作用:在地图中显示一个信息窗口
(2)构造方法:
public InfoWindow(View var1, LatLng var2, InfoWindow.OnInfoWindowClickListener var3) {
if(var1 != null && var2 != null) {
this.b = var1;
this.c = var2;
this.d = var3;
} else {
throw new IllegalArgumentException("view and position can not be null");
}
}
public InfoWindow(BitmapDescriptor var1, LatLng var2, InfoWindow.OnInfoWindowClickListener var3) {
if(var1 != null && var2 != null) {
this.a = var1;
this.c = var2;
this.d = var3;
} else {
throw new IllegalArgumentException("bitmapDescriptor and position can not be null");
}
}
虽然其中有一个View对象类型的参数,但是用inflate加载到里面我们自定义的布局文件时,它屏蔽了所有的布局样式,只加载布局中的文字。而且,布局中的任何点击事件都没有响应,这是一个大坑,以后要注意,(网页版的可以)但也有另一种解决方法,就是下面的。
2.Android中setTag()/getTag
(1)作用:View中的setTag(Onbect)表示给View添加一个格外的数据,以后可以用getTag()将这个数据取出来。
(2)好处:绑定数据,特别是绑定数据到view。而且可以用getTag()取得,很方便,而且是任意类型的数据
/**
* 根据info信息在布局上的控件上布置
*/
private void popupInfo(LinearLayout mMarkerLy, BridgeInfo info){
ViewHolder viewHolder = null;
if (mMarkerLy.getTag() == null)
{
viewHolder = new ViewHolder();
viewHolder.infoName = (TextView) mMarkerLy
.findViewById(R.id.info_name);
viewHolder.infoNumber = (TextView) mMarkerLy
.findViewById(R.id.info_number);
mMarkerLy.setTag(viewHolder);//有缓存作用
}
viewHolder = (ViewHolder) mMarkerLy.getTag();
viewHolder.infoName.setText(info.getBridgeName());
viewHolder.infoNumber.setText(info.getBridgeNumber());
}
/**
* 复用弹出面板mMarkerLy的控件
*
*/
private class ViewHolder
{
TextView infoName;
TextView infoNumber;
}
Marker传数据
BridgeInfo bridgeInfo=new BridgeInfo(Double.parseDouble(lat),Double.parseDouble(lon),name,number,id);
Bundle bundle = new Bundle();
bundle.putSerializable("info",bridgeInfo);
mMarkerA.setExtraInfo(bundle);
Marker接收数据
// 获得marker中的数据
final BridgeInfo info = (BridgeInfo) marker.getExtraInfo().get("info");
百度地图对Marker有对点击和拖动的监听setOnMarkerClickListener和setOnMarkerDragListener。若要对Marker可以进行拖动
OverlayOptions ooA = new MarkerOptions()
.position(llA)
.icon(bd)
.zIndex(9)
.perspective(true)//开启近大远小
.draggable(true);//设置可拖动
mMarkerA = (Marker) (mBaiduMap.addOverlay(ooA));
目前我对百度地图中的覆盖了解多一点,向其他的功能了解相对比较少。但POI和地理编码功能都是比较常用的,也是比较简单。网上一搜一大堆资料,一看就懂了。我在这里就不多说啦!若你是第一次开发百度地图,百度APIkey申请时要注意一些问题。详情请看我的博客:http://blog.csdn.net/wanliguodu/article/details/49366407
如需要源码可给我留言!
- Android中百度地图的使用方法之覆盖物功能(一)
- Android百度地图之地图覆盖物(结合百度地图API)
- 百度地图覆盖物功能
- Android 百度地图开发教程(一) 地图使用入门及地图表面覆盖物使用
- android 百度地图系列之添加覆盖物和覆盖物的点击事件
- android 百度地图系列之添加覆盖物和覆盖物的点击事件
- 百度地图之覆盖物
- Android 百度地图-大量覆盖物管理(只显示屏幕看到的覆盖物)
- [Android]百度地图之几何标注和文字覆盖物
- Android 百度地图覆盖
- BaiduMap---百度地图官方Demo之覆盖物功能(介绍添加覆盖物并响应点击功能和弹出pop功能)
- Android开发之百度地图的使用(一)
- android中百度地图的使用(一)
- Android之3.5版的百度地图的定位、覆盖物实现以及覆盖物的点击事件
- android中使用百度地图绘制弹出框的覆盖物
- 百度地图中多边形覆盖物的面积计算
- 百度地图的覆盖物自定义(一)--标注物的自定义
- Android学习笔记之百度地图(分条目覆盖物:ItemizedOverlay)
- 简单的验证码实现
- setContentView源码分析
- [Unity优化]数据的加密与解密
- 蓝桥杯-幸运数(模拟)
- hdu4507吉哥系列故事——恨7不成妻 (数位dp)
- Android中百度地图的使用方法之覆盖物功能(一)
- Android WiFi开发 (二)Wifi热点
- Java 进阶 之 并发编程 Lock
- Codeforces 540B School Marks 【贪心构造】
- CentOS 7 配置163源
- HDU 4506 小明系列故事——师兄帮帮忙(快速幂)
- 怎么在mac终端上执行R脚本
- html5中链接和分组标签
- 分治法——归并排序