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

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

 

一、申请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和添加相关权限
     
 
       
         
 
四、在项目调用百度地图项目功能,这篇文章就首先讲讲显示地图和定位的功能
 
  1. 首先在布局中添加百度地图控件
   

 

  

   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();
	}

}

  这样我们就完成了在自己的项目调用百度地图接口,显示地图以及实现定位的功能。 后期会持续介绍百度地图
  的使用,欢迎大家关注
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值