您的位置:首页 > 移动开发 > Android开发

Android 百度地图开发(一)如何调用百度地图接口和在项目中显示百度地图以及实现定位

2015-09-12 12:17 2161 查看
最近在公司实习的时候,研究了一下如何调用百度地图接口,具体如何在项目中配置才能在项目中使用百度地图,这篇文章就和大家一起研究研究。

一、申请API key

调用百度地图接口前,必须去申请一个百度地图API key。首先要注册一个百度开发者账号,然后在http://lbsyun.baidu.com/apiconsole/key/create输入相关应用名称、选择应用类型为Android
SDK、启用的服务、和安全码。



如何获取安全码呢?

1、首先获取你项目的签名:选中你的项目, 点击Windows-》Preferences-》Android-》Build



2、打开项目清单AndroidMainifest.xml,获取项目报名



3、最后,安全码:项目签名+;+项目包名

申请成功后,会看到相应的API key



二、下载百度地图API库
要在Android应用中使用百度地图API,就需要在工程中引用百度地图API开发包,下载地址http://developer.baidu.com/map/index.php?title=androidsdk/sdkandev-download,下载Android地图SDK

然后添加到项目中即可。



三、在项目清单AndroidMainifest.xml配置百度地图API key和添加相关权限







四、在项目调用百度地图项目功能,这篇文章就首先讲讲显示地图和定位的功能

首先在布局中添加百度地图控件





2、在Activity中实现地图的显示以及定位。

package com.lif8.goutongbao;

import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;
import com.baidu.mapapi.map.BaiduMap;
import com.baidu.mapapi.map.MapStatusUpdate;
import com.baidu.mapapi.map.MapStatusUpdateFactory;
import com.baidu.mapapi.map.MapView;
import com.baidu.mapapi.map.MyLocationData;
import com.baidu.mapapi.model.LatLng;

import android.app.Activity;
import android.os.Bundle;

public class TransitRouteActivity extends Activity{

private final static String TAG = "TransitRouteActivity";
// 全局变量
private double myLongitude; // 经度
private double myLatitude; // 纬度
boolean isFirstLoc = true;// 是否首次定位
public MyLocationListenner myListener = new MyLocationListenner();

MapView mMapView = null; // 地图View
BaiduMap mBaidumap = null;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
                SDKInitializer.initialize(getApplicationContext());
                setContentView(R.layout.transit_route_main);

// 初始化地图
mMapView = (MapView) findViewById(R.id.map);
mBaidumap = mMapView.getMap();
// 开启定位图层
mBaidumap.setMyLocationEnabled(true);

// TODO 定位功能
// 定位初始化
LocationClient mLocClient = new LocationClient(this);
mLocClient.registerLocationListener(myListener);
LocationClientOption option = new LocationClientOption();
option.setOpenGps(true);// 打开gps
option.setCoorType("bd09ll"); // 设置坐标类型
option.setScanSpan(1000);
//
option.setIsNeedAddress(true);
mLocClient.setLocOption(option);
mLocClient.start();

}

// TODO 定位相关
/**
* 定位SDK监听函数
*/
public class MyLocationListenner implements BDLocationListener {

@Override
public void onReceiveLocation(BDLocation location) {
// 取经纬度
myLatitude = location.getLatitude();
myLongitude = location.getLongitude();

// map view 销毁后不在处理新接收的位置
if (location == null || mMapView == null)
return;
MyLocationData locData = new MyLocationData.Builder()
.accuracy(location.getRadius())
// 此处设置开发者获取到的方向信息,顺时针0-360
.direction(100).latitude(location.getLatitude())
.longitude(location.getLongitude()).build();
if (locData != null && mBaidumap != null)
mBaidumap.setMyLocationData(locData);
if (isFirstLoc) {
isFirstLoc = false;
LatLng ll = new LatLng(location.getLatitude(),
location.getLongitude());
MapStatusUpdate u = MapStatusUpdateFactory.newLatLng(ll);
mBaidumap.animateMapStatus(u);
}

}

public void onReceivePoi(BDLocation poiLocation) {
}
}

protected void onPause() {
mMapView.onPause();
super.onPause();
}

@Override
protected void onResume() {
mMapView.onResume();
super.onResume();
}

@Override
protected void onDestroy() {
mMapView.onDestroy();
if (mBaidumap != null)
mBaidumap = null;
super.onDestroy();
}

}


这样我们就完成了在自己的项目调用百度地图接口,显示地图以及实现定位的功能。后期会持续介绍百度地图
的使用,欢迎大家关注
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: