package com.xianning.driver.base.gaode;
|
|
import android.graphics.Bitmap;
|
import android.graphics.Color;
|
import android.location.Location;
|
import android.os.Bundle;
|
import android.text.TextUtils;
|
import android.util.Log;
|
import android.view.View;
|
|
import androidx.annotation.NonNull;
|
import androidx.annotation.Nullable;
|
|
import com.xianning.driver.R;
|
import com.xianning.driver.base.Const;
|
import com.xianning.driver.base.MyBaseActivity;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import pub.devrel.easypermissions.EasyPermissions;
|
|
/**
|
* 提供高德地图基础功能
|
*
|
* @author 唐浩
|
*/
|
public abstract class BaseMapActivity extends MyBaseActivity{
|
private static final String TAG = "BaseMapActivity";
|
|
|
@Override
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
initMapView(savedInstanceState);
|
}
|
|
protected void initMapView(@Nullable Bundle savedInstanceState) {
|
|
}
|
|
|
|
|
/***
|
* 根据点 获取距离
|
* @param lat1
|
* @param lng1
|
* @param lat2
|
* @param lng2
|
* @return
|
*/
|
public double getTance(double lat1, double lng1, double lat2, double lng2) {
|
lat1 = lat1 * (Math.PI / 180);
|
lat2 = lat2 * (Math.PI / 180);
|
lng1 = lng1 * (Math.PI / 180);
|
lng2 = lng2 * (Math.PI / 180);
|
double ban = 6371.0;
|
double d = Math.acos(Math.sin(lat1) * Math.sin(lat2)
|
+ Math.cos(lat1) * Math.cos(lat2) * Math.cos(lng2 - lng1)) * ban * 1000;
|
return d;
|
}
|
|
|
/**
|
* 吧iew转化为bitmap
|
*
|
* @param view
|
* @return
|
*/
|
public static Bitmap convertViewToBitmap(View view) {
|
view.setDrawingCacheEnabled(true);
|
view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED),
|
View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));
|
view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());
|
view.buildDrawingCache();
|
Bitmap mCacheBitmap = view.getDrawingCache();
|
Bitmap mBitmap = Bitmap.createBitmap(mCacheBitmap);
|
return mBitmap;
|
}
|
|
|
|
|
// 获取权限
|
private boolean checkPermission(String... per) {
|
if (EasyPermissions.hasPermissions(this, per)) {
|
//已经打开权限
|
return true;
|
} else {
|
//没有打开相关权限、申请权限
|
EasyPermissions.requestPermissions(this, "需要打开您的相册、照相使用权限,才能使用此功能", 1, per);
|
return false;
|
}
|
}
|
|
//成功打开权限
|
@Override
|
public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) {
|
}
|
|
//用户未同意权限
|
@Override
|
public void onPermissionsDenied(int requestCode, @NonNull List<String> perms) {
|
|
}
|
|
|
@Override
|
public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
|
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this);
|
}
|
|
|
|
@Override
|
public void onPointerCaptureChanged(boolean hasCapture) {
|
|
}
|
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
}
|
|
}
|