随着毕业季的来临,最近忙起来,不仅仅是学习和毕设方面,还有工作事宜以及同学聚会等等,博客搁置了好久都没有更新。今天公司让写一个基于高德地图的小demo考察一下最近学习状况,虽然简单,但是还是有一些值得注意和以后借用的地方的。本文主要分为需求、分析和实现三个部分来完成最终项目要求,在此之前,先上一下最终效果图:
一、需求:
这个练手的demo要求很简单:首先显示自身位置即定位,然后根据当前位置模拟显示附近的用户,接着点击用户图标可以弹出信息窗,看到该用户的简单个人信息,包含用户头像、昵称和介绍信息等,最后点击用户头像,底部弹出上拉式的view来显示用户的活跃信息(图文、视频等),类似动态墙。
二、分析:
近几年来,越来越多的应用和设备集成了电子地图相关功能,提高了应用的现实性,随着AR技术的推广和发展,应用更多的开始从虚拟性转入“现实性”或者两者相结合,增强了用户的体验度和活跃度,用户可以通过基于地图的功能查看自己附近动态,实时查看附近好友的状态等等,好了,话题扯多了,进入正题= =。
首先,定位功能比较简单,只要参考高德地图官方文档即可,上面讲解的很详细,传送站:http://lbs.amap.com/api/android-location-sdk/guide/android-location/getlocation;接着,模拟显示附近用户需要用到Amap中的Marker覆盖物模型,及效果图上的若干五角星;然后只要为Marker设置点击事件,并在里面添加弹出信息窗的相关方法即可,这里会在下一部分具体讲解;最后,点击信息窗中的用户头像能够弹出底部的view,并在上面显示该用户的最近分享图片,该功能实现的方式有很多,比如弹出菜单、自定义view、Dialog等等。
三、功能实现:
1. 模拟显示附近用户
思路:即在地图上添加覆盖物Marker,通过中心点设定一定的距离范围,让其显示出来。
实现方法:
/**
* 添加模拟测试的用户的点
*/
public void addMapPointData(AMap amap,AMapLocation amapLocation, LatLng center){
if(markers.size()==0){
BitmapDescriptor bitmapDescriptor= BitmapDescriptorFactory
.fromResource(R.mipmap.g7);
for(int i=0;i<10;i++){