app/libs/AMap3DMap_10.0.700_AMapNavi_10.0.700_AMapSearch_9.7.2_AMapLocation_6.4.5_20240508.jarBinary files differ
app/release/output.json
@@ -1 +1 @@ [{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":12,"versionName":"1.7","enabled":true,"outputFile":"xianning-1.7-2025-01-09.apk","fullName":"release","baseName":"release","dirName":""},"path":"xianning-1.7-2025-01-09.apk","properties":{}}] [{"outputType":{"type":"APK"},"apkData":{"type":"MAIN","splits":[],"versionCode":12,"versionName":"1.7","enabled":true,"outputFile":"xianning-1.7-2025-01-14.apk","fullName":"release","baseName":"release","dirName":""},"path":"xianning-1.7-2025-01-14.apk","properties":{}}] app/release/xianning-1.7-2025-01-14.apkBinary files differ
app/src/main/AndroidManifest.xml
@@ -140,11 +140,6 @@ </meta-data> <service android:name="com.baidu.location.f" android:enabled="true" android:process=":remote"/> <activity android:name="com.xianning.driver.base.gaode.gpsnav.GPSNaviActivity" /> <service android:name="com.amap.api.location.APSService" /> <activity android:name="com.xianning.driver.wxapi.WXEntryActivity" android:configChanges="keyboardHidden|orientation|screenSize" app/src/main/java/com/xianning/driver/base/MyApplication.kt
@@ -11,7 +11,6 @@ import cn.sinata.rxnetty.NettyClient import cn.sinata.xldutils.BaseApplication import cn.sinata.xldutils.utils.sysErr import com.amap.api.location.AMapLocation import com.baidu.location.BDLocation import com.baidu.mapapi.CoordType import com.baidu.mapapi.SDKInitializer app/src/main/java/com/xianning/driver/base/gaode/AMapKit.kt
@@ -7,10 +7,6 @@ import android.os.Looper import android.view.View import androidx.core.content.ContextCompat import com.amap.api.services.core.LatLonPoint import com.amap.api.services.route.* import com.amap.api.services.route.RouteSearch.DriveRouteQuery import com.amap.api.services.route.RouteSearch.FromAndTo import com.baidu.location.BDAbstractLocationListener import com.baidu.location.LocationClient import com.baidu.location.LocationClientOption @@ -179,79 +175,6 @@ return (num / 3600).toString() + ":" + ((num % 3600) / 60).toString() + ":" + (((num % 3600) % 60) % 60).toString() + "s" } return "" } fun initRouteLine( context: Context, start: LatLng, end: LatLng, onClick: (latLngs: MutableList<LatLng>, lineTance: Float, lineTime: Long) -> Unit ) { initRouteLine(context, start, end, null, onClick) } fun initRouteLine( context: Context, start: LatLng, end: LatLng, centerPoint: List<LatLonPoint>?, onClick: (latLngs: MutableList<LatLng>, lineTance: Float, lineTime: Long) -> Unit ) { var routeSearch = RouteSearch(context) val fromAndTo = FromAndTo( LatLonPoint(start.latitude, start.longitude), LatLonPoint(end.latitude, end.longitude) ) val query = DriveRouteQuery( fromAndTo, RouteSearch.DRIVING_SINGLE_SAVE_MONEY, centerPoint, null, "" ) routeSearch.calculateDriveRouteAsyn(query) routeSearch.setRouteSearchListener(object : RouteSearch.OnRouteSearchListener { override fun onDriveRouteSearched(p0: DriveRouteResult?, p1: Int) { if (p1 == 1000) { //获取规划路线成功,获取到的是了,路线坐标点的集合 val paths: List<DrivePath> = p0!!.paths var allDistance = 0f if (paths.isNotEmpty()) { val drivePath = paths[0] //创建存储坐标点的集合 val latLngs: MutableList<LatLng> = ArrayList() //遍历获取规划的所有路线坐标点 for (mDriveStep in drivePath.steps) { allDistance += mDriveStep.distance for (mLatLonPoint in mDriveStep.polyline) { latLngs.add( LatLng( mLatLonPoint.latitude, mLatLonPoint.longitude ) ) } } val lineTance = allDistance val lineTime = (drivePath.duration / 60) //lineTime 分钟 Handler(Looper.getMainLooper()).post { onClick(latLngs, lineTance, lineTime) } } } } override fun onBusRouteSearched(p0: BusRouteResult?, p1: Int) { } override fun onRideRouteSearched(p0: RideRouteResult?, p1: Int) { } override fun onWalkRouteSearched(p0: WalkRouteResult?, p1: Int) { } }) } /*** app/src/main/java/com/xianning/driver/base/gaode/BaseMapActivity.java
@@ -11,31 +11,6 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import com.amap.api.location.AMapLocation; import com.amap.api.location.AMapLocationClient; import com.amap.api.location.AMapLocationClientOption; import com.amap.api.location.AMapLocationListener; import com.amap.api.maps.AMap; import com.amap.api.maps.CameraUpdate; import com.amap.api.maps.CameraUpdateFactory; import com.amap.api.maps.LocationSource; import com.amap.api.maps.MapView; import com.amap.api.maps.UiSettings; import com.amap.api.maps.model.BitmapDescriptorFactory; import com.amap.api.maps.model.CameraPosition; import com.amap.api.maps.model.LatLng; import com.amap.api.maps.model.LatLngBounds; import com.amap.api.maps.model.Marker; import com.amap.api.maps.model.MarkerOptions; import com.amap.api.maps.model.MyLocationStyle; import com.amap.api.maps.model.Poi; import com.amap.api.maps.model.Polyline; import com.amap.api.maps.model.PolylineOptions; import com.amap.api.services.core.PoiItem; import com.amap.api.services.help.Inputtips; import com.amap.api.services.help.InputtipsQuery; import com.amap.api.services.poisearch.PoiResult; import com.amap.api.services.poisearch.PoiSearch; import com.xianning.driver.R; import com.xianning.driver.base.Const; import com.xianning.driver.base.MyBaseActivity; @@ -50,64 +25,8 @@ * * @author 唐浩 */ public abstract class BaseMapActivity extends MyBaseActivity implements AMap.OnMyLocationChangeListener , AMap.OnMapClickListener, AMap.OnMarkerClickListener, AMap.InfoWindowAdapter, AMap.OnPOIClickListener, PoiSearch.OnPoiSearchListener, EasyPermissions.PermissionCallbacks, LocationSource, AMapLocationListener { public abstract class BaseMapActivity extends MyBaseActivity{ private static final String TAG = "BaseMapActivity"; public AMap aMap = null; private MyLocationStyle mMyLocationStyle = null; public AMapLocationClient mlocationClient = null; //定位 public AMapLocationClientOption mLocationOption = null;//定位 public Bundle savedInstanceState;// private MapView mapView; public AMapLocation mAMapLocation;//实时定位的位置 /** * 初始化地图 */ public void initMap(Bundle savedInstanceState, MapView mapView) { this.savedInstanceState = savedInstanceState; this.mapView = mapView; if (checkPermission(Const.permissions_location_fine, Const.permissions_location_coarse, Const.permissions_write)) { init(savedInstanceState, mapView); initLocation(); } } public abstract boolean isShowBluePoint(); public void init(Bundle savedInstanceState, MapView mapView) { if (checkPermission(Const.permissions_location_fine, Const.permissions_location_coarse, Const.permissions_write)) { mapView.onCreate(savedInstanceState); aMap = mapView.getMap(); mMyLocationStyle = new MyLocationStyle(); mMyLocationStyle.interval(5000); mMyLocationStyle.myLocationType(MyLocationStyle.LOCATION_TYPE_LOCATION_ROTATE_NO_CENTER); mMyLocationStyle.myLocationIcon(BitmapDescriptorFactory.fromResource(R.mipmap.gps_point)); aMap.setMyLocationStyle(mMyLocationStyle); aMap.setInfoWindowAdapter(this); aMap.setMyLocationEnabled(isShowBluePoint()); aMap.setOnMyLocationChangeListener(this); aMap.setOnMapClickListener(this); aMap.setOnMarkerClickListener(this); // aMap.setLocationSource(this); aMap.setOnPOIClickListener(this); aMap.animateCamera(CameraUpdateFactory.zoomTo(aMap.getMaxZoomLevel() - 3)); // 设置为true表示显示定位层并可触发定位,false表示隐藏定位层并不可触发定位,默认是false aMap.setMyLocationEnabled(true); // 设置定位的类型为定位模式,有定位、跟随或地图根据面向方向旋转几种 aMap.setMyLocationType(AMap.LOCATION_TYPE_LOCATE); UiSettings uiSettings = aMap.getUiSettings(); uiSettings.setZoomControlsEnabled(false); } } public void init(Bundle savedInstanceState, MapView mapView, boolean b) { if (checkPermission(Const.permissions_location_fine, Const.permissions_location_coarse, Const.permissions_write)) { mapView.onCreate(savedInstanceState); aMap = mapView.getMap(); } } @Override @@ -120,77 +39,8 @@ } /** * 移动相机到某个位置 */ public void moveCamera(LatLng latlng) { CameraUpdate mCameraUpdate = CameraUpdateFactory.newCameraPosition( new CameraPosition(latlng, 16f, 0f, 0f)); aMap.animateCamera(mCameraUpdate); } public void moveCamera(LatLng startLatlng,LatLng endLatlng) { LatLngBounds bounds = new LatLngBounds(startLatlng, endLatlng); CameraUpdate mCameraUpdate = CameraUpdateFactory.newLatLngBounds(bounds, 250); aMap.animateCamera(mCameraUpdate); } /** * 添加marker点 */ public Marker addMarker(double mLat, double mLng, View view, String peopleId) { MarkerOptions options = getOption(mLat, mLng, view); Marker marker = aMap.addMarker(options); if (!TextUtils.isEmpty(peopleId)) { marker.setObject(peopleId); } return marker; } public MarkerOptions getOption(double mLat, double mLng, View view) { return new MarkerOptions().anchor(0.5f, 1) .position(new LatLng(mLat,mLng)) .icon(BitmapDescriptorFactory.fromBitmap(convertViewToBitmap(view))).draggable(true).setFlat(true); } /*** * * @param str * @param var1 */ public void searchSite(String str, Inputtips.InputtipsListener var1) { InputtipsQuery inputquery = new InputtipsQuery(str, ""); Inputtips inputTips = new Inputtips(this, inputquery); inputTips.setInputtipsListener(var1); inputTips.requestInputtipsAsyn(); } /** * 删除秒点外的所有marker */ public void deleteAllMarker() { for (int i = 0; i < aMap.getMapScreenMarkers().size(); i++) { Marker marker = aMap.getMapScreenMarkers().get(i); if (marker.getObject() != null && !marker.getObject().toString().equals("集合位置")) { Log.i(TAG, "deleteAllMarker: " + i); marker.remove(); } } } /*** * 更具tag删除marker * @param tag */ public void deleteMarker(String tag) { for (int i = 0; i < aMap.getMapScreenMarkers().size(); i++) { Marker marker = aMap.getMapScreenMarkers().get(i); if (marker.getObject() != null && marker.getObject().toString().equals(tag)) { marker.remove(); } } } /*** * 根据点 获取距离 @@ -209,47 +59,6 @@ double d = Math.acos(Math.sin(lat1) * Math.sin(lat2) + Math.cos(lat1) * Math.cos(lat2) * Math.cos(lng2 - lng1)) * ban * 1000; return d; } /*** * 根据id获取marker * @param id * @return */ public Marker getMarker(String id) { for (int i = 0; i < aMap.getMapScreenMarkers().size(); i++) { Marker marker = aMap.getMapScreenMarkers().get(i); if (marker.getObject() != null && marker.getObject().toString().equals(id)) { return marker; } } return null; } /*** * marker点击事件 * @param marker * @return */ @Override public boolean onMarkerClick(Marker marker) { return false; } /*** * 显示marker窗口 * @param marker * @return */ @Override public View getInfoContents(Marker marker) { return null; } @Override public View getInfoWindow(Marker marker) { return null; } @@ -273,34 +82,6 @@ @Override public void onMapClick(LatLng latLng) { Log.i(TAG, "onMapClick: "); } @Override public void onMyLocationChange(Location location) { Log.i(TAG, "onMyLocationChange: "); } @Override public void onPOIClick(Poi poi) { Log.i(TAG, "onPOIClick: "); } /*** * search 搜索结果 */ @Override public void onPoiSearched(PoiResult poiResult, int i) { Log.i(TAG, "onPoiSearched: "); } @Override public void onPoiItemSearched(PoiItem poiItem, int i) { Log.i(TAG, "onPoiItemSearched: "); } // 获取权限 private boolean checkPermission(String... per) { if (EasyPermissions.hasPermissions(this, per)) { @@ -316,7 +97,6 @@ //成功打开权限 @Override public void onPermissionsGranted(int requestCode, @NonNull List<String> perms) { init(savedInstanceState, mapView); } //用户未同意权限 @@ -332,57 +112,7 @@ EasyPermissions.onRequestPermissionsResult(requestCode, permissions, grantResults, this); } /*** * 获取高德定位信息 * @param aMapLocation */ @Override public void onLocationChanged(AMapLocation aMapLocation) { mAMapLocation = aMapLocation; } /*** * 定位初始化 * @param onLocationChangedListener */ @Override public void activate(OnLocationChangedListener onLocationChangedListener) { } public void initLocation() { //初始化定位 try { mlocationClient = new AMapLocationClient(this); } catch (Exception e) { e.printStackTrace(); } //初始化定位参数 mLocationOption = new AMapLocationClientOption(); //设置定位回调监听 mlocationClient.setLocationListener(this); //设置为高精度定位模式 mLocationOption.setNeedAddress(true); mLocationOption.setLocationMode(AMapLocationClientOption.AMapLocationMode.Hight_Accuracy); //设置定位参数 mlocationClient.setLocationOption(mLocationOption); // 此方法为每隔固定时间会发起一次定位请求,为了减少电量消耗或网络流量消耗, // 注意设置合适的定位时间的间隔(最小间隔支持为2000ms),并且在合适时间调用stopLocation()方法来取消定位请求 // 在定位结束后,在合适的生命周期调用onDestroy()方法 // 在单次定位情况下,定位无论成功与否,都无需调用stopLocation()方法移除请求,定位sdk内部会移除 mlocationClient.startLocation();//启动定位 } @Override public void deactivate() { if (mlocationClient != null) { mlocationClient.stopLocation(); mlocationClient.onDestroy(); } mlocationClient = null; } @Override public void onPointerCaptureChanged(boolean hasCapture) { @@ -393,33 +123,6 @@ @Override protected void onDestroy() { super.onDestroy(); if (mapView != null) mapView.onDestroy(); } public Polyline drawLine(LatLng start, LatLng end) { List<LatLng> latLngs = new ArrayList<LatLng>(); latLngs.add(start); latLngs.add(end); Polyline polyline = aMap.addPolyline(new PolylineOptions(). addAll(latLngs).width(10).color(Color.argb(255, 1, 1, 1))); return polyline; } public Polyline drawLine(List<LatLng> latLngs) { PolylineOptions options = new PolylineOptions().addAll(latLngs).width(30).color(Color.BLUE); // //用一个数组来存放纹理 // List<BitmapDescriptor> texturesList = new ArrayList<>(); // texturesList.add(BitmapDescriptorFactory.fromResource(R.drawable.gps_point)); // //指定某一段用某个纹理,对应texturesList的index即可, 三个点对应两段颜色 // List<Integer> texIndexList = new ArrayList<>(); // texIndexList.add(0);//对应上面的第0个纹理 // //加入对应的颜色,使用setCustomTextureList 即表示使用多纹理; // options.setCustomTextureList(texturesList); // //设置纹理对应的Index // options.setCustomTextureIndex(texIndexList); Polyline polyline = aMap.addPolyline(options); polyline.setDottedLine(true); return polyline; } } app/src/main/java/com/xianning/driver/base/gaode/BaseMapFragment.java
File was deleted app/src/main/java/com/xianning/driver/base/gaode/gpsnav/BaseGpsMapActivity.java
File was deleted app/src/main/java/com/xianning/driver/base/gaode/gpsnav/GPSNaviActivity.java
File was deleted app/src/main/java/com/xianning/driver/base/gaode/gpsnav/overlay/AMapServicesUtil.java
File was deleted app/src/main/java/com/xianning/driver/base/gaode/gpsnav/overlay/DrivingRouteOverlay.java
File was deleted app/src/main/java/com/xianning/driver/base/gaode/gpsnav/overlay/RouteOverlay.java
File was deleted app/src/main/java/com/xianning/driver/base/gaode/gpsnav/util/TTSController.java
@@ -4,7 +4,6 @@ import android.os.Handler; import android.os.Message; import com.amap.api.navi.AMapNavi; import com.baidu.navisdk.adapter.IBNTTSManager; import java.util.LinkedList; @@ -25,7 +24,6 @@ @Override public void onCompleted(int code) { AMapNavi.setTtsPlaying(false); baiduState = IBNTTSManager.IBNOuterTTSPlayerCallback.PLAYER_STATE_IDLE; if (handler != null) { handler.obtainMessage(1).sendToTarget(); app/src/main/java/com/xianning/driver/ui/adapter/SearchSitedapter.kt
File was deleted app/src/main/java/com/xianning/driver/ui/main/MainActivity.kt
@@ -6,19 +6,11 @@ import android.net.Uri import android.os.Handler import android.os.Looper import android.os.Message import android.provider.Settings import android.util.Log import android.view.Gravity import android.widget.Toast import androidx.core.app.ActivityCompat import cn.jpush.android.api.JPushInterface import cn.jpush.android.api.TagAliasCallback import cn.sinata.rxnetty.NettyClient import cn.sinata.xldutils.utils.* import com.amap.api.location.AMapLocation import com.amap.api.location.AMapLocationListener import com.amap.api.maps.MapsInitializer import com.baidu.location.BDAbstractLocationListener import com.baidu.location.BDLocation import com.baidu.location.LocationClient @@ -81,8 +73,6 @@ override fun initView() { LocationClient.setAgreePrivacy(true) MapsInitializer.updatePrivacyShow(this,true,true) MapsInitializer.updatePrivacyAgree(this,true) MyApplication.getInstance()?.initPersionDate() // var packageName = "com.android.providers.downloads"; app/src/main/java/com/xianning/driver/ui/main/TripActivity.kt
@@ -27,7 +27,6 @@ import com.xianning.driver.base.gaode.AMapKit.getTimeType import com.xianning.driver.base.gaode.AMapKit.initMap import com.xianning.driver.base.gaode.AMapKit.moveCamera import com.xianning.driver.base.gaode.gpsnav.GPSNaviActivity import com.xianning.driver.bean.OrderBean import com.xianning.driver.bean.OrderSimpleData import com.xianning.driver.netUtls.* @@ -226,12 +225,7 @@ orderBean.let { when (it.data.orderState) { 2, 3 -> { // startAMapNavi(makeMarker!!) // startNavi(carMarker!!.position,makeMarker!!.position) startActivity<GPSNaviActivity>( "start" to com.amap.api.maps.model.LatLng(carMarker!!.position.latitude,carMarker!!.position.longitude), "end" to com.amap.api.maps.model.LatLng(makeMarker!!.position.latitude,makeMarker!!.position.longitude) ) startNavi(carMarker!!.position,makeMarker!!.position) } 4 -> { app/src/main/java/com/xianning/driver/ui/main/add_order/SelectClassActivity.kt
@@ -4,7 +4,6 @@ import androidx.recyclerview.widget.LinearLayoutManager import cn.sinata.xldutils.utils.callPhone import cn.sinata.xldutils.utils.clickDelay import com.amap.api.location.AMapLocationListener import com.baidu.location.BDAbstractLocationListener import com.baidu.location.BDLocation import com.xianning.driver.R app/src/main/java/com/xianning/driver/ui/pub/ForgetPwdActivity.kt
@@ -3,7 +3,6 @@ import android.widget.TextView import cn.sinata.xldutils.utils.clickDelay import cn.sinata.xldutils.utils.getString import com.amap.api.location.AMapLocationListener import com.baidu.location.BDAbstractLocationListener import com.baidu.location.BDLocation import com.baidu.location.LocationClient app/src/main/java/com/xianning/driver/utils/Cache/CacheKey.kt
@@ -2,9 +2,7 @@ import cn.sinata.xldutils.utils.Md5 import com.xianning.driver.bean.UserInfoBean import com.xianning.driver.ui.adapter.SearchSitedapter import com.google.gson.Gson import com.google.gson.reflect.TypeToken object CacheKey { @@ -67,34 +65,5 @@ return getKeyStr("terminalName") } /*** * 保存以及获取缓存的搜索地址 */ fun saveSiteList(site: SearchSitedapter.SiteBean,type:String){ site.type = type var data = getSiteList(type) var listData = mutableListOf<SearchSitedapter.SiteBean>() for (item in data){ if (item.site != site.site){ listData.add(item) } } listData.add(site) putKeyStr("searchSite",Gson().toJson(listData)) } fun getSiteList(type:String): MutableList<SearchSitedapter.SiteBean> { var str = getKeyStr("searchSite") if (str.isNotEmpty()){ var data = Gson().fromJson<MutableList<SearchSitedapter.SiteBean>>(str,object : TypeToken<MutableList<SearchSitedapter.SiteBean>>(){}.type) var over = mutableListOf<SearchSitedapter.SiteBean>() for (item in data){ if (item.type == type){ over.add(item) } } return over } return mutableListOf() } }