越来越多的App运用到了定位,导航的这些功能,其实实现一个自己的百度地图也是非常的简单,这篇博客将会教你简单的实现一个百度地图。看一下效果图:
第一步:要使用百度地图,必须要有百度地图的Key,要获得这个Key,需要你提供两个信息:SHA1和应用的包名。
*获取SHA1:
打开你的安卓ADB目录,一般在C盘的用户目录中以.android为文件名。
这个debug文件就是获取SHA1值的文件。接下来WIN+R,输入cmd。来到命令窗口界面:先输入cd .android来到这个文件夹中之后输入keytool -list -v -keystore debug.keystore
提示你输入密码,默认就是android。因为是命令窗口输入密码并不会显示输入数,输入好了回车,就可以看到我们的SHA1值了。
**获取包名,在我们安卓的配置文件中拷贝一下包名:
有了这两个值就可以申请到Key了。
第二步,将百度SDK集成到你的项目中。
将SDK下下来,可以看到这些文件:
最后一个是Jar文件,可以一键导入到库,其他是针对不同手机架构的.SO文件。将你的jar文件考到libs目录中,右键Add as Laribary。接着在main文件下新建JniLibs文件夹,将剩下的文件考到里面。
第三部,配置相关数据。
*现在配置清单文件中配置一个全局的参数:
第二个参数就是你的Key。这里就不给大家看了。
**在布局中:
<com.baidu.mapapi.map.TextureMapView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/bmapView" android:clickable="true"></com.baidu.mapapi.map.TextureMapView>
***在Activity中:
super.onCreate(savedInstanceState); //在使用SDK各组件之前初始化context信息,传入ApplicationContext //注意该方法要再setContentView方法之前实现 SDKInitializer.initialize(getApplicationContext()); setContentView(R.layout.activity_main); mMapView = (TextureMapView) findViewById(R.id.bmapView); baiduMap = mMapView.getMap(); msu = MapStatusUpdateFactory.newLatLng(new LatLng(30.5715920000,104.2077620000)); baiduMap.setMapStatus(msu); } @Override protected void onDestroy() { super.onDestroy(); //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理 mMapView.onDestroy(); unregisterReceiver(broadcastReceiver); } @Override protected void onResume() { super.onResume(); //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理 mMapView.onResume(); } @Override protected void onPause() { super.onPause(); //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理 mMapView.onPause(); }
注意这个View的生命周期要和Activity的生命周期一致。 SDKInitializer.initialize(getApplicationContext());这个方法要写在布局之前。推荐将它初始化在你的Application类的onCreate()方法中。我这里将坐标定位于我的学校。好了,一个简单的百度地图就实现了,这里先开个头。下一篇,我将介绍百度地图的一些重要用法,如果你觉得我写的不错,可以推荐一波哦~