百度地图- - - 鹰眼轨迹- - - -实时定位
2019独角兽企业重金招聘Python工程师标准>>>
最近看了下鹰眼轨迹sdk,写了个小demo,做个笔记,以便以后需要的时候可以参考下...
1.先将需要的sdk嵌入到工程中,直接copy到libs下,并且将so库放到对应的文件夹中
2.准备工作申请key,就和前面定位中说到的一样,因为我的demo中包含了地图,定位,鹰眼,所以直接用同一个key就可以了
3.去鹰眼轨迹管理台申请鹰眼的服务ID
4.因为鹰眼是个服务,所以一定要在manifest中配置
<!-- 鹰眼定位的服务 --><serviceandroid:name="com.baidu.trace.LBSTraceService"android:enabled="true"android:exported="true" ></service>
5.然后就是代码了...
/*** 鹰眼服务ID,开发者创建的鹰眼服务对应的服务ID*/public int serviceId = 1322;/*** 轨迹服务类型(0 : 不建立socket长连接, 1 : 建立socket长连接但不上传位置数据,2 : 建立socket长连接并上传位置数据)*/private int traceType = 2;/*** entity标识*/private String entityName ;public static final int TIME = 2;onCreat()// 初始化轨迹服务客户端mContext = getApplicationContext();mLBSTraceClient = new LBSTraceClient(mContext);// 设置定位模式mLBSTraceClient.setLocationMode(LocationMode.High_Accuracy);/**设置采集和打包周期* TIME 表示采集周期 即 定位周期* 8表示打包周期 即 回传周期*/
// mLBSTraceClient.setInterval(TIME,8);mLBSTraceClient.setInterval(10,10);entityName = GetIMei.getImei(mContext);// 初始化轨迹服务trace = new Trace(mContext, serviceId, entityName, traceType);
我的以上这一坨是放到自定义的application中的
开启实时定位
//开启轨迹服务
traceClient.startTrace(mApp.getTrance(), myOnStartTraceListener);
private void initStartTrace() {myOnStartTraceListener = new OnStartTraceListener() {// 轨迹服务推送接口(用于接收服务端推送消息,arg0 : 消息类型,arg1 : 消息内容,详情查看类参考)@Overridepublic void onTracePushCallback(byte arg0, String arg1) {Log.i(TAG, arg1+"---服务端推送"+arg0);}// 开启轨迹服务回调接口(arg0 : 消息编码,arg1 : 消息内容,详情查看类参考)@Overridepublic void onTraceCallback(int arg0, String arg1) {Log.i(TAG, arg1+"--推送-"+arg0);//服务开启成功后, 就开启实时定位的线程refreshHandler.sendEmptyMessage(111);}};}
refreshThread = new HandlerThread("refreshTrace");refreshThread.start();refreshHandler = new Handler(refreshThread.getLooper()){@Overridepublic void handleMessage(Message msg) {super.handleMessage(msg);if (null != msg) {if (msg.what == 111) {while(isLoca){try {runOnUiThread(new Runnable() {@Overridepublic void run() {if (null != map) {map.clear();}}});queryRealtimeLoc();Thread.sleep(SELLPTIME);} catch (InterruptedException e) {e.printStackTrace();Log.i(TAG, "线程失败");}}}}}};
/*** 查询实时位置*/public void queryRealtimeLoc(){ traceClient.queryRealtimeLoc(mApp.getServiceId(), myOnEntityListener);}
private void initEntryTrace() {myOnEntityListener = new OnEntityListener() {//请求失败的回调接口@Overridepublic void onRequestFailedCallback(String arg0) {Log.i(TAG, "---"+arg0);}//查询entry列表的回调接口 ,这个接口对应的是列表查询的接口@Overridepublic void onQueryEntityListCallback(String arg0) {Log.i(TAG, "查询----"+arg0);}//这个回调对应的是 实时定位查询的接口@Overridepublic void onReceiveLocation(TraceLocation location) {super.onReceiveLocation(location);realTimeLatlng = new LatLng(location.getLatitude(),location.getLongitude());mHandler.obtainMessage(DRAW_MYLOCATION, realTimeLatlng).sendToTarget();}};}
发送完handler之后,就直接设置覆盖物
/*** 设置覆盖物*/public void setMarker(LatLng latLng,String type){BitmapDescriptor mIconLocation;if ("start".equals(type)) { //起始点的覆盖物mIconLocation = BitmapDescriptorFactory.fromResource(R.drawable.icon_start);option = new MarkerOptions().position(latLng).icon(mIconLocation).zIndex(6);}else if ("end".equals(type)) { //终点覆盖物mIconLocation = BitmapDescriptorFactory.fromResource(R.drawable.icon_end);option = new MarkerOptions().position(latLng).icon(mIconLocation).zIndex(6);}else if("routeline".equals(type)){ //路线的覆盖物mIconLocation = BitmapDescriptorFactory.fromResource(R.drawable.icon_geo);option = new MarkerOptions().position(latLng).icon(mIconLocation).zIndex(6);if (null != polyline) {map.addOverlay(polyline);}}else{ //其他情况就是红色的覆盖物mIconLocation = BitmapDescriptorFactory.fromResource(R.drawable.icon_gcoding);option = new MarkerOptions().position(latLng).icon(mIconLocation).zIndex(6);if (null != poiLatLng) {if (CustomPopWindow.flag) { //如果查看服务端状态的按钮开着,才可以把围栏添加到地图上fenceOverlayOption = new CircleOptions().fillColor(Color.parseColor("#77D7D7D7")).center(poiLatLng).stroke(new Stroke(10, Color.BLUE)).radius(500);}else{fenceOverlayOption = null;}}}//设置缩放显示比例MapStatusUpdate msus = MapStatusUpdateFactory.zoomTo(17.0f);map.setMapStatus(msus);//移动到选中位置,将选中位置设置为屏幕中心MapStatusUpdate msu = MapStatusUpdateFactory.newLatLng(latLng);map.animateMapStatus(msu);marker = (Marker) map.addOverlay(option);//将服务端围栏的overlay添加到地图上if (null != fenceOverlayOption) {map.addOverlay(fenceOverlayOption);}if (null != msUpdate) {map.setMapStatus(msUpdate);}}
以上就是实时定位(实时位置查询)的主要代码,思路就是先开启鹰眼轨迹的服务,然后在他轨迹的回调中查询实时位置,调用查询的接口方法,在查询的接口回调中获取到经纬度,然后根据这个经纬度,给地图设置覆盖物,添加到地图上
转载于:https://my.oschina.net/fbf8866/blog/852860
百度地图- - - 鹰眼轨迹- - - -实时定位相关推荐
- 百度地图鹰眼轨迹服务
这里写目录标题 百度地图鹰眼轨迹服务 鹰眼轨迹服务概述: 鹰眼轨迹服务基本概念: 权限与配额: 创建鹰眼服务: 获取服务id: 终端管理: 添加entity: 添加entity自定义字段: 更新ent ...
- 使用百度地图api模拟实时定位页面 完整示例
使用百度地图api模拟实时定位页面 完整示例 效果:使用百度地图api在页面上显示车辆的实时位置,并有自动刷新和手动刷新两种方式可以选择.每次刷新后,都会在地图上显示车辆的最新位置. 示例运行效果截图 ...
- 百度地图-鹰眼轨迹服务
1.服务概述: 官网地址:鹰眼轨迹服务 | 百度地图API SDK (里面有相关功能的介绍) 2.鹰眼轨迹服务基本概念: 3.权限与配额: 4.创建鹰眼服务: 5.终端管理: 添加Entity: // ...
- 百度地图开发之——百度地图鹰眼轨迹管理台DEMO-v3部署到服务器上
百度地图开发官方下载口:https://github.com/baidu-openmap-trace/web-demo-v3 第一:部署准备 搭建NPM和FIS3的环境 1.安装node.js:htt ...
- 百度地图- - - 鹰眼轨迹- - - 历史轨迹和里程查询
2019独角兽企业重金招聘Python工程师标准>>> 准备工作就不多说了,在之前的实时定位中已经提过,这里就主要说下思路 查询历史轨迹, 主要是要有时间段,并且这个时间段必须在24 ...
- 百度地图鹰眼轨迹---乱码问题
沉寂了这么久,一直没能搞出新的东西,终于,今天,做出来了,特此来一发! 这些天要搞一个竞赛,在利用百度地图实现自己的功能时,出现了N个幺蛾子,现在回想起来,自己蠢得可以.现在说重点: 百度鹰眼,这是个 ...
- Android 百度地图API实现实时定位
首先需要注册百度地图的开发者账号,选择个人开发者就可以.百度地图开放平台 | 百度地图API SDK | 地图开发 (baidu.com) 然后获取AK这个在网上都有可以自己查看.下载.配置sdk可以 ...
- 百度地图鹰眼轨迹服务web服务API应用
1.进入控制台进入应用,最好认证过百度开发者,没认证之前,代码没问题 一直报4005错误 创建应用地址:http://lbsyun.baidu.com/apiconsole/key 2.创建鹰眼服务 ...
- 微信小程序学习实录6(百度经纬度采集、手动调整精度、H5嵌入小程序、百度地图jsAPI、实时定位、H5更新自动刷新)
百度经纬度采集 一.H5页面开发 1.手机端外部JS库 2.地图容器 3.数据表单 4.地图加载 5.回调封装函数+自动定位 二.微信小程序核心代码 1.lnglat.wxml 2.lnglat.js ...
最新文章
- 价值2950亿美元的「量子霸权」,技术水平到了哪个阶段
- 如何快速搭建一个简约美观的在线互动教室?
- python t分布的双侧置信区间
- ASP.NET 3.5中的一个超简单的Ajax实验
- as cast float server sql_Sql Server中Float格式转换字符串varchar方法(转)
- Snipaste截图
- .Net Framework SDK下的命令汇总
- Java运行时内存工作过程
- 低代码/无代码,在国内还有多长的路要走?
- java使用poi读取存储excel表格,包括xls和xlsx格式
- iptv原版固件_华为悦盒原版固件下载|华为悦盒永久免费IPTV固件 V1.0 最新免费版 下载_当下软件园_软件下载...
- 对象存储oss挂载工具ossfs的使用
- 创作swing 绝对布局 窗口事件 鼠标事件 键盘事件 上传头像流程
- Java 进口管制限制解除
- python--step-01
- 磁盘清理 磁盘分析 磁盘空间 磁盘大小 可视化【软件】
- 看完了想点赞的文章!| 数据类好文推荐
- 百度地图如何拾取经纬度
- 刚刚,微信官宣 1000W+ 跨年红包开发,速度搞!
- python多线程多个cpu_为什么python的多线程不能利用多核CPU?