mirror of
https://github.com/ZCShou/GoGoGo.git
synced 2026-06-05 21:00:50 +08:00
update baidu map sdk to 7.5.0
This commit is contained in:
parent
63b80ab5b7
commit
aed7ab0821
@ -22,8 +22,8 @@ android {
|
||||
applicationId "com.zcshou.gogogo"
|
||||
minSdkVersion 27
|
||||
targetSdkVersion 32
|
||||
versionCode 192
|
||||
versionName '1.9.2' // 语义化版本 https://semver.org/lang/zh-CN/
|
||||
versionCode 1100
|
||||
versionName '1.10.0' // 语义化版本 https://semver.org/lang/zh-CN/
|
||||
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
|
||||
resConfigs 'zh', 'zh-rCN', 'en', 'en-rUS' // 仅保留中文和英文
|
||||
ndk {
|
||||
|
||||
Binary file not shown.
Binary file not shown.
BIN
app/libs/arm64-v8a/libBaiduMapSDK_base_v7_5_0.so
Normal file
BIN
app/libs/arm64-v8a/libBaiduMapSDK_base_v7_5_0.so
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
app/libs/arm64-v8a/liblocSDK8b.so
Normal file
BIN
app/libs/arm64-v8a/liblocSDK8b.so
Normal file
Binary file not shown.
@ -2,8 +2,11 @@ package com.zcshou.gogogo;
|
||||
|
||||
import android.app.Application;
|
||||
|
||||
import com.baidu.location.LocationClient;
|
||||
import com.baidu.mapapi.CoordType;
|
||||
import com.baidu.mapapi.SDKInitializer;
|
||||
|
||||
import com.baidu.mapapi.common.BaiduMapSDKException;
|
||||
import com.elvishew.xlog.LogConfiguration;
|
||||
import com.elvishew.xlog.LogLevel;
|
||||
import com.elvishew.xlog.XLog;
|
||||
@ -25,9 +28,19 @@ public class GoApplication extends Application {
|
||||
public void onCreate() {
|
||||
super.onCreate();
|
||||
|
||||
// 百度地图 SDK 初始化
|
||||
SDKInitializer.initialize(getApplicationContext());
|
||||
//
|
||||
// 百度地图 7.5 开始,要求必须同意隐私政策,默认为false
|
||||
SDKInitializer.setAgreePrivacy(this, true);
|
||||
// 百度定位 7.5 开始,要求必须同意隐私政策,默认为false(官方说可以统一为以上接口,但实际测试并不行,定位还是需要单独设置)
|
||||
LocationClient.setAgreePrivacy(true);
|
||||
|
||||
try {
|
||||
// 在使用 SDK 各组间之前初始化 context 信息,传入 ApplicationContext
|
||||
SDKInitializer.initialize(this);
|
||||
SDKInitializer.setCoordType(CoordType.BD09LL);
|
||||
} catch (BaiduMapSDKException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
initXlog();
|
||||
}
|
||||
|
||||
|
||||
@ -546,102 +546,106 @@ public class MainActivity extends BaseActivity
|
||||
|
||||
//开启地图的定位图层
|
||||
private void initBaiduLocation() {
|
||||
// 定位初始化
|
||||
mLocClient = new LocationClient(this);
|
||||
mLocClient.registerLocationListener(new BDAbstractLocationListener() {
|
||||
@Override
|
||||
public void onReceiveLocation(BDLocation bdLocation) {
|
||||
if (bdLocation == null || mMapView == null) {// mapview 销毁后不在处理新接收的位置
|
||||
return;
|
||||
}
|
||||
try {
|
||||
// 定位初始化
|
||||
mLocClient = new LocationClient(this);
|
||||
mLocClient.registerLocationListener(new BDAbstractLocationListener() {
|
||||
@Override
|
||||
public void onReceiveLocation(BDLocation bdLocation) {
|
||||
if (bdLocation == null || mMapView == null) {// mapview 销毁后不在处理新接收的位置
|
||||
return;
|
||||
}
|
||||
|
||||
mCurrentCity = bdLocation.getCity();
|
||||
mCurrentLat = bdLocation.getLatitude();
|
||||
mCurrentLon = bdLocation.getLongitude();
|
||||
MyLocationData locData = new MyLocationData.Builder()
|
||||
.accuracy(bdLocation.getRadius())
|
||||
.direction(mCurrentDirection)// 此处设置开发者获取到的方向信息,顺时针0-360
|
||||
.latitude(bdLocation.getLatitude())
|
||||
.longitude(bdLocation.getLongitude()).build();
|
||||
mBaiduMap.setMyLocationData(locData);
|
||||
MyLocationConfiguration configuration = new MyLocationConfiguration(MyLocationConfiguration.LocationMode.NORMAL, true, null);
|
||||
mBaiduMap.setMyLocationConfiguration(configuration);
|
||||
mCurrentCity = bdLocation.getCity();
|
||||
mCurrentLat = bdLocation.getLatitude();
|
||||
mCurrentLon = bdLocation.getLongitude();
|
||||
MyLocationData locData = new MyLocationData.Builder()
|
||||
.accuracy(bdLocation.getRadius())
|
||||
.direction(mCurrentDirection)// 此处设置开发者获取到的方向信息,顺时针0-360
|
||||
.latitude(bdLocation.getLatitude())
|
||||
.longitude(bdLocation.getLongitude()).build();
|
||||
mBaiduMap.setMyLocationData(locData);
|
||||
MyLocationConfiguration configuration = new MyLocationConfiguration(MyLocationConfiguration.LocationMode.NORMAL, true, null);
|
||||
mBaiduMap.setMyLocationConfiguration(configuration);
|
||||
|
||||
if (isMove) {
|
||||
isMove = false;
|
||||
mBaiduMap.clear();
|
||||
mMarkLatLngMap = null;
|
||||
if (isMove) {
|
||||
isMove = false;
|
||||
mBaiduMap.clear();
|
||||
mMarkLatLngMap = null;
|
||||
|
||||
if (GoUtils.isWifiEnabled(MainActivity.this)) {
|
||||
GoUtils.showDisableWifiDialog(MainActivity.this);
|
||||
if (GoUtils.isWifiEnabled(MainActivity.this)) {
|
||||
GoUtils.showDisableWifiDialog(MainActivity.this);
|
||||
}
|
||||
}
|
||||
|
||||
/* 如果出现错误,则需要重新请求位置 */
|
||||
int err = bdLocation.getLocType();
|
||||
if (err == BDLocation.TypeCriteriaException || err == BDLocation.TypeNetWorkException) {
|
||||
mLocClient.requestLocation(); /* 请求位置 */
|
||||
} else {
|
||||
if (isFirstLoc) {
|
||||
isFirstLoc = false;
|
||||
// 这里记录百度地图返回的位置
|
||||
mMarkLatLngMap = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude());
|
||||
MapStatus.Builder builder = new MapStatus.Builder();
|
||||
builder.target(mMarkLatLngMap).zoom(18.0f);
|
||||
mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
|
||||
|
||||
XLog.i("First Baidu LatLng: " + mMarkLatLngMap);
|
||||
|
||||
// 这里将百度地图位置转换为 GPS 坐标
|
||||
double[] latLng = MapUtils.bd2wgs(mMarkLatLngMap.longitude, mMarkLatLngMap.latitude);
|
||||
mCurLng = latLng[0];
|
||||
mCurLat = latLng[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/* 如果出现错误,则需要重新请求位置 */
|
||||
int err = bdLocation.getLocType();
|
||||
if (err == BDLocation.TypeCriteriaException || err == BDLocation.TypeNetWorkException) {
|
||||
mLocClient.requestLocation(); /* 请求位置 */
|
||||
} else {
|
||||
if (isFirstLoc) {
|
||||
isFirstLoc = false;
|
||||
// 这里记录百度地图返回的位置
|
||||
mMarkLatLngMap = new LatLng(bdLocation.getLatitude(), bdLocation.getLongitude());
|
||||
MapStatus.Builder builder = new MapStatus.Builder();
|
||||
builder.target(mMarkLatLngMap).zoom(18.0f);
|
||||
mBaiduMap.animateMapStatus(MapStatusUpdateFactory.newMapStatus(builder.build()));
|
||||
|
||||
XLog.i("First Baidu LatLng: " + mMarkLatLngMap);
|
||||
|
||||
// 这里将百度地图位置转换为 GPS 坐标
|
||||
double[] latLng = MapUtils.bd2wgs(mMarkLatLngMap.longitude, mMarkLatLngMap.latitude);
|
||||
mCurLng = latLng[0];
|
||||
mCurLat = latLng[1];
|
||||
}
|
||||
/**
|
||||
* 错误的状态码
|
||||
* <a>http://lbsyun.baidu.com/index.php?title=android-locsdk/guide/addition-func/error-code</a>
|
||||
* <p>
|
||||
* 回调定位诊断信息,开发者可以根据相关信息解决定位遇到的一些问题
|
||||
*
|
||||
* @param locType 当前定位类型
|
||||
* @param diagnosticType 诊断类型(1~9)
|
||||
* @param diagnosticMessage 具体的诊断信息释义
|
||||
*/
|
||||
public void onLocDiagnosticMessage(int locType, int diagnosticType, String diagnosticMessage) {
|
||||
XLog.i("Baidu ERROR: " + locType + "-" + diagnosticType + "-" + diagnosticMessage);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* 错误的状态码
|
||||
* <a>http://lbsyun.baidu.com/index.php?title=android-locsdk/guide/addition-func/error-code</a>
|
||||
* <p>
|
||||
* 回调定位诊断信息,开发者可以根据相关信息解决定位遇到的一些问题
|
||||
*
|
||||
* @param locType 当前定位类型
|
||||
* @param diagnosticType 诊断类型(1~9)
|
||||
* @param diagnosticMessage 具体的诊断信息释义
|
||||
*/
|
||||
public void onLocDiagnosticMessage(int locType, int diagnosticType, String diagnosticMessage) {
|
||||
XLog.i("Baidu ERROR: " + locType + "-" + diagnosticType + "-" + diagnosticMessage);
|
||||
}
|
||||
});
|
||||
LocationClientOption locationOption = new LocationClientOption();
|
||||
//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
|
||||
locationOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
|
||||
//可选,默认gcj02,设置返回的定位结果坐标系,如果配合百度地图使用,建议设置为bd09ll;
|
||||
locationOption.setCoorType("bd09ll");
|
||||
//可选,默认0,即仅定位一次,设置发起连续定位请求的间隔需要大于等于1000ms才是有效的
|
||||
locationOption.setScanSpan(1000);
|
||||
//可选,设置是否需要地址信息,默认不需要
|
||||
locationOption.setIsNeedAddress(true);
|
||||
//可选,设置是否需要设备方向结果
|
||||
locationOption.setNeedDeviceDirect(false);
|
||||
//可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果
|
||||
locationOption.setLocationNotify(true);
|
||||
//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
|
||||
locationOption.setIgnoreKillProcess(true);
|
||||
//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”
|
||||
locationOption.setIsNeedLocationDescribe(false);
|
||||
//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
|
||||
locationOption.setIsNeedLocationPoiList(false);
|
||||
//可选,默认false,设置是否收集CRASH信息,默认收集
|
||||
locationOption.SetIgnoreCacheException(true);
|
||||
//可选,默认false,设置是否开启Gps定位
|
||||
locationOption.setOpenGps(true);
|
||||
//可选,默认false,设置定位时是否需要海拔信息,默认不需要,除基础定位版本都可用
|
||||
locationOption.setIsNeedAltitude(false);
|
||||
//需将配置好的LocationClientOption对象,通过setLocOption方法传递给LocationClient对象使用
|
||||
mLocClient.setLocOption(locationOption);
|
||||
//开始定位
|
||||
mLocClient.start();
|
||||
});
|
||||
LocationClientOption locationOption = new LocationClientOption();
|
||||
//可选,默认高精度,设置定位模式,高精度,低功耗,仅设备
|
||||
locationOption.setLocationMode(LocationClientOption.LocationMode.Hight_Accuracy);
|
||||
//可选,默认gcj02,设置返回的定位结果坐标系,如果配合百度地图使用,建议设置为bd09ll;
|
||||
locationOption.setCoorType("bd09ll");
|
||||
//可选,默认0,即仅定位一次,设置发起连续定位请求的间隔需要大于等于1000ms才是有效的
|
||||
locationOption.setScanSpan(1000);
|
||||
//可选,设置是否需要地址信息,默认不需要
|
||||
locationOption.setIsNeedAddress(true);
|
||||
//可选,设置是否需要设备方向结果
|
||||
locationOption.setNeedDeviceDirect(false);
|
||||
//可选,默认false,设置是否当gps有效时按照1S1次频率输出GPS结果
|
||||
locationOption.setLocationNotify(true);
|
||||
//可选,默认true,定位SDK内部是一个SERVICE,并放到了独立进程,设置是否在stop的时候杀死这个进程,默认不杀死
|
||||
locationOption.setIgnoreKillProcess(true);
|
||||
//可选,默认false,设置是否需要位置语义化结果,可以在BDLocation.getLocationDescribe里得到,结果类似于“在北京天安门附近”
|
||||
locationOption.setIsNeedLocationDescribe(false);
|
||||
//可选,默认false,设置是否需要POI结果,可以在BDLocation.getPoiList里得到
|
||||
locationOption.setIsNeedLocationPoiList(false);
|
||||
//可选,默认false,设置是否收集CRASH信息,默认收集
|
||||
locationOption.SetIgnoreCacheException(true);
|
||||
//可选,默认false,设置是否开启Gps定位
|
||||
locationOption.setOpenGps(true);
|
||||
//可选,默认false,设置定位时是否需要海拔信息,默认不需要,除基础定位版本都可用
|
||||
locationOption.setIsNeedAltitude(false);
|
||||
//需将配置好的LocationClientOption对象,通过setLocOption方法传递给LocationClient对象使用
|
||||
mLocClient.setLocOption(locationOption);
|
||||
//开始定位
|
||||
mLocClient.start();
|
||||
} catch (Exception e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
//地图上各按键的监听
|
||||
|
||||
@ -36,7 +36,6 @@ public class WelcomeActivity extends AppCompatActivity {
|
||||
private static final int SDK_PERMISSION_REQUEST = 127;
|
||||
private static final ArrayList<String> ReqPermissions = new ArrayList<>();
|
||||
|
||||
|
||||
@Override
|
||||
protected void onCreate(Bundle savedInstanceState) {
|
||||
super.onCreate(savedInstanceState);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user