lmw
2025-01-14 d57f0210ac94ea2b3d4e18f7065d9b06d451ab5c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
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();
    }
 
}