市场研究机构发布最新数据显示:2016年第三季度,OPPO 在国内的市场份额为16.6%,高居榜首;vivo 以16.2%屈居次席。OPPO 和 vivo 同时超越华为的15%,一跃成为国内前两大智能手机厂商。
专业人士分析,OPPO 主要归功于 R9 的惊艳表现,R9 第三季度的销量已经超过了iPhone;而 vivo 主要依靠旗舰产品 X7 系列。他们产品的成功一定程度依赖于线下零售和良好的分销网络。如今,两大老牌手机厂商华为和小米都已被这两个靠综艺节目冠名而出名的手机厂商所超越。
本篇来自
阿敏其人
的投稿,跟大家分享了他是如何使用高德地图API实现定位功能的,希望对大家能够有所帮助。
阿敏其人
的博客地址:
http://www.jianshu.com/users/9ea3fea67109
我们先来看一下原版的微信发送位置。嗯,是发送位置,为什么不带发送实时位置,缺个另外一个真机。嗯,买一个16年出的google亲儿子,嗯,信仰充值先想想就好!
微信原版发送位置
接下来,再来看一下自己的程序gif:
嗯哼,看完啦。
从原版微信的gif当中,我们看到,大概可以分为这么几个行为:
1.
进入页面,产生两个标记点,周围地点列表。
2.
当我们点击周围点的列表,列表更新圆形绿色切换,这点没什么好说,需要注意的是:
3.
当我们手动拖动地图,这时候两点注意:
4.
点击搜索条关键字,按关键字进行搜索展示列表:
嗯,大概这么就是介么个样子,页面简单,写成文字还是看起来巴拉巴拉一大堆的。我们的demo大概也就是围绕着上面几点展开的。
-
当前微信版本:6.3.25
-
android高德地图版本:
16年9月份官网给的
-
测试机器:菊花荣耀7,Android6.0。
-
IDE: AS。
嗯,交代完毕。
我们这里涉及到三个Activity,分别是:
-
JwActivity:
得到定位,暂且叫做
A页面
-
ShareLocActivity:
发送位置页面 暂且叫做
B页面
-
SeaechTextAddressActivity:
搜索页面 暂且叫做
C页面
1. 发送位置,最基本我们需要获得定位
之前弄得工具类,客官您将就着用,首先是权限部分:
具体代码:
好啦,调用一下,奔着分享位置的页面去拉:
2. 逆地理编码,经纬度转地址
从这里开始,我们就跳到了B页面啦~
B页面
拿到
A页面
的经纬度之后,就开始心急火燎地想把经纬度转地址啦!这个时候
逆地理编码
出现了。
逆地理编码 大概是这么几步走的:
1、
得到
GeocodeSearch
的实例
2、
实现
GeocodeSearch.
OnGeocodeSearchListener
接口
3、
实现接口就必须实现实现一下两方法
onRegeocodeSearched
和
onGeocodeSearched
。
Geocode
是地理编码的意思,
Regeocode
就是逆地理编码的。
所以我们主要逆地理实现逻辑都在
onRegeocodeSearched
方法,
转成代码大概就是:
step1:
private GeocodeSearch geocoderSearch;
step2:
geocoderSearch = new GeocodeSearch(this);
step3:
返回码
1000
表示转换成功,拿到我们
RegeocodeResult
的形参我们可以得到地址。
3. 根据经纬度搜索周围poi信息
poi搜索分
搜索关键字
和
搜索经纬度
。
官网的demo提供了搜索关键字的,但是没有相应的按照经纬度的,其实做起来也差不多,但是一开始看文档找呀找,找不到,为什么不也示例一下。
其实使用方法也是比较类似的。
1.
首先我们要得到
private PoiSearch.Query
的实例。
2.
按需求设置搜索配置。
不管是按照关键字还是按照经纬度,我们都要利用
setOnPoiSearchListener
实现搜索 poi 的接口,然后实现
onPoiSearched
和
onPoiItemSearched
这两个方法,在关键
onPoiSearched
方法里面我们可以得到搜索的 poi 结果集合。
4. 在onPoiSearched方法里面操作数据,更新列表
这么一个流程跑下来,poi数据就拿到了。
5. 拖动地图