全国免费咨询电话:4000-000-000
文章详情/Company profile

基于高德地图SDK实现跑步路线踩点

网站编辑:优德体育-优德88官网-优德88手机版 │ 发表时间:2020-02-24 15:44:38 

  现在市面上有很多跑步的app,主要的功能大致是记录你的跑步路线以及你的跑步状况,速度距离等,大多是使用了高德地图,百度地图之类的SDK。

  之前学校里有一款课外体育考勤的跑步APP,叫运动世界校园,应该很多大学生都有在用吧(被迫的……),为了那几个少得可怜的体育分,一个学期要跑满120公里,很招人烦了,不过现在已经大四了,不用再跑了嘿嘿。扯开了。

  回到正题,这篇文章主要介绍了如何实现类似运动世界校园跑步的跑步踩点功能。

  现在市面上就那么几家地图的巨头,我这边选择了高德地图来开发,主要是因为公司里开发用的也是高德地图,有过相关的使用经验。高德开放平台上有很多地图相关的功能SDK,可以了解一下。

  首先我们要集成高德SDK,官网上有详细的配置教程Android地图SDK集成,我这里不详细介绍了,按照教程里一步一步来,就可以完成最简单的地图显示。集成好后,差不多长这样。

  这仅仅是个地图展示的功能。如果要实现跑步路线的展示,我们需要获得当前定位的经纬度信息。高德SDK提供了一个监听接口 AMap.OnMyLocationChangeListener,实现这个接口我们就可以获得定位的经纬度信息,我们让承载地图的 Activity 实现这个接口,重写其 onMyLocationChange(Location location) 方法,方法中的参数 location 便是我们当前位置的信息。

  拿到位置的信息之后,我们就可以进行路线的绘制了,因为这个位置信息是固定时间间隔获取(差不多每两秒获取一次),所以说,绘制的思路是,拿到当前位置的经纬度和前一次定位的经纬度,将这两个经纬度点连起来,就是我们的运动路径,每两秒画一段路径,连起来就是我们跑步的路线了。高德地图提供了在地图上绘制线的方法。

  只要传入两个点经纬度的信息,就可以在这两个点之间画一条线。这样,我们就实现了跑步路线绘制的功能。

  关于踩点的功能,要踩点,我们首先要在地图上标出我们的点。高德地图也提供了绘制标记点的相关方法。

  只要传入标记点的经纬度信息,调用此方法便可以将标记点绘制在地图上,我们要做的就是将那些标记点的经纬度信息准备好。我这里准备了一些标记点的经纬度。

  标记点绘制好了,接下来的问题就是如何去判定踩点这个事件,判定的方法还是利用之前获取的位置信息。所谓踩点,就是你人的位置,在标记点所在的位置,两者的经纬度相同,人就踩到了这个点上。但是由于GPS的定位并非百分百的精确,所以踩点事件的触发,我们将其定义为,人的位置相对于标记点的位置的直线距离小于某个值,便踩到了点。

  高德地图很贴心的为我们提供了计算两个经纬度之间距离的方法。

  只要传入两个点的经纬度值,就可以得到两点之间的直线距离,我们拿这个距离作踩点的判断。每次获得到当前坐标的经纬度,就与各个标记点计算距离,当距离小于判定距离,就记已经踩到这个点。

  距离的判断我用到了Rxjava的过滤器,每次获取到经纬度过后在标记点列表中过滤出距离小于判定距离的标记点,将它设置为已踩点。

  这里对标记点颜色做了处理,当踩到这个标记点后,标记点的颜色就变成黄色。至此,跑步路线踩点功能就实现了,是不是很简单。

  我这里贴一下核心功能的代码,相关方法已经写上注释。

  功能的实现并不复杂,主要的工作就是集成SDK 和 onMyLocationChange(Location location) 这个位置获取方法的处理,最大的坑其实是在集成 SDK 和地图的相关配置上,只要将高德地图配置好,就可以为所欲为了。这里也贴上这个项目的 GitHub 地址基于高德地图的跑步路线踩点。如果需要编译运行的话,需要设置你的开发环境下的开发者key。

  程序员这个职业就是缺少运动,出去跑跑步还是挺好的,最后祝大家身体健康,哈哈。

  高德地图SDK实时绘制跑步路径-Swift实现

  跑步运动软件最基本的功能之一,就是对运动中的用户进行实时定位,并绘制出运动路径。本文主要内容,就是用高德的SDK实...

  高德SDK 覆盖物 路径规划 POI 搜索 坐标转换 经纬度坐标与屏幕像素坐标互转 高德 JS SDK调起高德地图...

  该文章属于简书 — 刘小壮原创,转载请注明: 简书 — 刘小壮

  第一章 1. 张浩天悄悄起床,从枕头下摸出火车票,取下墙上的吉他。弟弟张浩然一翻身坐起来,问他干什么。张浩天紧紧抱...

  悄然入笼惊鸡魂, 貌似硕鼠肉滚滚。 撩尾抖臀一阵雾, 迷的迷来昏的昏。

Copyright © 2011-2012 tssinfo.com Inc.All Rights Reserved
优德体育-优德88官网-优德88手机版