高德地图初体验

来源:互联网 发布:百度联盟和淘宝联盟 编辑:程序博客网 时间:2024/05/12 06:19
因为个人的一些原因,兜兜转转了几个月的时间都没有取学习新的技术和一些比较新的东西,最近因为公司这边需要一些地图上的操作,做为一个初学者以前并没有实际上在app上使用第三方的地图框架,所以这几天开始学习了一些高德地图的简单功能.
第一步:
想要使用高德地图,需要去他们的开发平台上注册一个开发者账号,这个超级简单的,

给出高德地图的开发者平台官网

http://lbs.amap.com/

然后注册,获取那个AppKey就可以了:

第二步:
创建一个本地的应用,设置为和刚才注册应用的包名一样

包名必须要一样,要不然不能成功使用高德sdk里面的功能

第三步:
下载高德地图官网的Demo
http://lbs.amap.com/api/android-sdk/download/

我使用的是3D版,解压缩之后

然后进入Demo里面的AndroidStudio版,把libs下的jar包全部都拷贝进你自己项目的libs目录下
然后在你的应用main下面创建一个包,包名为jniLibs,然后把libs下的so文件全部拷贝进去该目录中

接下来把所有的jar包都添加依赖到工程中即可,然后在添加权限
<uses-permissionandroid:name="android.permission.INTERNET"/>
<uses-permissionandroid:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permissionandroid:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permissionandroid:name="android.permission.ACCESS_WIFI_STATE"/>
<uses-permissionandroid:name="android.permission.READ_PHONE_STATE"/>
<uses-permissionandroid:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permissionandroid:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permissionandroid:name="android.permission.ACCESS_LOCATION_EXTRA_COMMANDS"/>
<uses-permissionandroid:name="android.permission.CHANGE_WIFI_STATE"/>
<uses-permissionandroid:name="android.permission.ACCESS_MOCK_LOCATION"/>
然后添加你的刚才申请到的appKey, 在你的Applicaation的节点下,添加以下代码,然后在value里面换成你的ApppKey
<meta-data
android:name="com.amap.api.v2.apikey"
android:value="你的Key"/>
最后千万不要忘了注册一个 Service,这个我在看文档的时候看漏了,研究了半天,真的坑..
<serviceandroid:name="com.amap.api.location.APSService"/>
以上就是配置环境的所有的操作了,接下来你就可以使用高德地图的SDK了

接下来的就说说我使用到的几个功能点:
1.显示地图
这个超级容易的,你只需要在你的xml文件里面写上地图的控件就可以了

然后在Activity中findviewbyId获取这个控件的对象,最后在通过onCreate方法进行地图展示就可以了
mapView.onCreate(savedInstanceState);
这样就可以在手机上显示地图了

2.定位
定位在高德的技术文档那里已经介绍的很详细了,然后在这里介绍一下第一次定位定位蓝点显示在地图中央,然后以后连续定位胆是定位蓝点不需要显示在地图的中央(高德的好多种状态好像是没有这种,反正我是不知道),所以我自己想了一种方法,
显示定位蓝点,并选择模式为定位一次,定位蓝点出现在地图中央

然后通过这个监听位置的变化,就是每次间听到位置都会走这个方法,

在这个方法进行一次判断,第一次获取之后,然后就在定位的方式改变,变为连续定位,且定位蓝点不会显示在地图的中央

这样就实现了第一次定位会使定位到的定位蓝点显示到地图中央,显示当前的位置,然后后面滑动地图没有什么影响。