我选择百度地图是有原因的,它确实在使用上来说(当然除了那可怕的“推广”、“全家桶”),还是很不错的!所以导致我很喜欢谷歌地图
注意:由于谷歌对Eclipse的ADT停止更新以及百度地图API的原因,百度地图SDK3.7(不包含)以上版本不支持低版本的ADT(编译通过,但app闪退,提示无法初始化SDK,未找到该类),至于版本几,没测试。目前知道的是ADT23.7是支持。我现在的环境是ADT23.7、Android6.0
二、正文 1、先去百度地图API官网注册帐号并且申请API KEY百度地图开放平台
进入API控制台中心创建应用
发布版SHA1:是创建的android.keystore中的查询出来的,打了码的那玩意儿就是发布版SHA1,使用CMD进入该文件目录,键入
keytool -list -keystore debug.keystore开发版SHA1:在Eclipse>Window>Preferences>Android>Build,打了马赛克那玩意儿
包名:在AndroidManifest.xml文件中查看
创建成功后最后会得到这一串key
进入百度地图SDK中可以自定义下载开发包、示例代码和文档。
将libs jar包导入到项目中,还有so文件,把so文件放到armeabi文件夹,jar包放到libs文件夹,如下图所示:
2> 配置key及权限
打开AndroidManifest.xml文件,添加以下权限:
第一步,在主界面main.xml添加地图视图
android:name=”该类所在路径”
看以下图片中框框部分注释
官方这样说道“在使用SDK各组件之前初始化context信息,传入ApplicationContext。注意该方法要在再(有个错别字)setContentView方法之前实现”,我们知道,实现Application后,当应用程序启动时,它首先执行的是Application实现类的onCreate(Bundle saveInstanceState)方法,是在Activity实现类之前,所以适合进行初始化地图相关。
当然,你要是在Activity中也是可以的
public class MainActivity extends BaseActivity {// 地图相关private MapView mapView; // 地图控件@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);this.setContentView(R.layout.main);// 初始化this.init;}/*** 初始化*/private void init{// 初始化控件this.initControls;// 初始化地图this.initMap;}/*** 初始化控件*/private void initControls{// 获取地图视图this.mapView = (MapView) findViewById(R.id.bmapView);}/*** 初始化地图*/private void initMap{// 不显示百度地图LogomapView.removeViewAt(1);// 不显示地图上比例尺mapView.showScaleControl(false);// 不显示地图缩放控件(按钮控制栏)mapView.showZoomControls(false);// 获取百度地图对象baiduMap = mapView.getMap;baiduMap.setMyLocationEnabled(true);//