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

百度地图- - - 鹰眼轨迹- - - -实时定位相关推荐

  1. 百度地图鹰眼轨迹服务

    这里写目录标题 百度地图鹰眼轨迹服务 鹰眼轨迹服务概述: 鹰眼轨迹服务基本概念: 权限与配额: 创建鹰眼服务: 获取服务id: 终端管理: 添加entity: 添加entity自定义字段: 更新ent ...

  2. 使用百度地图api模拟实时定位页面 完整示例

    使用百度地图api模拟实时定位页面 完整示例 效果:使用百度地图api在页面上显示车辆的实时位置,并有自动刷新和手动刷新两种方式可以选择.每次刷新后,都会在地图上显示车辆的最新位置. 示例运行效果截图 ...

  3. 百度地图-鹰眼轨迹服务

    1.服务概述: 官网地址:鹰眼轨迹服务 | 百度地图API SDK (里面有相关功能的介绍) 2.鹰眼轨迹服务基本概念: 3.权限与配额: 4.创建鹰眼服务: 5.终端管理: 添加Entity: // ...

  4. 百度地图开发之——百度地图鹰眼轨迹管理台DEMO-v3部署到服务器上

    百度地图开发官方下载口:https://github.com/baidu-openmap-trace/web-demo-v3 第一:部署准备 搭建NPM和FIS3的环境 1.安装node.js:htt ...

  5. 百度地图- - - 鹰眼轨迹- - - 历史轨迹和里程查询

    2019独角兽企业重金招聘Python工程师标准>>> 准备工作就不多说了,在之前的实时定位中已经提过,这里就主要说下思路 查询历史轨迹, 主要是要有时间段,并且这个时间段必须在24 ...

  6. 百度地图鹰眼轨迹---乱码问题

    沉寂了这么久,一直没能搞出新的东西,终于,今天,做出来了,特此来一发! 这些天要搞一个竞赛,在利用百度地图实现自己的功能时,出现了N个幺蛾子,现在回想起来,自己蠢得可以.现在说重点: 百度鹰眼,这是个 ...

  7. Android 百度地图API实现实时定位

    首先需要注册百度地图的开发者账号,选择个人开发者就可以.百度地图开放平台 | 百度地图API SDK | 地图开发 (baidu.com) 然后获取AK这个在网上都有可以自己查看.下载.配置sdk可以 ...

  8. 百度地图鹰眼轨迹服务web服务API应用

    1.进入控制台进入应用,最好认证过百度开发者,没认证之前,代码没问题 一直报4005错误 创建应用地址:http://lbsyun.baidu.com/apiconsole/key 2.创建鹰眼服务 ...

  9. 微信小程序学习实录6(百度经纬度采集、手动调整精度、H5嵌入小程序、百度地图jsAPI、实时定位、H5更新自动刷新)

    百度经纬度采集 一.H5页面开发 1.手机端外部JS库 2.地图容器 3.数据表单 4.地图加载 5.回调封装函数+自动定位 二.微信小程序核心代码 1.lnglat.wxml 2.lnglat.js ...

最新文章

  1. 价值2950亿美元的「量子霸权」,技术水平到了哪个阶段
  2. 如何快速搭建一个简约美观的在线互动教室?
  3. python t分布的双侧置信区间
  4. ASP.NET 3.5中的一个超简单的Ajax实验
  5. as cast float server sql_Sql Server中Float格式转换字符串varchar方法(转)
  6. Snipaste截图
  7. .Net Framework SDK下的命令汇总
  8. Java运行时内存工作过程
  9. 低代码/无代码,在国内还有多长的路要走?
  10. java使用poi读取存储excel表格,包括xls和xlsx格式
  11. iptv原版固件_华为悦盒原版固件下载|华为悦盒永久免费IPTV固件 V1.0 最新免费版 下载_当下软件园_软件下载...
  12. 对象存储oss挂载工具ossfs的使用
  13. 创作swing 绝对布局 窗口事件 鼠标事件 键盘事件 上传头像流程
  14. Java 进口管制限制解除
  15. python--step-01
  16. 磁盘清理 磁盘分析 磁盘空间 磁盘大小 可视化【软件】
  17. 看完了想点赞的文章!| 数据类好文推荐
  18. 百度地图如何拾取经纬度
  19. 刚刚,微信官宣 1000W+ 跨年红包开发,速度搞!
  20. python多线程多个cpu_为什么python的多线程不能利用多核CPU?

热门文章

  1. 学python好不好-学习python的前景怎么样?
  2. redis中的lua
  3. qt中显示文件夹下的目录及文件的过滤
  4. Thread类和Runable接口使用
  5. Luogu P1073 最优贸易【最短路/建反图】 By cellur925
  6. 20155308 《信息安全系统设计基础》课程总结
  7. P2831 愤怒的小鸟
  8. cNoteReadFile_C语言读取文件内容
  9. 一天一种设计模式(一)------观察者模式
  10. 正确理解Mysql的列索引和多列索引