高德地图实现仿qq,微信发送位置功能实现逻辑
- 定位获取当前位置
- 地图中间放置大头针
- 周边展示位置信息
- 周边信息点击后的逻辑操作
- 地图截屏功能实现
- 发送图片到其他页面或者服务器
获取到信息进行展示
写的不好,勿喷,有疑问可以联系我qq 1308889768 或者475386936
公司最近要求在框架添加发送位置逻辑,然而并没有在数据库和后台写入这个方法,所以,只能做出demo样式,等待后台处理
说起来高德定位还是挺好用的,起码对于初级开发者来说,高德的api文档是很容易接受的,对于高德定位,这里就不阐述了,跟着高德地图的demo走完全可以做到定位,获取经纬度,城市;
1,定位成功后,显示当前位置
当定位成功获取到经纬度,可以通过经纬度,在地图上边添加一个系统默认的点当做我的位置,可以自己写个marker,也可以用系统的,但是如果是你自己写的话,需要注意以下几点
-
- aMap.addMarker(markerOptions);
aMap.moveCamera(CameraUpdateFactory.changeLatLng(latLng));
aMap.moveCamera(CameraUpdateFactory.zoomTo(15));
当move在这个位置的时候其实算是地图的一次移动,所以如果你的aMap添加了地图当前可视范围监听的接口时候,它就会走一遍那个接口
aMap.setOnCameraChangeListener(this);
所以如果你想根据地图的改变做些事情,比如更新周边商家信息,地理位置等,你需要注意了
2, 地图中间放置大头针
然后我们可以看到qq和微信都有一个大头针始终在地图的中间,一直都没有动过,这里我用了个取巧的办法就是在布局文件中添加了一个iamgeview,放在地图的中间,但是因为有标题栏,所以具体的位置需要具体的微调,算是一个小bug,手机型号不同,位置可能也不同.经过微调后位置应该与当前marker的位置相同,具体逻辑就不进行展示了,无非是一个framlayout里边添加地图控件和中心位置设置iamgeview
3, 周边展示
周边搜索的逻辑可以通过高德地图跟着方法走完全没有问题,注意里边一个方法的参数问题:PoiSearch.Query query = new PoiSearch.Query("", "餐饮服务|商务住宅|生活服务", "");// 第一个参数表示搜索字符串,第二个参数表示poi搜索类型,第三个参数表示poi搜索区域(空字符串代表全国)query.setPageSize(15);// 设置每页最多返回多少条poiitemquery.setPageNum(currentPage);// 设置查第一页PoiSearch poiSearch = new PoiSearch(this, query);poiSearch.setOnPoiSearchListener(this);poiSearch.setBound(new PoiSearch.SearchBound(latLonPoint, 500, true));//poiSearch.searchPOIAsyn();// 异步搜索在创建这个搜索类的时候要注意它的三个参数,上边已经标注,我们要注意的是三个参数前两个是必须要求填写一个的,第一个是关键字搜索,第二个是类型搜索,如果不了解有什么类型可以去官方文档查看,已经列举出来了,最后一个是区域范围限制,这里我试着填写城市,但是给我的地址不是从近到远的,所以直接传入空字符串当搜索完毕后我们一个通过一个listview或者recycleview进行展示,设置点击事件等
4, 周边信息点击后的操作
我们看qq或者微信点击下方位置,位置上右边的图标会变,地图中心改变,我的当前位置marker不变,这里我在传入listview值的时候,传入一个boolean值表示是否被选中,然后点击进行遍历切换,简单粗暴,boolean值控制item右边显示或者隐藏,当点击时候,如果你的amap实现了setOnCameraChangeListener(this);方法那么就只需要aMap.moveCamera(CameraUpdateFactory.changeLatLng(latLng));但是这里我们不想在移动的时候再进行搜索,所以要在onCameraChangeFinish()执行搜索逻辑前进行判断,设置boolean值,需要的时候才进行搜索
5,地图截屏
地图截屏功能高德地图已经给出api,但是没有具体说我截出来的图片是什么样的图片,其实就是把mapview上所有的画面全部截取下来存到本地,一个方法就搞定了
aMap.getMapScreenShot(this);
6,发送图片信息到服务器或者其他页面
一切都准备就绪,我们这里有bitmap,但是不能讲bitmap传入其他页面,因为intent只能传递小的数据,如果传的数据过大就会没有反应,所以我们在地图截屏后,要保存当前存储的sd卡的位置,将位置和定位返回的PoiItem类传递给其他页面,如果是发送服务器,可能只需要截屏的位置和经纬度,方便点击下次进入地图定位.
7,获取展示
这个就非常简单了,使用任何viewgroup包括住一个textview和imageview,然后settext和setimage就好了
到此高德地图集成完毕,下边献上完整demo,里边还有6.0请求权限逻辑
完整demo地址:http://download.csdn.net/detail/qq_36428697/9759293
作为安卓初学者,我想说的是,虽然我们前边牛人很多,但是谁说一定要做个什么都会的牛人,我觉得我要做的只是踏实的走出每一步,找到存在感,丰富自己就好了,所以,适应压力,享受学习,快乐工作,加油,程序猿们;
高德地图实现仿qq,微信发送位置功能实现逻辑相关推荐
- Android使用百度地图sdk,实现微信发送位置功能
1.效果如下: 2.主要代码 //拖动停止的时候,获取中心经纬度 mapView.map.setOnMapStatusChangeListener(object : BaiduMap.OnMapSta ...
- android开发百度地图坐标偏差,利用百度地图Android sdk高仿微信发送位置功能及遇到的问题...
接触了百度地图开发平台半个月了,这2天试着模仿了微信给好友发送位置功能,对百度地图的操作能力又上了一个台阶 我在实现这个功能的时候,遇到一些困难,可能也是别人将会遇到的困难,特在此列出 1.在微信发送 ...
- 腾讯地图仿微信发送位置功能
以下内容转载自面糊的文章<模仿微信发送位置功能> 作者:面糊 链接:https://www.jianshu.com/p/47b3ada2e36d 来源:简书 著作权归作者所有.商业转载请联 ...
- 腾讯位置服务仿微信发送位置功能
以下内容转载自面糊的文章<模仿微信发送位置功能> 作者:面糊 链接:https://www.jianshu.com/p/47b3ada2e36d 来源:简书 著作权归作者所有.商业转载请联 ...
- 腾讯位置服务教你轻松搞定微信发送位置功能
以下内容转载自面糊的文章<模仿微信发送位置功能> 作者:面糊 链接:https://www.jianshu.com/p/47b3ada2e36d 来源:简书 著作权归作者所有.商业转载请联 ...
- 腾讯位置服务模仿微信发送位置功能
以下内容转载自面糊的文章<模仿微信发送位置功能> 作者:面糊 链接:https://www.jianshu.com/p/47b3ada2e36d 来源:简书 著作权归作者所有.商业转载请联 ...
- 微信发定位服务器地址,腾讯位置服务教你轻松搞定微信发送位置功能
前言 微信的发送位置功能是一个十分方便的功能,他会定位用户当前所在地点,然后请求用户周边的POI,并且还可以通过拖动地图来获取其他的位置发送给对方,本Demo是结合腾讯地图SDK来实现类似的功能. 使 ...
- 利用百度地图Android sdk高仿微信发送位置功能
接触了百度地图开发平台半个月了,这2天试着模仿了微信给好友发送位置功能,对百度地图的操作能力又上了一个台阶 我在实现这个功能的时候,遇到一些困难,可能也是别人将会遇到的困难,特在此列出 1.在微 ...
- Android+SpringBoot+Vue+高德地图实现后台查看车辆实时位置功能
场景 通过给车辆的驾驶员的手机安装app,管理员在后台可以实时查看车辆的实时位置. 实现思路: app中集成高德地图,app启动登录后,定时地获取当前定位信息连同当前账号上传到服务器后台. 后台将获取 ...
最新文章
- Grails示例程序-导出Excel文档
- case when 多条件_3年前的设计如今被iPhone强推 PITAKA磁吸生态设计的前瞻性到底有多可怕?...
- RDLC 格式化文本内容
- SpringBoot的MyBatis generator 注解方式和xml方式 (四)
- Ubuntu16.04: 和 Windows-7 双系统启动顺序更改
- c语言divide error,Python numpy.corrcoef()RuntimeWarning:在true_divide中遇到无效值c / = stddev [:,None]...
- 哈佛大学推荐:让自己变幸福的20件小事(值得收藏)
- 萌新误入AI歧途怎么办?MIT博士小哥哥给你指条明路
- 视觉注意力的循环神经网络模型(Recurrent Models of Visual Attention)
- robotframework的测试登陆界面代码
- python里面pop代码什么意思_python里的pop是什么
- 服务器——SSL/TLS协议信息泄露漏洞(CVE-2016-2183)修复办法
- 对平稳马尔可夫链(stationary distribution of a Markov chain)的学习
- python整数和浮点数
- vue垂死挣扎系列(一)——vue-cli快速搭建
- 谷歌机器翻译Attention is All You Need
- Python基础知识(5)控制流程
- 傅里叶分析(基础介绍)
- 2019滴滴前端面试总结(一面)
- BZOJ1132: [POI2008]Tro
热门文章
- 创业起步阶段需要注意什么?
- Excel图表7——漏斗图
- 用EXCEL宏编写坐标转换
- ov5640帧率配置_玩《和平精英》为什么要开高帧数?90帧的游戏射速你体验过吗?...
- 1379690-01-3,3-Azido-D-alanine HCl结构式分享
- java 终端窗口是什么,java程序如何打开命令行窗口?java程序怎么运行?
- 论文 | 科研软件 —— Microsoft VisioPro 2019安装及注册教程
- 有python专业的世界大学_2020年QS计算机专业排名进入世界前50的,除了G5,还有这所大学!...
- 『实践』VirtualBox 5.1.18+Centos 6.8+hadoop 2.7.3搭建hadoop完全分布式集群及基于HDFS的网盘实现...
- Oracle--优化