如何调用百度地图API

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何调用百度地图API相关的知识,希望对你有一定的参考价值。

参考技术A

如何调用百度地图API

1)下载百度地图移动版API(android)开发包
要在Android应用中使用百度地图API,就需要在工程中引用百度地图API开发包,这个开发包包含两个文件:baidumapapi.jar和libBMapApiEngine.so。
2)申请API Key 和使用Google map api一样,在使用百度地图API之前也需要获取相应的API Key。百度地图API Key与你的百度账户相关联,因此您必须先有百度帐户,才能获得API
Key;并且,该Key与您引用API的程序名称有关。
百度API Key的申请要比Google的简单多了,其实只要你有百度帐号,应该不超过30秒就能完成API Key的申请。
3)创建一个Android工程
这里需要强调一点:百度地图移动版api支持Android 1.5及以上系统,因此我们创建的工程应基于Android SDK 1.5及以上。 工程创建完成后,将baidumapapi.jar和libBMapApiEngine.so分别拷贝到工程的根目录及libs/armeabi目录下,并在工程属性->Java Build Path->Libraries中选择“Add JARs”,选定baidumapapi.jar,这样就可以在应用中使用百度地图API了。工程完整的目录结构如下图所示:
4)在布局文件中添加地图控件(res/layout/main.xml)
5)创建Activity继承.baidu.mapapi.MapActivity

package .liufeng.baidumap;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import .baidu.mapapi.BMapManager;
import .baidu.mapapi.GeoPoint;
import .baidu.mapapi.MapActivity;
import .baidu.mapapi.MapController;
import .baidu.mapapi.MapView;
public class MainActivity extends MapActivity
private BMapManager mapManager;
private MapView mapView;
private MapController mapController;
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
初始化MapActivity
mapManager = new BMapManager(getApplication());
init方法的第一个参数需填入申请的API Key
mapManager.init("285B415EBAB2A92293E85502150ADA7F03C777C4", null);
super.initMapActivity(mapManager);
mapView = (MapView) findViewById(R.id.map_View);
设置地图模式为交通地图
mapView.setTraffic(true);
设置启用内置的缩放控件
mapView.setBuiltInZoomControls(true);
用给定的经纬度构造一个GeoPoint(纬度,经度)
GeoPoint point = new GeoPoint((int) (47.118440 * 1E6), (int) (87.493147 * 1E6));
创建标记maker
Drawable marker = this.getResources().getDrawable(R.drawable.iconmarka);
为maker定义位置和边界
marker.setBounds(0, 0, marker.getIntrinsicWidth(), marker.getIntrinsicHeight());
取得地图控制器对象,用于控制MapView
mapController = mapView.getController();
设置地图的中心
mapController.setCenter(point);
设置地图默认的缩放级别
mapController.setZoom(12);

@Override
protected boolean isRouteDisplayed()
return false;

@Override
protected void onDestroy()
if (mapManager != null)
mapManager.destroy();
mapManager = null;

super.onDestroy();

@Override
protected void onPause()
if (mapManager != null)
mapManager.s();

super.onPause();

@Override
protected void onResume()
if (mapManager != null)
mapManager.start();

super.onResume();


6)在AndroidManifest.xml中配置

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="
package=".liufeng.baidumap"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".MainActivity" android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<uses-sdk android:minSdkVersion="4" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
<uses-permission android:name="android.permission.READ_PHONE_STATE" />
</manifest>
7)运行结果

方法/步骤
1
在百度搜索框输入“百度地图api”查找到百度地图api的网站。如下图:
2
进入到上图的百度地图api首页。如下图:
3
把网页滚动到下面可以看见“申请密钥”功能,如下图:
4
点击“申请密钥”按钮,进入登陆界面。没有百度帐号则注册一个。注册后继续跳到登录界面。如下图:
5
成功登录则进入后台管理界面。如下图:
6
点击创建应用,则跳到创建应用界面。如下图:
7
填写好信息后。点击确认按钮则生成生成一个密钥。界面会调转到列表管理页面。访问应用(AK)这一列的值就是你的密钥。如下图:
8
接下来就可以在网页上调用了。如下图:
9
接下来是不是想写个简单的调用地图功能呢?调用地图api的demo,百度地图给我们提供很多demo。

如何获取百度地图API的密钥以及调用百度地图API

1.登录百度账号
访问API控制台页面,若您未登录百度账号,将会进入百度账号登录页面,如下e799bee5baa6e4b893e5b19e31333363356562图:

2.登陆API控制台
登录会跳转到API控制台服务,具体如下图:

3.创建应用
点击"创建应用",进入创建AK页面,输入应用名称,将应用类型改为:“Android SDK”:

4.配置应用
在应用类型选为“Android SDK”后,需要配置应用的安全码,如下图所示:

5.获取安全码
安全码的组成规则为:Android签名证书的SHA1值+包名,例如:

SHA1:BB:0D:AC:74:D3:21:E1:43:67:71:9B:62:91:AF:A1:66:6E:44:5D:75

包名:com.baidumap.demo

Android应用获取包名(packagename),根据开发工具不同,获取位置有所不同:
1、使用 Eclipse 开发
包名是Android应用程序本身在AndroidManifest.xml 中定义的名称,例如:

2、使用 Android Studio 开发
包名需要在文件build.gradle中查询 applictionId,例如:

Android签名证书的SHA1值获取方式有两种:
第一种方法:使用keytool
第1步:运行进入控制台

第2步:定位到.android文件夹下,输入cd .android

第3步:输入keytool -list -v -keystore debug.keystore,会得到三种指纹证书,选取SHA1类型的证书(密钥口令是android),例如:
其中keytool为jdk自带工具;keystorefile为Android 签名证书文件

第二种方法:在Eclipse中,在adt 22中直接查看
如果使用adt 22,可以在Eclipse中直接查看:windows -> preferance -> android -> build。 如下图示:

其中“SHA1 fingerprint”值即为Android签名证书的SHA1值。
6.成功创建AK
在输入安全码后,点击“确定”完成应用的配置工作,您将会得到一个创建的AK,请妥善保管您所申请的AK。到这您就可以使用新AK来完成您的开发工作了。

以上是关于如何调用百度地图API的主要内容,如果未能解决你的问题,请参考以下文章

如何在网页中调用百度地图api

如何调用百度地图API

如何调用百度地图API

如何获取百度地图API的密钥以及调用百度地图API

百度地图API快速调用,一键生成百度地图

如何调用百度地图API实现手机自动定位