From e098c87cfb25e0d68af613064a801c3314c08352 Mon Sep 17 00:00:00 2001 From: wds Date: Fri, 9 Jul 2021 18:39:19 +0800 Subject: [PATCH] =?UTF-8?q?marker=E5=9B=BE=E5=BD=A2=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=EF=BC=8C=E6=8E=A5=E5=8F=A3=E8=81=94=E8=B0=83=EF=BC=8C=E4=BB=A5?= =?UTF-8?q?=E5=8F=8A=E4=B8=8A=E6=8A=A5marker=E7=9A=84=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/navinfo/outdoor/api/Constant.java | 2 +- .../fragment/ChargingPileFragment.java | 12 +- .../outdoor/fragment/FilterFragment.java | 23 +-- .../outdoor/fragment/GatherGetFragment.java | 38 ++--- .../outdoor/fragment/TreasureFragment.java | 142 ++++++++++++++---- .../res/drawable/marker_charge_centre_bg.png | Bin 0 -> 937 bytes .../res/drawable/marker_charge_have_bg.png | Bin 0 -> 893 bytes .../res/drawable/marker_other_have_bg.png | Bin 0 -> 894 bytes app/src/main/res/drawable/marker_pile_bg.png | Bin 0 -> 802 bytes .../res/drawable/marker_pile_centre_bg.png | Bin 0 -> 806 bytes .../main/res/drawable/marker_pile_have_bg.png | Bin 0 -> 832 bytes app/src/main/res/drawable/marker_poi_bg.png | Bin 4505 -> 844 bytes .../main/res/drawable/marker_poi_have_bg.png | Bin 0 -> 844 bytes app/src/main/res/drawable/marker_road.png | Bin 5719 -> 0 bytes .../main/res/drawable/marker_road_have_bg.png | Bin 0 -> 1037 bytes app/src/main/res/drawable/menpai_square.png | Bin 296 -> 0 bytes app/src/main/res/drawable/poi_icons.png | Bin 844 -> 0 bytes app/src/main/res/drawable/poi_square.png | Bin 558 -> 391 bytes app/src/main/res/drawable/poi_video_bg.png | Bin 0 -> 873 bytes .../main/res/drawable/poi_video_have_bg.png | Bin 0 -> 878 bytes app/src/main/res/drawable/push_road.png | Bin 507 -> 716 bytes app/src/main/res/layout/treasure_fragment.xml | 48 +++--- 22 files changed, 177 insertions(+), 88 deletions(-) create mode 100644 app/src/main/res/drawable/marker_charge_centre_bg.png create mode 100644 app/src/main/res/drawable/marker_charge_have_bg.png create mode 100644 app/src/main/res/drawable/marker_other_have_bg.png create mode 100644 app/src/main/res/drawable/marker_pile_bg.png create mode 100644 app/src/main/res/drawable/marker_pile_centre_bg.png create mode 100644 app/src/main/res/drawable/marker_pile_have_bg.png create mode 100644 app/src/main/res/drawable/marker_poi_have_bg.png delete mode 100644 app/src/main/res/drawable/marker_road.png create mode 100644 app/src/main/res/drawable/marker_road_have_bg.png delete mode 100644 app/src/main/res/drawable/menpai_square.png delete mode 100644 app/src/main/res/drawable/poi_icons.png create mode 100644 app/src/main/res/drawable/poi_video_bg.png create mode 100644 app/src/main/res/drawable/poi_video_have_bg.png diff --git a/app/src/main/java/com/navinfo/outdoor/api/Constant.java b/app/src/main/java/com/navinfo/outdoor/api/Constant.java index 5ae98d9..3021fc7 100644 --- a/app/src/main/java/com/navinfo/outdoor/api/Constant.java +++ b/app/src/main/java/com/navinfo/outdoor/api/Constant.java @@ -89,7 +89,7 @@ public class Constant { public static LatLng markerLatlng; //marker 图标 - public static BitmapDescriptor POI_ICON = BitmapDescriptorFactory.fromResource(R.drawable.poi_icons); + public static final BitmapDescriptor POI_ICON = BitmapDescriptorFactory.fromResource(R.drawable.marker_poi_bg); public static BitmapDescriptor ROAD_ICON = BitmapDescriptorFactory.fromResource(R.drawable.marker_road_bg); public static BitmapDescriptor STATION_ICON = BitmapDescriptorFactory.fromResource(R.drawable.marker_charge_bg); public static BitmapDescriptor PLANAR_TASK_ICON = BitmapDescriptorFactory.fromResource(R.drawable.marker_other_bg); diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/ChargingPileFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/ChargingPileFragment.java index 25fc468..cacd26e 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/ChargingPileFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/ChargingPileFragment.java @@ -91,6 +91,7 @@ public class ChargingPileFragment extends BaseDrawerFragment implements View.OnC private int pid; private String station; private LatLng latLng; + private LatLng poiLatLng; public static ChargingPileFragment newInstance(Bundle bundle) { ChargingPileFragment fragment = new ChargingPileFragment(); @@ -157,7 +158,7 @@ public class ChargingPileFragment extends BaseDrawerFragment implements View.OnC if (isChecked){ Message obtain = Message.obtain(); obtain.what = Constant.MAIN_CHARGING_PILE; - obtain.obj = latLng; + obtain.obj = poiLatLng; EventBus.getDefault().post(obtain); }else { Message obtain = Message.obtain(); @@ -370,7 +371,6 @@ public class ChargingPileFragment extends BaseDrawerFragment implements View.OnC editDescribe = findViewById(R.id.edit_describe); btnSaveLocal = findViewById(R.id.btn_save_local); btnSaveLocal.setOnClickListener(this::onClick); - //展示数据 initShowPileSharePre(); @@ -381,6 +381,14 @@ public class ChargingPileFragment extends BaseDrawerFragment implements View.OnC if (station!=null){ PoiEntity poiEntity = new Gson().fromJson(station, PoiEntity.class); pid = poiEntity.getTaskId(); + String x = poiEntity.getX(); + String y = poiEntity.getY(); + if (x != null && y != null) { + poiLatLng = new LatLng(); + poiLatLng.setLatitude(Double.parseDouble(y)); + poiLatLng.setLongitude(Double.parseDouble(x)); + } + } // 添加信息: ChargingPileEntity chargingPileEntity = (ChargingPileEntity) getArguments().getSerializable("chargingPileEntity"); diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/FilterFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/FilterFragment.java index 237203f..3648b5e 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/FilterFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/FilterFragment.java @@ -263,14 +263,17 @@ public class FilterFragment extends BaseDrawerFragment implements View.OnClickLi } else if (Constant.TASK_STASTUS == 3) { tvType.setText("未领取"); } + btnFilter = findViewById(R.id.btn_filter); btnFilter.setOnClickListener(this::onClick); recyclerFilter = findViewById(R.id.recycler_filter); + //设置下划线 recyclerFilter.setLayoutManager(new LinearLayoutManager(getActivity())); recyclerFilter.addItemDecoration(new DividerItemDecoration(getContext(), DividerItemDecoration.VERTICAL)); recyclerFilter.setRefreshProgressStyle(ProgressStyle.SemiCircleSpin); recyclerFilter.setLoadingMoreProgressStyle(ProgressStyle.BallRotate); + //取消上啦加载下拉刷新 recyclerFilter.setPullRefreshEnabled(false); recyclerFilter.setLoadingMoreEnabled(false); @@ -281,10 +284,11 @@ public class FilterFragment extends BaseDrawerFragment implements View.OnClickLi recyclerFilter.setLoadingListener(new XRecyclerView.LoadingListener() { @Override public void onRefresh() { - } + } @Override public void onLoadMore() { + } }); filterAdapter.setItemCLick(new FilterAdapter.ItemCLick() { @@ -301,10 +305,8 @@ public class FilterFragment extends BaseDrawerFragment implements View.OnClickLi obtain.obj = poiEntity; EventBus.getDefault().post(obtain); } - } }); - } @Override @@ -338,7 +340,6 @@ public class FilterFragment extends BaseDrawerFragment implements View.OnClickLi obtain.what = Constant.JOB_WORD_MONITOR; obtain.obj = true; EventBus.getDefault().post(obtain); - } }); break; @@ -366,13 +367,15 @@ public class FilterFragment extends BaseDrawerFragment implements View.OnClickLi } }); break; + + /** - * 1 "POI" - * 2 "充电站" - * 3 "POI录像" - * 4 "道路录像" - * 5 "其他" - * 6 "面状任务" + 1 "POI" + 2 "充电站" + 3 "POI录像" + 4 "道路录像" + 5 "其他" + 6 "面状任务" */ case R.id.cl_exclusive: BottomMenu.show((AppCompatActivity) getContext(), new String[]{"全部", "poi", "充电站", "POI录像", "道路录像", "其他", "面状任务"}, new OnMenuItemClickListener() { diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/GatherGetFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/GatherGetFragment.java index 71847ba..bcf72a2 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/GatherGetFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/GatherGetFragment.java @@ -41,11 +41,7 @@ public class GatherGetFragment extends BaseFragment implements View.OnClickListe private TextView tvTitle, tvMoney, tvTime, tvDistance, tvDescribe; private PoiEntity poiEntity; private PoiDao poiDao; - private PoiEntity poiListEntity; - private int aSave; - private PoiEntity polygonEntity; private ChargingPileDao chargingPileDao; - public static GatherGetFragment newInstance(Bundle bundle) { GatherGetFragment fragment = new GatherGetFragment(); fragment.setArguments(bundle); @@ -161,11 +157,7 @@ public class GatherGetFragment extends BaseFragment implements View.OnClickListe new Thread(new Runnable() { @Override public void run() { - if (poiListEntity != null) { - poiDao.deletePoiEntity(poiListEntity); - } else { - poiDao.deletePoiEntity(poiEntity); - } + } }).start(); } @@ -202,9 +194,7 @@ public class GatherGetFragment extends BaseFragment implements View.OnClickListe initCompleteTask(HttpInterface.COMPLETE, poiEntity.getTaskId()); } - } else { - btnFinishGather.setVisibility(View.VISIBLE); - btnGather.setVisibility(View.GONE); + }else { if (poiEntity.getType() == 1) {//poi的领取类型 receivedTaskByNet(HttpInterface.RECEIVED_POI_TASK , poiEntity.getTaskId(), true); } else if (poiEntity.getType() == 5) {//其他的领取类型 @@ -212,6 +202,8 @@ public class GatherGetFragment extends BaseFragment implements View.OnClickListe }else if (poiEntity.getType() == 2){//充电站的领取类型 chargingTaskByWork(HttpInterface.RECEIVED_CTASK, poiEntity.getTaskId(),true); } + btnFinishGather.setVisibility(View.VISIBLE); + btnGather.setVisibility(View.GONE); } } break; @@ -226,11 +218,7 @@ public class GatherGetFragment extends BaseFragment implements View.OnClickListe new Thread(new Runnable() { @Override public void run() { - if (poiListEntity != null) { - poiDao.deletePoiEntity(poiListEntity); - } else { - poiDao.deletePoiEntity(poiEntity); - } + } }).start(); @@ -303,7 +291,7 @@ public class GatherGetFragment extends BaseFragment implements View.OnClickListe @Override public void run() { btnFinishGather.setVisibility(View.VISIBLE); - if (isSaver && aSave == 1) { + if (isSaver) { Message obtain = Message.obtain(); obtain.what = Constant.GATHER_GET_MAP; obtain.obj = chargingListEntity; @@ -353,16 +341,16 @@ public class GatherGetFragment extends BaseFragment implements View.OnClickListe Geometry geometry = GeometryTools.createGeometry(geo); if (geometry.getGeometryType().equals("Point")) {//点 LatLng latLng = GeometryTools.createLatLng(geo); - poiListEntity.setX(latLng.longitude + ""); - poiListEntity.setY(latLng.latitude + ""); + polygonEntity.setX(latLng.longitude + ""); + polygonEntity.setY(latLng.latitude + ""); } else if (geometry.getGeometryType().equals("LineString")) {//线 List latLineString = GeometryTools.getLatLngs(geo); - poiListEntity.setX(latLineString.get(0).longitude + ""); - poiListEntity.setY(latLineString.get(0).latitude + ""); + polygonEntity.setX(latLineString.get(0).longitude + ""); + polygonEntity.setY(latLineString.get(0).latitude + ""); } else if (geometry.getGeometryType().equals("Polygon")) {//面 List latPolygon = GeometryTools.getLatLngs(geo); - poiListEntity.setX(latPolygon.get(0).longitude + ""); - poiListEntity.setY(latPolygon.get(0).latitude + ""); + polygonEntity.setX(latPolygon.get(0).longitude + ""); + polygonEntity.setY(latPolygon.get(0).latitude + ""); } polygonEntity.setTaskStatus(1); new Thread(new Runnable() { @@ -549,7 +537,7 @@ public class GatherGetFragment extends BaseFragment implements View.OnClickListe @Override public void run() { btnFinishGather.setVisibility(View.VISIBLE); - if (isSaver && aSave == 1) { + if (isSaver) { Message obtain = Message.obtain(); obtain.what = Constant.GATHER_GET_MAP; obtain.obj = poiListEntity; diff --git a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java index e26711a..0f98de4 100644 --- a/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java +++ b/app/src/main/java/com/navinfo/outdoor/fragment/TreasureFragment.java @@ -368,7 +368,8 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen } switch (Integer.valueOf(list.get(i).getType())) { case 1://poi - Marker poiMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(Constant.POI_ICON).alpha(0.5f) + BitmapDescriptor poiDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_poi_bg); + Marker poiMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(poiDescriptor).alpha(0.7f) .flat(true) .clockwise(false)); poiMarker.setTag(listBean); @@ -376,7 +377,8 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen poiMarker.setClickable(true); break; case 2://充电站 - Marker stationMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(Constant.STATION_ICON).alpha(0.7f) + BitmapDescriptor chargeDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_charge_bg); + Marker stationMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(chargeDescriptor).alpha(0.7f) .flat(true) .clockwise(false)); stationMarker.setTag(listBean); @@ -384,9 +386,17 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen stationMarker.setClickable(true); break; case 3://poi录像 + BitmapDescriptor poiVideoDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.poi_video_bg); + Marker poiVideoMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(poiVideoDescriptor).alpha(0.7f) + .flat(true) + .clockwise(false)); + poiVideoMarker.setTag(listBean); + removables.add(poiVideoMarker); + poiVideoMarker.setClickable(true); break; case 4://道路录像 - Marker roadMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(Constant.ROAD_ICON).alpha(0.7f) + BitmapDescriptor roadDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_road_bg); + Marker roadMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(roadDescriptor).alpha(0.7f) .flat(true) .clockwise(false)); roadMarker.setTag(listBean); @@ -394,9 +404,17 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen roadMarker.setClickable(true); break; case 5://其他 + BitmapDescriptor otherDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_other_bg); + Marker otherMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(otherDescriptor).alpha(0.7f) + .flat(true) + .clockwise(false)); + otherMarker.setTag(listBean); + removables.add(otherMarker); + otherMarker.setClickable(true); break; case 6://面状任务 - Marker planarMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(Constant.PLANAR_TASK_ICON).alpha(0.7f) + BitmapDescriptor Descriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_other_bg); + Marker planarMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(Descriptor).alpha(0.7f) .flat(true) .clockwise(false)); Log.d("面妆任务", "onSuccess: " + planarMarker); @@ -465,13 +483,69 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen showAllPoi.clear(); showAllPoi.addAll(allTaskStatus); for (int i = 0; i < allTaskStatus.size(); i++) { - if (allTaskStatus.get(i).getX() != null && allTaskStatus.get(i).getY() != null) { - LatLng position = new LatLng(Double.valueOf(allTaskStatus.get(i).getY()), Double.valueOf(allTaskStatus.get(i).getX())); - Marker marker = tencentMap.addMarker(new MarkerOptions(position)); - marker.setClickable(true); - marker.setTitle("本地");//1:本地 - marker.setTag(allTaskStatus.get(i)); - removablesLocality.add(marker); + PoiEntity poiEntity = allTaskStatus.get(i); + LatLng latLng = new LatLng(Double.valueOf(allTaskStatus.get(i).getY()), Double.valueOf(allTaskStatus.get(i).getX())); + switch (Integer.valueOf(poiEntity.getType())) { + case 1://poi + BitmapDescriptor poiDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_poi_have_bg); + Marker poiMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(poiDescriptor).alpha(0.7f) + .flat(true) + .clockwise(false)); + poiMarker.setClickable(true); + poiMarker.setTitle("本地");//1:本地 + poiMarker.setTag(poiEntity); + removablesLocality.add(poiMarker); + break; + case 2://充电站 + BitmapDescriptor chargeDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_charge_have_bg); + Marker stationMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(chargeDescriptor).alpha(0.7f) + .flat(true) + .clockwise(false)); + stationMarker.setClickable(true); + stationMarker.setTitle("本地");//1:本地 + stationMarker.setTag(poiEntity); + removablesLocality.add(stationMarker); + break; + case 3://poi录像 + BitmapDescriptor poiVideoDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.poi_video_have_bg); + Marker poiVideoMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(poiVideoDescriptor).alpha(0.7f) + .flat(true) + .clockwise(false)); + poiVideoMarker.setClickable(true); + poiVideoMarker.setTitle("本地");//1:本地 + poiVideoMarker.setTag(poiEntity); + removablesLocality.add(poiVideoMarker); + break; + case 4://道路录像 + BitmapDescriptor roadDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_road_have_bg); + Marker roadMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(roadDescriptor).alpha(0.7f) + .flat(true) + .clockwise(false)); + roadMarker.setClickable(true); + roadMarker.setTitle("本地");//1:本地 + roadMarker.setTag(poiEntity); + removablesLocality.add(roadMarker); + break; + case 5://其他 + BitmapDescriptor otherDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_other_have_bg); + Marker otherMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(otherDescriptor).alpha(0.7f) + .flat(true) + .clockwise(false)); + otherMarker.setClickable(true); + otherMarker.setTitle("本地");//1:本地 + otherMarker.setTag(poiEntity); + removablesLocality.add(otherMarker); + break; + case 6://面状任务 + BitmapDescriptor Descriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_other_have_bg); + Marker planarMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(Descriptor).alpha(0.7f) + .clockwise(false) + .flat(true)); + planarMarker.setClickable(true); + planarMarker.setTitle("本地");//1:本地 + planarMarker.setTag(poiEntity); + removablesLocality.add(planarMarker); + break; } } Message obtain = Message.obtain(); @@ -674,7 +748,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen initCheckedMarker(Constant.CHARGING_STATION_WORD); } } else if (data.what == Constant.MAIN_CHARGING_PILE) {//充电桩采集-移动位置 - initPoiMarker((LatLng) data.obj); + initPileMarker((LatLng) data.obj); } else if (data.what == Constant.MAIN_CHARGING_CHECKED_PILE) {//充电桩采集-确定位置 if((boolean)data.obj){ initCheckedMarker(Constant.CHARGING_PILE_WORD); @@ -790,6 +864,29 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen } }); + + } + private void initPileMarker(LatLng latLng) { + CameraUpdate cameraSigma = CameraUpdateFactory.newCameraPosition(new CameraPosition( + latLng, //中心点坐标,地图目标经纬度 + tencentMap.getCameraPosition().zoom, //目标缩放级别 + tencentMap.getCameraPosition().tilt, //目标倾斜角[0.0 ~ 45.0] (垂直地图时为0) + tencentMap.getCameraPosition().bearing)); //目标旋转角 0~360° (正北方为0) + tencentMap.animateCamera(cameraSigma, new TencentMap.CancelableCallback() { + @Override + public void onFinish() { + screenPosition = tencentMap.getProjection().toScreenLocation(latLng); + sliding_layout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); + //创建Marker对象之前,设置属性 + markerPoi = tencentMap.addMarker(new MarkerOptions(latLng)); + markerPoi.setFixingPoint(screenPosition.x, screenPosition.y); + } + + @Override + public void onCancel() { + + } + }); } private void initCheckedMarker(int poiWord) { @@ -807,6 +904,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen } /** + * * 设置定位图标样式 */ private void setLocMarkerStyle() { @@ -1086,7 +1184,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen * * @return */ - public LatLng getMapCenter() { + public LatLng getMapCenterPoint() { // int left = treasureMap.getLeft(); // int top = treasureMap.getTop(); // int right = treasureMap.getRight(); @@ -1099,23 +1197,5 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen return tencentMap.getCameraPosition().target; } - /** - * 获取屏幕中心点位置 - * - * @return - */ - public LatLng getMapCenterPoint() { - int left = treasureMap.getLeft(); - int top = treasureMap.getTop(); - int right = treasureMap.getRight(); - int bottom = treasureMap.getBottom(); - // 获得屏幕点击的位置 - int x = (int) (treasureMap.getX() + (right - left) / 2); - int y = (int) (treasureMap.getY() + (bottom - top) / 2); - Projection projection = tencentMap.getProjection(); - LatLng pt = projection.fromScreenLocation(new Point(x, y)); - return pt; - } - } \ No newline at end of file diff --git a/app/src/main/res/drawable/marker_charge_centre_bg.png b/app/src/main/res/drawable/marker_charge_centre_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..9f69cb468a98656a84339cd02eb46b4d6b9adcc6 GIT binary patch literal 937 zcmV;a16KTrP)Px#1ZP1_K>z@;j|==^1poj8Q%OWYR5(wSlwC|5RTRh1ot@bk*kxHh++7xgwpo=A zi)ms?iKRfIO&a=EAF2?EFNleRL?to$pz)&*eW@>PX-ibv&<_GwTNRau3RD+0CT3{` zqJm2sV{n!gSeDuOxYv6x1BER%?Qe23^Z(y-=AL`cWDum`taxf~X2VM_%a!|Tg&co? zEXCvc#8^1_^~YV>*wrg`7-u~hDK1xb+wsnf`sW%E#kM!0{XF!|zeita#EUVNX&!`> zOjq8KuZEmud#agEr#y>5G)Z9D62OT5dQ*M9zJ?^?aR;09ws)RUsu~XR$PHvTENI@L zfmha{CLiF>Wdxer?-PTekT%-ai=@YPSLGiY4R0*!jPHWbSW%5&1s(ZASE$Y-6T~ z2poEtu7eRRnLyty2{gJ-gfL67$13KnsY$_+Usz;o*yY7=Z4QAV2vF)4q2o~kRe2^Y zb8{ktw$YCY24YJnBg@T<0|5)(c*FtorU^c$T_X_qexAUHN?=$;uxPCM)<3sz3r6(j z4X!9{I|K;1Bq&xSP<7xVVIp|GP=U@TGT?_=2`W4$k2Pi@zX)3Rv&&pjWLhpGKo982 zY$qR&XF0jY@Q4lwxmU|y8SU>wg4>(p|7hZOl$DnoP%QYclAbnw`N?S(MEJEkhd}E# z5!%NM7+-KeY&QDGTuWs+e~tU;!%d#oy3evEFnuqGWty=!4?LqshQH;z*Qakp1lm#O z&bm6*L>{#T?BiHC(f*2deV~u&wIhYp`1KK>{gf+f>(bk@M)HeOClfvIziZ1o$qYR* zIxKCk*eMp5m)q7l#>{wR{)5BM0=6vMx_b%1lbh!|9hnfaeGl0d5R9?{}8(Z7O&Iw|;4v&7=kGJ9$hcdg7IhMr0e zo$F@LtR?2`4^PuuZx{9d9S;ts zaM5LTDYv7m8%Z+#9c*UHvav-hBe}9nOv5m=)C$#@V2k|`HURJ+X?a9%(E2w}00000 LNkvXXu0mjfHngz5 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/marker_charge_have_bg.png b/app/src/main/res/drawable/marker_charge_have_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..07eb88681c22196c0bcb611af66c2af483e2576c GIT binary patch literal 893 zcmV-@1A_dCP)Px#1ZP1_K>z@;j|==^1poj8CrLy>R5(v{R7*=+K@^_3w=uqxNQy~xasnqHssFB2CLMoM{*7qat+wV-T z*F@6~!pwZ)bpU?O7;NajVaU!^~veGm>JUm}lSLdMfb-=D9 zlSziG{Os&3HZd`A@9600mrTaN!NEzCd0%)IK&R6wy}i9DRFi6IYLfT%_Bdc{XlQT- z0)Z*HrKP2BU|`@4e6=Uo?e;93vsSA$hm09nmeb*IxE$Fen0ak&tu>KIe3P6`=LiuZ z>IxhIe0g~p$#vxruH0s`v5JZc)y$Z~;dsW!#>PShgTY1wN>XrHj%tIWf?x@1O9;-< z3emJACnqNnsivmJqMn(>Vqwu}R0LF2RmuJR{k*=uUP+}=a$z6=-MMoso6TO7m6cTz zL1npIE-p!uVl*0sGcI5&D=SJQ5@Flh+boyM2_9=oZf|dYjO=%b7#bR)>>Qb?r}^XK zVc8umDu%X0uuB zH#avwatwfBbaeCwL@{GX6pzQl@J6<{xJczGyy z^5CsA*lGcQun{1Zf(Fo5*!_OLXMKI$CngN_2Wb#c;sa`v>ZGBNgLto(mX_YpUIY`+ zqD7R>A=rRQ-2n9Q&d$!hRF7A|1hiuwGu{co>?)<<@bEC?^?F@sZCa(6rX+#hhMQlY z6~9$V0Ca9{Zf*qpsY(eHWhS7n=Wss9NAXCdSSS>l#yj7tM-4@pFR{A1`u^hLB2IhC zy0EbDN*J!8WH2Ty84L!eX^*~s#^)CnhHEGpOhBohXhlCi2%-f38;ooLl$_bw*_l_V z8z>rvOJGDN+uGWmU^etPW>ESUw8>rACPK-~=xG#!C9uVqr~cp^Dg4X*2gd#acPx#1ZP1_K>z@;j|==^1poj8C`m*?R5(w4luJxgK@^5hTUuT%1*H#A7b-{~poD-_ zAsBQ)j1NfA7#3_aMo8S6xO3%7Hn?zM8cw9Wi` zc7RSJ#F7&d5)v<8uWv0ioWCoPNTgJb@dsgg0~f}>3h=TloduAX zl%$fX)#*p6PdJpJ2Dirxtj`brKmf9IS}@I7AU!>e&iIE?snSaYK?qZyu-!Vt`bYt} zJOOw?Alhyskw`#_kDmGjZRTMpE-Z)*rBVq+1$m&;#5yB5)>o%w$tfurIeGatSV&Dt z20;*E7M-kP(+OK>`zgsuFl{m;T>yNp96ATg$nek;>G$!`_JH5-#DXYBVcEV$f*9Pu z!jg^H_B98D!x3ULUa$S<#P~~@h@q>*5HN;@J0l)?BS? zDX*xykN*_$jar;H4|R97-wcPjod=EBcV!>Ttg&9tN|@tV{Mi`BV-p0PqhSibUrCvF Uc}*+s#{d8T07*qoM6N<$g7~VG`2YX_ literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/marker_pile_bg.png b/app/src/main/res/drawable/marker_pile_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..abba110c39392cd7d737ee021a504250de245863 GIT binary patch literal 802 zcmV+-1Ks?IP)Px#1ZP1_K>z@;j|==^1poj7%t=H+R5(wSlS@n!K^VusncZ&bgBIG_mjnr-wl#9} zg@9Z<7~{c%iNRnnA%vhtj2B~K)R=fRCIk)9_=pKXg5t?YqC5_0;z5wd#UO}+Kr638 zce~qNXO?M!0!DscCNuy4H(zI_GYjbmMW!QJ&-^buBLzQwv4G+o-!<)M&3Th?!g`WT zNr6}o$bu~Pdfx-n8Cy9bFnbMRd-UCG#dx_INrb7^Cm}PkIN#>B3kS`IsQwr7pfnIJ z8!6Ui)EP_-`+aZy{}fUTA>-bx245o`BVoV!fU`TdXZ2R^;u{b`d-QRa)&uv{21t-d zq7foxqs7=-m0g{FMkjJWRpK&KC+Z*{?SLA59*iKcELo9YK9^OAGmcuzn3qB#F$q)f zn=~s}NSMI|PL^FpIBY7ycsrlNbP5l+;VQmB+C{z84mOrq0eg5422m54PGLtjxWd&! z9ajTU63VLcCefnmA|`)*Khs-6?vr}4*tYPR=}qw>H(6U{YMEH;d<){T`E2*l&Tq(p z9n|!a6Tj!%z=ksQNt4<%R4TR52LrmMDBt75Q-#AJ{faWrIw~?Bd7hB>rfUHVwA0Z@ zlSw4e6ita7|8XqdvGjqXM!YZ9%K-<55>qMt0lLLxqmhI@j=8$YOJd8yORDu^irBT- zi7>`OiMfsV@>eHgtRzRBcDF-7WJ>=5>u3i*H#WL64!K`qwG4oz%Upd6pE; z$-CTN^M{a&b1@4vRa3*Iqeb$k*hgmR=wH=p5)maFy%V{`q>k9U(3D=dDaeS7zOmgC z{&-OHi-Ck8XbiE`8rH2$(Iib;dOr7*j^o{8mpmj5>WMTqET+U>&9~BCY@Tn@jV)n7 z27fdt@p(cXbJnrp%C>9UuIG#eCdflGct00>aWv*UMn-I8=@c8Enb!=mtSIzFDG5bY gd6lQv#nKFbzkm$@1KIqEP)Px#1ZP1_K>z@;j|==^1poj7&`Cr=R5(wSlS@ccQ5eU+`93wJF zLIWpg(V~Q;jieAQN^R9b5L%SA3lhp8l$=bB9%O2ei#9nbWNI(1luU{;)5)%*<2>)< zbkFg4eTa5$%Vk73{wHs?m#PA6_Q>`V=20UgAJN9MAUhMACPO2aE+-?<8qBt@h zoK~RrBdgtnNS)tTjvVHqk5^t6lJ{g$k8pMuf|_9&21Er4wgW_)BpC6qAghZjFuWkJ zf<5mb)jHlVg8oSZ^tpLZK>-toAl<5eWCFe>%WY0dqFN``#6V%1427u**vve{Tj<0R zv@#~JND2n2)`>H5a5dXZ9>2svKwiEp1_kHlSb6Njd#cxk^ljiB8|;75O7&l{8bQ1J z^4){Ij~}tV=eKIrIZ>n@*fuDzRlD;7DH|E+9A{xjBrQQurpL$qTDy`cbMA>ETzFh- zoj7euP6id6;qp||Z%NhiqP2M4e#WaK%tAjT^(u=Jr_jQ@a z(A7|n^?Vy?gonF2@wCzIh^YGlf$qDFv-c{>sa#CPXbZUbZT3t}HzzPODq_Y%&KO~nSw)LbO4*&oF07*qoM6N<$g0q@)p8x;= literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/marker_pile_have_bg.png b/app/src/main/res/drawable/marker_pile_have_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..f678b97fd8222e4e89b5ff183d812d845e602ebf GIT binary patch literal 832 zcmV-G1Hb%Px#1ZP1_K>z@;j|==^1poj7>PbXFR5(wSlx;{;VHC%YcRF=1zH2kHTDm}1)`U4o zGe>zXyKnLw)ay5lE;Qf>Bl$3Tl*A#5K*ikqvdt>C$b!rEbo=?%wr0 zchBz3Y1D6AIOl)P|31&%dG3vXZDcByCv=5HH~;sK1VA^)wolt=(dm-XyL&S-HALspXf^Qe;|H+Xr$K#01<|q?SX%fA9Ltdo zw5ljlOewQedXft;3G zl6+SrXxp4W^k-p4O(V~!A^KB;*SoevG>|7qAwe384piWml9UMMF)Pfwgcev`U70lu z(vAFVkL77=DywQ*_*o+*S}f+9f^2LsBtoau@8?>Z8p_Abqn&6F04~R@$?peFnU!6P z+z~9x!qzJYGWvVFUey_f2AXlsn=w;X%X_>}^frafJ&5tk;N$Mjj@u*+nK3r2r9V}n zP^axlR})EKaei*RwYj03W7$n20smrb<#qd$8y=6_MN%HT-H!IQ>zfR-MkJmv^Sal& z^tQL_4oP|NIBnl8eIykKGh+;&>84fp@(hmgs{L}Y0vEHgYf(1hb3b{p-O zu@CcwZR}{qd^3%-<8P12XlNr+7`vMB>^E7T*D`MICQ=xGj4H@U{h7MzD_5UKi(}$6 zTHWQ;G)0bO%-qd!oG>QLjw@5>Gl8Dl$Dc)(V?`oS6b?z50Pq{*RW#d7K7i@~0000< KMNUMnLSTYqMR@iA literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/marker_poi_bg.png b/app/src/main/res/drawable/marker_poi_bg.png index 733e0e6b36fe16f98cb9642ba64138b2099cc82e..7502c02fe402052648e0da81256a39254e26a470 100644 GIT binary patch literal 844 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 diff --git a/app/src/main/res/drawable/marker_poi_have_bg.png b/app/src/main/res/drawable/marker_poi_have_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..cd90eb3030c28823f59ff07d0e547529370d88fd GIT binary patch literal 844 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 JPDHLkV1kES#$W&d diff --git a/app/src/main/res/drawable/marker_road_have_bg.png b/app/src/main/res/drawable/marker_road_have_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..fe556d9c8c970d0a51482075daa9069743a7828f GIT binary patch literal 1037 zcmV+o1oHcdP)Px#1ZP1_K>z@;j|==^1poj8w@E}nR5(v{R9SBuRTTba#!H;kF3swsiR~;XP+CxE z8&J!ZMxr8Bn@VogMl2FS2rBW4#2?@V@dDxniI$40K%kJSqESvlfB|Ahl*8k<@=wwWzfSzcY4 zefYrTzU4X_oCx%5ZX89jPNy>-?mG6x-u*AWFG-R}fFNqyDxj#UIyn&-_@(#a+nG!{ z%9i=AM8uxA-o4t?{A8!3lR#uJvM7i!o6E4>Y{uL|2)SGyq0qel?AKqt@^2;+lNkB% z8%Mv~wdc80j7S-9vbDMj&f`bWzON1GOa{AmwIUP_L#H=ZS5#KEj(JCWrRo~%vt7rW z-{>SsSdXfw1KvF4gvnHbx%m)Z8yX&gEN4l9it>u8*8BfV4T)`g+dmWpQYQ#lx6;y5 zY`2*4_f0p-cRYcq>3bl_Bt_s-m~-2{_V+}aqp5=n*B)$;S7l_gIkYr6aCbb2mkzX} z)MQ$7Vh&_ByW^l}wpi+^n7pFw!G?mO@Mv~hJ$BYwDSZ=8pF9rpwleNVNuaFEY!&nQ zyv$N6n!-i}D~SY`5RNXvJ?i5!4!wGiTBdNnY*tQ-(eR?5O{kAhC?d0xk`nBB<|&p6 zj0OV|bP$8X-k=3g5L%e`iq!baoXm+TTACerr{@GL)Z4{y1aTsEzV} z@cS-_-qG9V(&<#B)>?zpC%WP6K7wQ_g)3JFaPGp7@QejuFd8`7OYen30r8dPS>k;s z(L_!r;xjdM4NjjwAPkSV;J)LIGJH~=D{!(B42NF zbkI~-uS0R9dU!pz&kqd_e6q%Pgv`JWD6gn|dPjNHZq}|x4~Q*AC;EQ6*iG}C<_=LC zi}?N8Z)Z};M2P9lQ*pTE3+na$D<4qW8O@DjLu3ZJG^=z0lJ>^tqieTG#q{KO-!0e3 zXPQe9n<6v#eV%XAspOoNwtDlgKR(sAHegG#LX{5&#?Bk`dc>k(S9o#3t!-_&)kL&rPOYtj^W&Px#1ZP1_K>z@;j|==^1poj7_DMuRR5(wSlwC+vK@`XTb3b-hQ%g59OVjY9GBWZZ zA%j!`eNyTvrHG&&BzloTA;^cK4xXTZ|Wg)UJs+$+nTrw-U6r(5(_j1Y$~eK~G78?_)0}@700% zywV$Bzso2lC*#!Gol)vOsX=wdBl%`C?3r0o0cN{iW4Npc^oLt2z=LU8r{p@60%=>s zSD%0_V;#m$9mPOlHpb5%hkgA$G)8~ZhS*T%A`=Z{$sO4;P&M%J4V z9b6;E?kMFDiBS;SoT&FNQAwOkYHc-gOFs0}bolyvF!SP>bOdmjY_xdP$W*<&W|xW4 z?Ga>0=vf=XgYdq61^>v9R02@Gm&4=!@;*P_sY2*ASSSD5>1I304^0q`sN$U4tZwkI ztHQQ|1uwnqDFb2Q=N`&k550cYO^-|#iJQ^Cp_@4=zy(dh5lKb z=lf)xX6YnHy5{i5lLfpe-|cC7Ma;!7sM}z#EJqmg1`C=zv|ilrd+1F|_#b#y<#m!i zy;{Q>DJ=~Cy;rxc)W<}<9ZC9+GfwrI_|Hjqka@Swn_Dvh(Sy9NVDcBJGX_2l1^5Yq W;V(bt?&IhH0000*3;_rOT#Fc1Xb>3=M)!4QY?*ED_q_w2ez zt%iss$|;%4F7g~ckTBlB>+uG7D*$ijsXMiq&2@@qAG@7{cT(GoKKh+bh<+H_X7cg1 z)2aMyU>CB_qjZ#W@cC^D!iE!N zIH7c=vVHz{lw~uJ$Hc54C}*rnP9`7-N775@^6Ll)!m+w5nN2_tj?KO#o}+-EoW%0( z90dgBgtapX2*Me-cJd0^bo%#_%C|0%>G!GO3;ctRUoN=k9{T|}G7ptB2L`YJ0000< KMNUMnLSTZZJ;{9l delta 533 zcmV+w0_y#T1Fi&+B!8$-OjJeioB;8i0Pvgu|NsB^)s^|!oc6v}{`Kbk^5FEcIPjha z|N8O#>BjotuKL=b`Pi8F)R6YXY4o;1|Ni^`{P_Lu(){bp`PP^C&x7~Pe)Ygz^tVUz zswMKNAo8Ua@}dv??$!I|!29LA`{A+q+oSl`nfTL<_t1v-%71tF$8Pn!QU3Vq`Q54c z+@|)wTlBh5@~tlNtu67M1pM&X_sDPc!esNWGxDx4Rz;_<00002bW%=J<4Fv_lp_ED z0W(QNK~y-)#njhwfWm{v?l42f>>8SEA#!%*oS zi6LniWgAFDWi;#>Mutw6ydbF?3p2XKy*}qS)lIl264ETBAj|Ci^O!_fbz`o$QN2vO z_)d{?<6>7gTgJ^%wihvxVYk00heU#|Io?I3_c1pbiht(1mi${pG){`t=jMR8F`o@n z7tVDu%RPyn)G{Aoie+^?pG~8Lcq_>qdE1`8!f=0y$jr3O2*>+&IIE7cAt({%KSqbu zbq>=_;1SOPq0%trFENQogPHX7VhSeC*7)k}&IBf45A@3dPJPx#1ZP1_K>z@;j|==^1poj86G=otR5(wKlv_wtK^VusnX_m2Y;JZjqbQ^cD%*{U z(6T7jdW@tXy894R*h5hi)o(#- z%rrAjnpxHl&gK9A=9_Qk%*;XX8`CGC+1X1hIT=puN*s>H1iPW*#e3qu`p77_|B{r- zW`f>in+moA>(%4yGL=mjAuR1)DC6NPQoikUY(sk&1h^-XtroDI-)${fFjZO1^h|s{x`-rJ%Rf^t+H^W7iNM(EuO> z2xCxi#uV%l-7zfjsi1eh1HiT(0$BY9?eKg!Sj*loc29VLk@1JBWHni)Lc+U z%z)_ECtw@12x6@j%u5I3dp$&&?tu}k6UpHy?MAQ9Xn_$9lpq|2ec~Dje<}u~I)Jjd zBQ+kV5rVjs&1}x6Wh;PhLF&hKUh-CI0aEPjPFPhJ#3gTHRoUmDCPaM?dKyUHHIi4j z>^Zq3bw99e6ol%}f)bY`v}Kr6JbzMBW!^wT?J(@gQLUb>Um`ah&K+Wy*2Hv(`Q4&& zEKnuBc315Qk=W8ky$g3mQpFC-ny0KjxmCT47$Q0dgitd(FSe9z)iSZeJYM?7FhQR` z1!oS{0pH(;t{A&-J~c0JEs{A^9#UZvF!;Lvt%K_oX3>#iV~>=5$s9N9AbA{erjEzc zq}9uZ7UJ1>ESAMbC@mOp^!66&IsQ)SlTyHkn_Hl73CEyYT7m(|ogrw?yP@xwQczY+ zZdcZlM^X-ss(@OZuX()}?X>ZNMy9d9iwyN+KxK~3=5_6{QN-VCK2Z0Y2Kqt-e&dhH zoYHFZ7C*QA&`WCoe@$-i(R#zA`m;LoskHu&eQVXckA+%<&-wFt&A60nEqB-szXGEB>+DFx8q0sjhZlk00000NkvXXu0mjf3{{%2 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/poi_video_have_bg.png b/app/src/main/res/drawable/poi_video_have_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..f7f88ab51c8ac865ed98b4d637a99dec7011a140 GIT binary patch literal 878 zcmV-!1CjiRP)Px#1ZP1_K>z@;j|==^1poj87)eAyR5(wClx;|pQ546|^E|U@xybi9HJL9-<#fJe zmLXVFSfYVN5l9e38GYzW(KkN@edvn?QGqWc8G>0EikemuA(~F-e4Ep$Yr5%t*`{vK zUhCfL<5H*ggYn$|x%ZrN?>YC5f-Q(5qEe5YI8`i;i_h^F2!yPaHEK1JowBZuveA*D zMs69wW=J)TaiY%7Zd2A!j400^Gd8Z*J{?Hk$ zcVli=H(2(fG}~&iEHc<|v7qo-qBQj?nf(v@`~{)GA)yHaa#;-(7A{Jv&e`0O$b-=t*eDW)fzf0Jm3k8NvxZGShGD?R zhX)ob3#cZjDilNGs*-Ss;J^SdEG&|Rn2q20#U%&|2p}30Eso7%&RxiVf(o_=8)%w> zgt!=xN{)c9FCQ{elEIhHht#B_uwUR0+8I4qQDzK};qhsw(`h3Lp+nnaZ8m6V`36dr z8tR)`VMH|!jji9o<#NFS%D#@>ZeOKw={Ze6{l*0WadZ@p3=#x$t}q9Vf~9e*Q4 zMB_8BV=@}GecfGe$PJT7Q?FgVexn+9fXwcK+wFF}Eq|4#QVutfUd-ur18$ewf!cO@ zw*dHZv^0ErAea5B!g{Tdh^dM3A1JC*92=jrQvkHp$}f%ek2v|y8G{3agbELb3BwaP zlZSc3tg^b|bpcA?;7s84^gh?s6t66s^_(Q&?bg@U+;%t|7S2TQa%Qd8rLWD6C7dJ- z5A=VSRFAcD(u0>XrnkGZ!fY~5<1xOl)CWXLJ=EC_p71Yc*4yx@oP9Ol)CW zXUvd7UWc>dN6(qO*wJ}m-k`#j)l8~?awadf?dSQtOHYqyW#7YpiugvURikY+RpnP~ zHrC87A#9s@*=(9I8<&3DSk{c&W-={loKDBuL-qjh7e-oM5-BP~YRKMI+zTQ&4+)}>XRlnX-z1>yB z;8VWcQ@-9>|Nm0H-BP~YQ@-6(zui;5-BiBZQoY4C*<=ovmM@E0@I#;Zk>Hzya_%400Ia}L_t(o!;RM4Zi7G!1W?0yXf~r80MR@;n9)T6h~?4Vj9LXC zmPda~4$1>%<#P&o_#8tXKD&^I&w=3KfOsAr2zhuQmZ$7KG6E3EvwV(c03vzD&3pnN zj;Gtq695G~aD9f9UWHcx;@O03V0EoFg4fI?Ah`BxarF*|;_=Euv@c17uTp$EO9{hNj1wx>h zrwHWiAL*E9`o<^%g*<$YArGHj$iwFl^YA(GJUkHc@IV9)2Nd)0Krzq$%gc`g6!UcA zB{@JbPa|F)4p7XK#mmzJLLR(6c!3ZIc;Nb&?=oB<0CIVX{nLaO2!VW_#qXKj4GMTh zzegqyDB$TTJ;?(K9#>Q8d3Zp<dhwQr> zzV9ATe1lne63|eok|4iehDDZ@>^mdA-k2eAY`W~yv{u!pZqHnwTx`>qlF8{}U|_WO zba4#vIDYl=?JQD?`|LZ@$?h(1ZxxAmE7e4njGSX?e_s_q|`)5tq z?58~EPW(*Ld>E-Wt++JJ>U8JJ?!_{5XHI^4X63#9U)P@9nDR;?U~+Q*l@2CT%WX@J zZFlhPn;V>L)EG6#)ZC1@LuRczx6p~FM;?m{uQ>X1*Yg+#rsF3c6iGCm_-OP?#!aCp zX2N++dG}pRPl^}WX*t-Xhn4F(=%ojl3%K;Ha~F3J*uHs%Ei;sDnSJrz2F0Qh+g%Dx zCpw?Thc(EYi?Msd(z*D{awTnt2Rn8)T|VdGXKh|^OVXx~UupUKRRSu0d*xD9JLasM z$H_AB^NMsO$2;eO&YxlFJpB41D<@0ex^{6D0n3M}X%E|uJpB5iiAAXWbzoV;k&9Iu p6q??>PpykfU-ruK>>tlMM%^hzSA%@_m;(cx!PC{xWt~$(69DMU>2m-8 diff --git a/app/src/main/res/layout/treasure_fragment.xml b/app/src/main/res/layout/treasure_fragment.xml index 231df10..0c22109 100644 --- a/app/src/main/res/layout/treasure_fragment.xml +++ b/app/src/main/res/layout/treasure_fragment.xml @@ -23,9 +23,9 @@ android:layout_width="match_parent" android:layout_height="match_parent" android:layout_marginTop="?attr/actionBarSize" - android:focusable="false" android:focusableInTouchMode="false" android:gravity="center" + android:focusable="false" app:layout_constraintBottom_toTopOf="@+id/frame_layout" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" @@ -42,16 +42,17 @@ android:background="@drawable/ic_baseline_add_alert" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent"> - - - - - - - - - + + + + + + + + + + + app:layout_constraintStart_toStartOf="parent" + /> + app:layout_constraintTop_toTopOf="parent" + /> + app:layout_constraintTop_toBottomOf="@id/cb_map_type" + /> + app:layout_constraintTop_toTopOf="@id/iv_zoom_del" + /> + app:layout_constraintTop_toBottomOf="@id/iv_submit" + /> + app:layout_constraintTop_toBottomOf="@id/cb_foot_type" + /> + app:layout_constraintTop_toBottomOf="@id/iv_zoom_add" + /> + app:layout_constraintTop_toBottomOf="@id/iv_zoom_del" + /> + app:layout_constraintTop_toBottomOf="@id/iv_refrish" + />