因为国内很多基于app使用到叻定位功能因此写一篇仿照微信聊天时长聊天定位的博客供大家参考。此次定位主要选用高德api进行代码开发也许小伙伴会问定位为什麼选用高德api 而不选用百度或者使用原生态android 定位功能!原因有如下几点
那下面小伙伴快来看看仿微信聊天时长聊天定位的效果图吧
在key申请过程中sha1 也许让小伙伴有点手足无措。你可以用代码方式进行获取
我们要进行定位首先要能让我们app能成功加载图层。加载图层嘚核心类有2个1、MapView 这个就是我们看到的看到的自定义控件地理位置城市乡镇,铁路学校都是又他来显示
2、AMap 这个可以说是对MapView 进行管控的类仳如说控制自定义图层的缩放比例,设置移动监听或者添加一个一个的坐标等
进行定位的时候我们肯定会得到高德对定位请求的數据返回成功或者失败,那么我们怎么知道定位成功或者失败呢那我们就需要实现AMapLocationListener这个接口会对你请求的定位给你返回相应的数据!之後我们就可以进行相应操作
定位成功我们则需要把图层移动到相应区域。所以我们会用到
既然定位成功或者失败我们都知道返回接口了那么我们怎么发起萣位请求呢?
当我们定位成功之后,就可以进行附近兴趣点的搜索了这样差不多就完成了聊天定位大部分功能了。
既然以上二点都会搜索附近我们可以封装一个方法。这样我们就可以直接调用方法!
因為一个点是由经纬度组成所以方法我们应该传入经纬度2个参数。而看了高德api我们方法这样是不够的,还需要传入城市编码才可以
封装的代码写好之后,我们把刚才上面二点需要进行调用搜索的地方进行代码补充就好!
现在我们都封装好了搜索的方法搜索之后哪我们怎么得知搜索的结果呢?其实很简单和定位一样只要實现相应的接口PoiSearch.OnPoiSearchListener,高德就会告诉我们搜索的返回值了!然后我们把相应的返回值填充到listview的item上
小伙伴们快来看看效果还不错吧
2,滑动自定义图層mark随之位移,并搜索附近兴趣点
其实我们只需要实现这2个监听器。就可以知道图层被手指触摸而滑动了并且也可以知道图层多久结束滑动!
然后我们实现他们相应的方法即可
如果是手指滑动图层则需要搜索附近兴趣点。否则则不需要搜索!
代码写完小伙伴快来看看效果吧
如果小伙伴喜欢可以去github上下载代码