官方文档:
http://wiki.lbsyun.baidu.com/cms/androidsdk/doc/v4_0_0/index.html
由于公司需要地图业务,因此学习了一些百度地图SDK,个人感觉上手容易但是完善的学习,还是比较困难的:
1:API不断更改,但有些官方文档并不会改,有时候出现问题摸不着头难
2:官方论坛活跃人太少,即使提出问题,不见得会有人回答,而且百度的工程师,也不会很快回答你的问题,甚至干脆不回答问题。(目前情况是这样的,不是我在这里乱讲)
3:QQ群有很多,但回答问题的寥寥无几,为此,我在学习的时候一次加了8个群,只有2个通过了验证。就算加入了群,也不见得有人会回答你的问题。
4.我确实在各大网站,群,论坛学习到了一些东西,帮助到了我。
5.鉴于此,我决定将我学习的这段历程分享给手足无措的新手。我希望用此方法回馈给大家。原谅我这里只介绍项目中用到的API,因为并没有太多精力去系统的学习全部,所以见谅。
此篇博客我将分多篇来讲述,我将会一边敲,一边讲解方法。确保手把手,某一环节不会出问题。
首先,你必须先阅读一下官网的基本介绍,在这里我就不介绍了。
http://lbsyun.baidu.com/index.php?title=androidsdk/guide/buildproject
这里介绍了开发指南,当然都是比较基本的东西。看完这里,你应该已经学会在AndroidStudio上配置环境了,(导入架包等)这里我们跳过去讲。
在Application节点下添加:
<!-- 百度地图key -->
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="这里将会替换key"/>
<!-- 百度定位权限 -->
<service
android:name="com.baidu.location.f"
android:enabled="true"
android:process=":remote"/>
在Minifest清单添加必要的权限
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.GET_TASKS" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
接下来,添加百度地图的View到布局
<com.baidu.mapapi.map.MapView
android:id="@+id/activity_main_mv_map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true" />
到此,还需要去官网申请key,个人把key理解为,百度地图是一款免费地图,而使用百度地图要使用一个唯一的key来标识某一软件,可能会用于百度分析流量,完善功能等用途。
你需要申请一个百度开发者账号http://lbsyun.baidu.com/apiconsole/key
申请key的官方教程http://lbsyun.baidu.com/index.php?title=androidsdk/guide/key
当然,在这里可能遇到的问题,我之前已经总结了,由于写博客不太多,因此格式可能不太好看,取其精华即可。
APPScode码校验失败>>>>
http://blog.csdn.net/u012552275/article/details/52459408
'keytool' 不是内部或外部命令,也不是可运行的程序
http://blog.csdn.net/u012552275/article/details/52457276
以上两个链接是我在刚接触百度地图的时候遇到的坑,都总结了一下,希望对大家有帮助。
申请好key以后,粘贴到
` <!-- 百度地图key -->
<meta-data
android:name="com.baidu.lbsapi.API_KEY"
android:value="这里将会替换key"/>`
接下来,打开对应的MainActivity
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
}
}
如果你的项目需要用到地图,我建议你将初始化放在Application中。
如果你是个新手,你需要考虑到Activity生命周期的维护,百度提供这样的接口,因此,我们根据官方文档,加入一下代码:
public class MainActivity extends Activity {
MapView mv_map = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
//获取地图控件引用
mv_map = (MapView) findViewById(R.id.activity_main_mv_map);
}
@Override
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mv_map.onDestroy();
}
@Override
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mv_map.onResume();
}
@Override
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mv_map.onPause();
}
}
至此,一个简单的只有展示功能的地图就这样成功的展示出来了。
在下一篇文章,我将介绍一些简单的功能、实现普通图、卫星图、交通图,热力图以及一些设置地图的样式的属性。