android百度地图获取定位信息吗,android使用百度地圖定位(獲取當前經緯度和地址信息)...

首先,當然是把需要用到的包導入到工程項目中。(沒有包的自己去百度API官網下載)

把 baidumapapi_v3_0_0.jar 和 locSDK_4.2.jar復制粘貼到項目的libs目錄下,

然后,在libs目錄下創建一個armeabi文件夾(有就不創建了),把libBaiduMapSDK_v3_0_0.so 和 liblocSDK4d.so賦值粘貼到armeabi目錄下。

導入之后的目錄結構如圖所示:

6d2fae94db849a83477fc2cc1c86b59d.jpe

右鍵剛才導入的jar包,單機Build Path -->Add To Build Path,兩個jar包都要添加

接下來就是AndroidManifest.xml的application節點下配置你申請的key:

android:name="com.baidu.lbsapi.API_KEY"

android:value="你申請的key" />

把這段代碼放到application節點下面。

配置好key之后,還需要配置另外一個服務

android:name="com.baidu.location.f"

android:enabled="true"

android:process=":remote" >

也是直接放到application節點下面,這是必須用到的。

然后把需要用到的權限加上去:

都配置好之后,就只剩寫代碼了!

代碼比較簡單,注釋也比較詳細,所以,直接上代碼了:

package com.example.baidumap_demo;

import android.app.Activity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import com.baidu.location.BDLocation;

import com.baidu.location.BDLocationListener;

import com.baidu.location.LocationClient;

import com.baidu.location.LocationClientOption;

import com.baidu.location.LocationClientOption.LocationMode;

public class MainActivity extends Activity {

private final String TAG = "MainActivity";

private LocationClient mLocationClient;

private BDLocationListener mBDLocationListener;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

// 聲明LocationClient類

mLocationClient = new LocationClient(getApplicationContext());

mBDLocationListener = new MyBDLocationListener();

// 注冊監聽

mLocationClient.registerLocationListener(mBDLocationListener);

}

/** 獲得所在位置經緯度及詳細地址 */

public void getLocation(View view) {

// 聲明定位參數

LocationClientOption option = new LocationClientOption();

option.setLocationMode(LocationMode.Hight_Accuracy);// 設置定位模式 高精度

option.setCoorType("bd09ll");// 設置返回定位結果是百度經緯度 默認gcj02

option.setScanSpan(5000);// 設置發起定位請求的時間間隔 單位ms

option.setIsNeedAddress(true);// 設置定位結果包含地址信息

option.setNeedDeviceDirect(true);// 設置定位結果包含手機機頭 的方向

// 設置定位參數

mLocationClient.setLocOption(option);

// 啟動定位

mLocationClient.start();

}

@Override

protected void onDestroy() {

// TODO Auto-generated method stub

super.onDestroy();

// 取消監聽函數

if (mLocationClient != null) {

mLocationClient.unRegisterLocationListener(mBDLocationListener);

}

}

private class MyBDLocationListener implements BDLocationListener {

@Override

public void onReceiveLocation(BDLocation location) {

// 非空判斷

if (location != null) {

// 根據BDLocation 對象獲得經緯度以及詳細地址信息

double latitude = location.getLatitude();

double longitude = location.getLongitude();

String address = location.getAddrStr();

Log.i(TAG, "address:" + address + " latitude:" + latitude

+ " longitude:" + longitude + "---");

if (mLocationClient.isStarted()) {

// 獲得位置之后停止定位

mLocationClient.stop();

}

}

}

}

}

主要操作是在onReceiveLocation()方法里面。下面是Logcat控制台輸出的定位地址信息。

63d63037436d2fd917f12fc0514c4242.jpe

activity_main.xml:

xmlns:tools="http://schemas.android.com/tools"

android:layout_width="match_parent"

android:layout_height="match_parent" >

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:onClick="getLocation"

android:text="定位" />

大家可以根據自己的需求來定制自己的代碼!





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值