如何使用android使用调用so调用百度地图API

Android开发如何使用百度地图——Android学习网
&&& 关键字:android,百度地图,android百度地图开发,如何使用百度地图
&&& 我们在学习安卓开发的时候,其中最重要的一个功能就是使用百度地图实现定位,这样的功能已经在各安卓应用中屡见不鲜,那么我们要如何才能使用百度地图呢?百度地图是个什么呢?我们来看本文,本文主要讲述什么事百度地图,android开发如何使用百度地图,详细请看下文。
&&& 百度地图 Android SDK是一套基于Android 2.1(v1.3.5及以前版本支持android 1.5以上系统)及以上版本设备的应用程序接口。您可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。
1)下载百度地图移动版API(Android)开发包
&&&百度地图 Android SDK是一套基于Android 2.1(v1.3.5及以前版本支持android 1.5以上系统)及以上版本设备的应用程序接口。您可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,您可以轻松访问百度地图服务和数据,构建功能丰富、交互性强的地图类应用程序。要在Android应用中使用百度地图API,就需要在工程中引用百度地图API开发包,这个开发包包含两个文件:baidumapapi.jar和libBMapApiEngine.so。下载地址:
2)申请API Key
&&&百度地图Android SDK提供的所有服务是免费的,接口使用无次数限制,但是我们使用百度地图API之前必须要申请相应的API Key,然后才可使用百度地图Android SDK。
3)百度地图功能介绍
&& &地图展示:包括2D图、卫星图、3D图地图展示。
&&& 地图操作:提供平移、缩放、双指手势操作、底图旋转等地图相关操作。
&&& 自定义绘制:提供自定义绘制点、线、面基本几何图形的功能。
&&& 百度地图导航:提供调起百度地图Android版(v5.0及以上版本)导航功能。
&&& 地图搜索:提供根据关键字进行范围检索、城市检索和周边检索。且支持LBS云检索用户自有数据。
&&& 详情查询:提供餐饮类的POI的详细信息查看(Place详情)。
&&& 线路规划:提供公交、驾车和步行三种类型,多种方案(不含地铁、时间优先、最少换乘、最少步行)的线路规划。
&&& 地理编码:提供地址信息与坐标之间的相互转换。
&&& 位置标注:提供一个或多个POI位置标注,且支持用户自定义图标。
&&& 实时路况:提供城市实时交通路况信息图。
&&& 离线地图:提供离线地图功能,可节省用户流量。
&&& 定位:采用GPS、WIFI、基站、IP混合定位模式,请使用Android定位SDK获取定位信息,使用地图SDK定位图层进行位置展示。
4)创建安卓工程
&& 工程创建完成后,将baidumapapi.jar和libBMapApiEngine.so分别拷贝到工程的根目录及libs/armeabi目录下,并在工程属性-&Java Build Path-&Libraries中选择“Add JARs”,选定baidumapapi.jar,这样就可以在应用中使用百度地图API了。工程完整的目录结构如下图所示:
&&& 说明:百度地图移动版api支持Android 1.5及以上系统,因此我们创建的工程应基于Android SDK 1.5及以上。
5)在布局文件中添加地图控件(res/layout/main.xml)
&&1 &?xml&version="1.0"&encoding="utf-8"?&
&&2 &LinearLayout&xmlns:android="/apk/res/android"
&&3 &&&&android:orientation="vertical"
&&4 &&&&android:layout_width="fill_parent"
&&5 &&&&android:layout_height="fill_parent"&
&&6 &&&&&com.baidu.mapapi.MapView&android:id="@+id/map_View"
&&7 &&&&&&&&android:layout_width="fill_parent"
&&8 &&&&&&&&android:layout_height="fill_parent"
&&9 &&&&&&&&android:clickable="true"/&
&10 &/LinearLayout&
6)创建Activity继承com.baidu.mapapi.MapActivity
&&1 public&class&MainActivity&extends&MapActivity&{
&&2 &&&&private&BMapManager&mapM
&&3 &&&&private&MapView&mapV
&&4 &&&&private&MapController&mapC
&&5 &&&&@Override
&&6 &&&&public&void&onCreate(Bundle&savedInstanceState)&{
&&7 &&&&&&&&super.onCreate(savedInstanceState);
&&8 &&&&&&&&setContentView(R.layout.main);
&&9 &&&&&&&&//&初始化MapActivity
&10 &&&&&&&&mapManager&=&new&BMapManager(getApplication());
&11 &&&&&&&&//&init方法的第一个参数需填入申请的API&Key
&12 &&&&&&&&mapManager.init("285B415EBAB2A50ADA7F03C777C4",&null);
&13 &&&&&&&&super.initMapActivity(mapManager);
&14 &&&&&&&&mapView&=&(MapView)&findViewById(R.id.map_View);
&15 &&&&&&&&//&设置地图模式为交通地图
&16 &&&&&&&&mapView.setTraffic(true);
&17 &&&&&&&&//&设置启用内置的缩放控件
&18 &&&&&&&&mapView.setBuiltInZoomControls(true);
&19 &&&&&&&&//&用给定的经纬度构造一个GeoPoint(纬度,经度)
&20 &&&&&&&&GeoPoint&point&=&new&GeoPoint((int)&(47.118440&*&1E6),&(int)&(87.493147&*&1E6));
&21 &&&&&&&&//&创建标记maker
&22 &&&&&&&&Drawable&marker&=&this.getResources().getDrawable(R.drawable.iconmarka);
&23 &&&&&&&&//&为maker定义位置和边界
&24 &&&&&&&&marker.setBounds(0,&0,&marker.getIntrinsicWidth(),&marker.getIntrinsicHeight());
&25 &&&&&&&&//&取得地图控制器对象,用于控制MapView
&26 &&&&&&&&mapController&=&mapView.getController();
&27 &&&&&&&&//&设置地图的中心
&28 &&&&&&&&mapController.setCenter(point);
&29 &&&&&&&&//&设置地图默认的缩放级别
&30 &&&&&&&&mapController.setZoom(12);
&32 &&&&@Override
&33 &&&&protected&boolean&isRouteDisplayed()&{
&34 &&&&&&&&return&false;
&36 &&&&@Override
&37 &&&&protected&void&onDestroy()&{
&38 &&&&&&&&if&(mapManager&!=&null)&{
&39 &&&&&&&&&&&&mapManager.destroy();
&40 &&&&&&&&&&&&mapManager&=&null;
&41 &&&&&&&&}
&42 &&&&&&&&super.onDestroy();
&44 &&&&@Override
&45 &&&&protected&void&onPause()&{
&46 &&&&&&&&if&(mapManager&!=&null)&{
&47 &&&&&&&&&&&&mapManager.stop();
&48 &&&&&&&&}
&49 &&&&&&&&super.onPause();
&51 &&&&@Override
&52 &&&&protected&void&onResume()&{
&53 &&&&&&&&if&(mapManager&!=&null)&{
&54 &&&&&&&&&&&&mapManager.start();
&55 &&&&&&&&}
&56 &&&&&&&&super.onResume();
7)在AndroidManifest.xml中配置
&&1 &?xml&version="1.0"&encoding="utf-8"?&
&&2 &manifest&xmlns:android="/apk/res/android"
&&3 &&&&&&package="com.liufeng.baidumap"
&&4 &&&&&&android:versionCode="1"
&&5 &&&&&&android:versionName="1.0"&
&&6 &&&&&application&android:icon="@drawable/icon"&android:label="@string/app_name"&
&&7 &&&&&&&&&activity&android:name=".MainActivity"&android:label="@string/app_name"&
&&8 &&&&&&&&&&&&&intent-filter&
&&9 &&&&&&&&&&&&&&&&&action&android:name="android.intent.action.MAIN"&/&
&10 &&&&&&&&&&&&&&&&&category&android:name="android.intent.category.LAUNCHER"&/&
&11 &&&&&&&&&&&&&/intent-filter&
&12 &&&&&&&&&/activity&
&13 &&&&&/application&
&14 &&&&&uses-sdk&android:minSdkVersion="4"&/&
&15 &&&&&uses-permission&android:name="android.permission.ACCESS_NETWORK_STATE"&/&
&16 &&&&&uses-permission&android:name="android.permission.ACCESS_FINE_LOCATION"&/&
&17 &&&&&uses-permission&android:name="android.permission.INTERNET"&/&
&18 &&&&&uses-permission&android:name="android.permission.WRITE_EXTERNAL_STORAGE"&/&
&19 &&&&&uses-permission&android:name="android.permission.ACCESS_WIFI_STATE"&/&
&20 &&&&&uses-permission&android:name="android.permission.CHANGE_WIFI_STATE"&/&
&21 &&&&&uses-permission&android:name="android.permission.READ_PHONE_STATE"&/&
&22 &/manifest&&
&&& 本文以代码形式简单的介绍了如何使用百度地图,本文只是简单的展示了如何使用百度地图(交通地图),并将一个指定的点(根据经纬度确定)展示在手机屏幕的中心。如果在实际开发中设计百度地图,那么肯定不会这么简单,百度地图API提供了非常丰富的功能接口,在实际开发中需要哪个我们就使用哪个,这些api都需要我们一起去研究学习。
本文为Android开发学习网原创/整理,未经允许不得转载,如需转载请联系:
读后点评 感谢支持
&&&&本站安卓版APP正式上线,欢迎下载
本站提供的android教程仅用于android培训,对任何法律问题及风险不承担任何责任 本站部分内容来自网络,如有侵权,请联系本站
广告/友情链接请联系:QQ: Email:
安卓版:&QQ群:1.获取当前地理位置:
Android中提供了一个LocationManager的类,用于管理地理位置。不能通过构造函数获取该类的实例,而是通过Context的getSystemService():
LocationManager lm = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
该类中有几个比较常用的方法:
getLastKnownLocation(String provider)用于根据传入的provider获取一个Location对象,该对象存储了地理位置信息,包括经度、纬度、海拔、速度等。provider指明采用何种方式获取地理位置信息,在LocationManager中定义了几个字符串常量,用于指定地理位置信息的提供者:
NETWORK_PROVIDER:采用网络的方式获取
GPS_PROVIDER:采用GPS获取
PASSIVE_PROVIDER:被动定位方式,当其他应用使用定位更新了定位信息,系统会保存下来,该应用接收到消息后直接读取就可以了
注意:在使用真机测试时,一定要走到室外。因为常用的定位方式是GPS或者NETWORK,但是在室内这两个基本没起作用,我刚开始还以为是代码的问题,后来走出去测试才发现代码没有问题。
获取地理位置信息之前,最好先查看下手机支持哪些定位方式,哪些是可用的,然后再选择一个可用的来定位:
getAllProviders()返回所有的地理位置提供者的所有字符串描述
getBestProvider()根据传入的评判准则,返回一个最佳的地理位置提供者的字符串描述,第二个参数设置为true,则返回所有可用中的最佳的;若为false则返回最佳的,不管是否可用。
getProviders()返回地理位置提供者的字符串描述,参数为true,则返回所有的可用的描述,false则返回所有的。
getProviders()根据传入的评判准则,及第二个参数标识是否可用,来返回地理位置提供者的字符串描述。
1 List&String& providers = lm.getProviders(true);
for(int i=0; i&providers.size();i++){
System.out.println(providers.get(i));
当前是GPS和PASSIVE方式可用:
1 List&String& providers = lm.getProviders(true);
String lp = null;
if(providers.contains(LocationManager.GPS_PROVIDER)){
lp = LocationManager.GPS_PROVIDER;
}else if(providers.contains(LocationManager.NETWORK_PROVIDER)){
lp = LocationManager.NETWORK_PROVIDER;
Toast.makeText(this, "当前没有获取地理位置的方式可用,请打开GPS", Toast.LENGTH_LONG).show();
21 Location loc = lm.getLastKnownLocation(lp);
获取了Location实例,就可以从中获取关心的地理信息了:
getLatitude():获取纬度信息,单位度
getLongitude():获取经度信息,单位度
getAltitude():获取海拔信息,单位米
getSpeed():获取速度信息,单位米/秒
getTime():获取时间信息,返回从到现在的毫秒数。
Toast.makeText(MainActivity.this, "纬度:"+location.getLatitude()
+",经度:"+location.getLongitude()+",速度:"+location.getSpeed()+"m/s,"
+"海拔:"+location.getAltitude()+"米", 0).show();
以上,只能获取一次地理位置信息,如何动态实时地获取地理位置信息呢?
这就要用到LocationManager的requestLocationUpdates()方法:
该方法有多重重载形式,这里只简单试用下这种重载形式,参数说明:
provider:指定获取地理位置的方式;
minTime:指定监听位置变化的时间间隔,单位毫秒;
minDistance:指定监听位置变化的最小距离间隔,单位米;
listener:指定监听器,设置不同事件的回调处理。
注意:注册了监听器之后,但应用退出时,应当将注册的监听器移除,可以选择在Activity的onDestroy()方法中,调用LocationManager的removeUpdates(listener)方法,来将requestLocationUpdates()注册的事件监听移除。
1 listener = new LocationListener() {
public void onStatusChanged(String provider, int status, Bundle extras) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "onStatusChanged", 0).show();
public void onProviderEnabled(String provider) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "onProviderEnabled", 0).show();
public void onProviderDisabled(String provider) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "onProviderDisabled", 0).show();
public void onLocationChanged(Location location) {
// TODO Auto-generated method stub
tv_lat.setText(location.getLatitude()+"");
tv_lng.setText(location.getLongitude()+"");
Toast.makeText(MainActivity.this, "纬度:"+location.getLatitude()
+",经度:"+location.getLongitude()+",速度:"+location.getSpeed()+"m/s,"
+"海拔:"+location.getAltitude()+"米", 0).show();
61 lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 5000, 1, listener);
每隔5秒监测下位置的变化情况,一旦距离变化超过1米,就会回调onLocationChanged()方法,并将新的Location实例作为参数传入该方法。
以上,就是简单的获取地理位置的方法,帮助文档中关于LocationManager还有其他一些可能也会用到的方法,如临近警告,测距等,在用到的时候可以再查阅。
2.百度地图控制器的简单使用,设置地图的旋转,缩放,及视角变化:
跟2.x版本不同,之前在控制器中直接就可以调用各个方法进行旋转、缩放等操作,新版的控制器类名为BaiduMap,这里要用到的是它的animateMapStatus()方法:
所有要执行的旋转、缩放等动作没有直接对应的方法,而是把这些地图状态变化的动作封装到MapStatusUpdate对象中,然后传递给BaiduMap的animateMapStatus()以动画的方式执行动作。
所以,这里的关键是获取MapStatusUpdate对象,封装要执行的动作。
但是,查看帮助文档中,MapStatusUpdate类没有任何实际的帮助信息&&
但是,有几个相关的类:MapStatus、MapStatus.Builder、MapStatusUpdateFactory。
首先看MapStatus:
有这么几个字段,用于存放地图状态信息,注意文档中说明zoom的取值范围为3-20,overlook的取值是-45-0。但是没有对应的设置方法,所以猜测应该在其内部类Builder中存在相关设置方法
MapStatus.Builder:
构造方法,第二个带参的构造应该会比较有用,要进行地图状态变化,肯定要有一个参照,是在当前状态基础之上进行旋转缩放等。
build()方法返回一个MapStatus对象,如同之前常用到的android中的Builder内部类一样,在进行完一连串的设置之后,最后调用该方法得到一个需要的MapStatus对象。
overlook()方法,设置地图视角,传入一个-45~0的float值
rotate()方法,设置逆时针旋转角度
target()方法,设置地图中心店
targetScreen()方法设置地图中心点在屏幕的坐标
zoom()方法,设置地图的缩放级别。
通过MapStatus.Builder就能获取一个MapStatus对象了,但是需要的却是MapStausUpdate对象。
继续看下一个类:
MapStatusUpdateFactory类:
MapStatusUpdate的工厂类,通过它可以获取到需要的MapStatusUpdate对象:
newMapStatus()方法,可以根据传入的MapStatus获取一个MapStatusUpdate对象;
zoomIn()方法:返回一个放大地图缩放级别的MapStatusUpdate对象
zoomOut()方法:返回一个缩小地图缩放级别的MapStatusUpdate对象
zoomTo()方法:返回一个到指定缩放级别的MapStatusUpdate对象
下面根据这几个类,试着进行地图的旋转、缩放、设置中心点及视角变化:
1)设置缩放级别:
修改布局文件,在MapView下方添加几个控件,用于控制地图缩放:
1 &LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/et_level"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:inputType="number"
android:hint="@string/et_hint"
android:id="@+id/btn_set"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="zoomTo"
android:text="@string/btn_set_text"
android:id="@+id/btn_in"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="zoomIn"
android:text="@string/btn_text_in"/&
android:id="@+id/btn_out"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="zoomOut"
android:text="@string/btn_out_text"
73 &/LinearLayout&
修改MainActivity.java添加按钮回调方法:
1 public class MainActivity extends Activity {
private static final String TAG = "MainActivity";
private EditText et_
private Button btn_set, btn_in, btn_
private MapV
private BaiduM
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
mv = (MapView) findViewById(R.id.mv);
et_level = (EditText) findViewById(R.id.et_level);
map.setOnMapLoadedCallback(new OnMapLoadedCallback() {
public void onMapLoaded() {
mv.setScaleControlPosition(new Point(20,20));
mv.setZoomControlsPosition(new Point(150,50));
public void zoomTo(View view){
String s_level = et_level.getText().toString();
float level = Float.parseFloat(s_level);
MapStatusUpdate zt = MapStatusUpdateFactory.zoomTo(level);
map.animateMapStatus(zt);
} catch (NumberFormatException e) {
Toast.makeText(this, "请输入正确的缩放级别", Toast.LENGTH_SHORT).show();
public void zoomIn(View view){
MapStatusUpdate zi = MapStatusUpdateFactory.zoomIn();
map.animateMapStatus(zi);
public void zoomOut(View view){
MapStatusUpdate zo = MapStatusUpdateFactory.zoomOut();
map.animateMapStatus(zo);
protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
mv.onResume();
protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
mv.onPause();
protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
mv.onDestroy();
运行效果:
2)设置地图中心点:
map.animateMapStatus(MapStatusUpdateFactory.newLatLng(new LatLng(30.757, 103.9339)));
运行结果:
3)旋转地图:
修改布局文件,添加一个旋转按钮:
android:id="@+id/btn_rot"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:onClick="rotate"
android:text="@string/btn_rot_text"
修改MainActivity.java,添加旋转按钮的回调:
1 public void rotate(View view){
float r = map.getMapStatus().
MapStatus ms = new MapStatus.Builder(map.getMapStatus()).rotate(r+30).build();
map.animateMapStatus(MapStatusUpdateFactory.newMapStatus(ms));
运行结果:
4)设置视角:
修改布局文件:
android:id="@+id/btn_up"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="overlook"
android:text="@string/btn_up_text"/&
android:id="@+id/btn_down"
android:layout_height="wrap_content"
android:layout_width="0dp"
android:layout_weight="1"
android:onClick="overlook"
android:text="@string/btn_down_text"
修改MainActivity.java:添加修改视角的按钮的回调:
1 public void overlook(View view){
float f = map.getMapStatus().
MapStatus ms = null;
if(view.getId() == R.id.btn_up){
ms = new MapStatus.Builder(map.getMapStatus()).overlook(f+10).build();
ms = new MapStatus.Builder(map.getMapStatus()).overlook(f-10).build();
map.animateMapStatus(MapStatusUpdateFactory.newMapStatus(ms));
运行结果:
阅读(...) 评论()一、到 百度地图开发平台下载SDK
1、点击自定义下载
2、下载自己想要的功能包我这里选了三个
3、获取密钥
  获取密钥之前我们要新建一个应用
  填写好相关的信息
二、 新建一个项目工程
1、 把下载好的百度sdk中的jar包拷贝到项目的libs目录下
2、在application中添加开发密钥
3、添加所需的权限
&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" /&
4、在布局xml文件中添加地图的控件和一个按钮控件;
&LinearLayout xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.baidumap.MainActivity" &
&com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true" /&
&/LinearLayout&
5、编写src文件
public class MainActivity extends Activity {
private MapView mMapView = null;
private BaiduMap mBaiduM
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
//初始化控件
initView();
private void initView() {
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
//获取百度地图
mBaiduMap = mMapView.getMap();
//普通地图
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
//开启交通图
mBaiduMap.setTrafficEnabled(true);
//卫星地图
//mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause();
三、运行项目
导出带签名文件的APK,签名文件的SHA1码要和创建百度地图应用时输入的SHA1码一致
更多的功能请看百度地图的官方文档
阅读(...) 评论()Android 调用百度地图API示例
作者:洒水閃人
字体:[ ] 类型:转载 时间:
在Android开发中有一个非常重要的应用就是实时定位,通过手机在手机地图上进行实时定位,定位当前手机的位置,这篇文章主要介绍了Android 调用百度地图API示例,有兴趣的可以了解一下。
Android 调用百度地图API
一、到 百度地图开发平台下载SDK
1、点击自定义下载
2、下载自己想要的功能包我这里选了三个
3、获取密钥
获取密钥之前我们要新建一个应用
填写好相关的信息
二、 新建一个项目工程
1、 把下载好的百度sdk中的jar包拷贝到项目的libs目录下
2、在application中添加开发密钥
3、添加所需的权限
&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" /&
4、在布局xml文件中添加地图的控件和一个按钮控件;
&LinearLayout xmlns:android="/apk/res/android"
xmlns:tools="/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context="com.example.baidumap.MainActivity" &
&com.baidu.mapapi.map.MapView
android:id="@+id/bmapView"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:clickable="true" /&
&/LinearLayout&
5、编写src文件
public class MainActivity extends Activity {
private MapView mMapView =
private BaiduMap mBaiduM
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//在使用SDK各组件之前初始化context信息,传入ApplicationContext
//注意该方法要再setContentView方法之前实现
SDKInitializer.initialize(getApplicationContext());
setContentView(R.layout.activity_main);
//初始化控件
initView();
private void initView() {
//获取地图控件引用
mMapView = (MapView) findViewById(R.id.bmapView);
//获取百度地图
mBaiduMap = mMapView.getMap();
//普通地图
mBaiduMap.setMapType(BaiduMap.MAP_TYPE_NORMAL);
//开启交通图
mBaiduMap.setTrafficEnabled(true);
//卫星地图
//mBaiduMap.setMapType(BaiduMap.MAP_TYPE_SATELLITE);
protected void onDestroy() {
super.onDestroy();
//在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
mMapView.onDestroy();
protected void onResume() {
super.onResume();
//在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
mMapView.onResume();
protected void onPause() {
super.onPause();
//在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
mMapView.onPause();
三、运行项目
导出带签名文件的APK,签名文件的SHA1码要和创建百度地图应用时输入的SHA1码一致
更多的功能请看百度地图的官方文档
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具

我要回帖

更多关于 r使用.call调用c函数 的文章

 

随机推荐