百度定位工具类

百度定位工具类
直接贴上代码:

package com.utils;

import android.content.Context;
import com.baidu.location.BDLocation;
import com.baidu.location.BDLocationListener;
import com.baidu.location.LocationClient;
import com.baidu.location.LocationClientOption;

public class LocationUtils implements BDLocationListener {
    /* 定位客户端. */
    private LocationClient locClient = null;
    private Context mContext;
    /* 地址详细信息. */
    private String latitude;
    private String longitude;
    private String city;
    private String cityCode;
    private String country;
    private String addrStr;
    public LocationUtils(Context context) {
        this.mContext = context;
        locClient = new LocationClient(mContext);
        locClient.registerLocationListener(this);
        /* 设置定位条件. */
        LocationClientOption option = new LocationClientOption();
        option.setOpenGps(true);
        option.setIsNeedAddress(true);
        option.setCoorType("bd0911");
        option.setScanSpan(1000);
        option.setPriority(LocationClientOption.NetWorkFirst);
        locClient.setLocOption(option);
        locClient.start();
    }
    @Override
    public void onReceiveLocation(BDLocation location) {
        if (location == null) {
            return;
        }
        addrStr = location.getAddrStr();
        latitude = String.valueOf(location.getLatitude());
        longitude = String.valueOf(location.getLongitude());
        city = location.getCity();
        cityCode = location.getCityCode();
        country = location.getCountry();
    }

    public String getAddrStr() {
        return addrStr;
    }

    public LocationClient getLocClient() {
        return locClient;
    }

    public String getLatitude() {
        return latitude;
    }

    public String getLongitude() {
        return longitude;
    }

    public String getCity() {
        return city;
    }

    public String getCityCode() {
        return cityCode;
    }

    public String getCountry() {
        return country;
    }
}

需要用到的权限:

<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" />
    <uses-permission android:name="android.permission.BAIDU_LOCATION_SERVICE" />
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS" />
    <uses-permission android:name="android.permission.READ_LOGS" />

在Application中:

@Override
    public void onCreate() {
        super.onCreate();
        SDKInitializer.initialize(this);
    }

基本山就可以了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
package xgpushdemo.qt.an.appmap; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import com.baidu.location.BDLocation; import com.baidu.location.BDLocationListener; import com.baidu.location.LocationClient; import com.baidu.location.LocationClientOption; import com.baidu.mapapi.SDKInitializer; import com.baidu.mapapi.map.BaiduMap; import com.baidu.mapapi.map.MapView; import com.baidu.mapapi.map.MyLocationData; /*** * 百度定位、导航 * */ public class MainActivity extends Activity { private Button clickbtn; private TextView txt1; private TextView txt2; private MapView mMapView = null; private BaiduMap mBaiduMap=null; //定位相关申明 private LocationClient locationClient; //是否第一次定位 private Boolean isFirstloc=true; //是否开启 private Boolean isStart=true; private String la; private String lo; private String city; public BDLocationListener myListener=new BDLocationListener() { @Override public void onReceiveLocation(BDLocation bdLocation) { if(bdLocation==null||mMapView==null) return; MyLocationData myLocationData= new MyLocationData.Builder().accuracy(bdLocation.getRadius()).direction(100). latitude(bdLocation.getLatitude()).longitude(bdLocation.getLongitude()).build(); mBaiduMap.setMyLocationData(myLocationData); city= bdLocation.getCity(); la=bdLocation.getLatitude()+""; lo=bdLocation.getLongitude()+""; // if(isFirstloc){ // isFirstloc=false; // LatLng ll=new LatLng(bdLocation.getLatitude(),bdLocation.getLongitude()); // MapStatusUpdate mapStatusUpdate= MapStatusUpdateFactory.newLatLngZoom(ll,16); // mBaiduMap.animateMapStatus(mapStatusUpdate); // } } };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值