修改面状任务上的bug

This commit is contained in:
wds 2021-08-03 14:34:21 +08:00
parent 8a8117875f
commit eccc2fdadb
3 changed files with 101 additions and 16 deletions

View File

@ -125,7 +125,4 @@ dependencies {
implementation 'com.googlecode.mp4parser:isoparser:1.1.21' implementation 'com.googlecode.mp4parser:isoparser:1.1.21'
// Android常用库 https://github.com/l123456789jy/Lazy // Android常用库 https://github.com/l123456789jy/Lazy
implementation 'com.github.lazylibrary:lazylibrary:1.0.2' implementation 'com.github.lazylibrary:lazylibrary:1.0.2'
//
//https://www.jianshu.com/p/0c2a8db91bda?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
implementation 'com.android.support:percent:27.0.2'
} }

View File

@ -115,6 +115,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
private String userEncode; private String userEncode;
private String centerEncode; private String centerEncode;
private List<Removable> removables; private List<Removable> removables;
private List<Removable> removablesMarker;
private List<Removable> removablesLocality; private List<Removable> removablesLocality;
/** /**
* bitmapDescriptor1 * bitmapDescriptor1
@ -210,6 +211,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
initThread(); initThread();
removables = new ArrayList<>();//存储网络数据的marker removables = new ArrayList<>();//存储网络数据的marker
removablesLocality = new ArrayList<>(); //存储本地数据的marker removablesLocality = new ArrayList<>(); //存储本地数据的marker
removablesMarker = new ArrayList<>();//存储网络数据的marker
tencentMap.addOnMapLoadedCallback(new TencentMap.OnMapLoadedCallback() { tencentMap.addOnMapLoadedCallback(new TencentMap.OnMapLoadedCallback() {
@Override @Override
public void onMapLoaded() { public void onMapLoaded() {
@ -400,9 +402,17 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
strokeWidth(5)); strokeWidth(5));
polygon.setZIndex(1); polygon.setZIndex(1);
removables.add(polygon); removables.add(polygon);
if (latPolygon != null && latPolygon.size() > 0) { com.vividsolutions.jts.geom.Point centroid = geometry.getCentroid();
latLng = latPolygon.get(0); double x = centroid.getX();
double y = centroid.getY();
if (centroid != null) {
latLng = new LatLng();
latLng.setLatitude(y);
latLng.setLongitude(x);
} }
/* if (latPolygon != null && latPolygon.size() > 0) {
latLng = latPolygon.get(0);
}*/
} }
switch (Integer.valueOf(list.get(i).getType())) { switch (Integer.valueOf(list.get(i).getType())) {
case 1://poi case 1://poi
@ -487,9 +497,63 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
public void initMarker(PoiEntity poiEntity) { public void initMarker(PoiEntity poiEntity) {
sliding_layout.setPanelHeight(0); sliding_layout.setPanelHeight(0);
sliding_layout.setPanelState(SlidingUpPanelLayout.PanelState.HIDDEN); sliding_layout.setPanelState(SlidingUpPanelLayout.PanelState.HIDDEN);
LatLng latLng = new LatLng(); for (int i = 0; i < removablesMarker.size(); i++) {
latLng.setLongitude(Double.parseDouble(poiEntity.getX())); removablesMarker.get(i).remove();
latLng.setLatitude(Double.parseDouble(poiEntity.getY())); }
removablesMarker.clear();
String geo = poiEntity.getGeoWkt();
Log.d("TAG", "onSuccess: " + geo);
Geometry geometry = GeometryTools.createGeometry(geo);
LatLng latLng = null;
if (geometry.getGeometryType().equals("Point")) {//
latLng = GeometryTools.createLatLng(geo);
} else if (geometry.getGeometryType().equals("LineString")) {//线
List<LatLng> latLineString = GeometryTools.getLatLngs(geo);
// 构造 PolylineOpitons
PolylineOptions polylineOptions = new PolylineOptions()
.addAll(latLineString)
// 折线设置圆形线头
.lineCap(true)
// 折线的颜色为绿色
.color(0xff00ff00)
// 折线宽度为5像素
.width(25)
// 还可以添加描边颜色
.borderColor(0xffff0000)
// 描边颜色的宽度线宽还是 25 像素不过填充的部分宽度为 `width` - 2 * `borderWidth`
.borderWidth(1);
// 绘制折线
Polyline polyline = tencentMap.addPolyline(polylineOptions);
polyline.setZIndex(3);
removablesMarker.add(polyline);
if (latLineString != null && latLineString.size() > 0) {
latLng = latLineString.get(0);
}
} else if (geometry.getGeometryType().equals("Polygon")) {//
List<LatLng> latPolygon = GeometryTools.getLatLngs(geo);
Polygon polygon = tencentMap.addPolygon(new PolygonOptions().
//连接封闭图形的点
addAll(latPolygon).
//填充颜色为红色
fillColor(Color.parseColor("#97E0E7EC")).
//边线颜色为黑色
strokeColor(0xff000000).
//边线宽度15像素
strokeWidth(25));
polygon.setZIndex(1);
removablesMarker.add(polygon);
com.vividsolutions.jts.geom.Point centroid = geometry.getCentroid();
double x = centroid.getX();
double y = centroid.getY();
if (centroid != null) {
latLng = new LatLng();
latLng.setLatitude(y);
latLng.setLongitude(x);
}
/* if (latPolygon != null && latPolygon.size() > 0) {
latLng = latPolygon.get(0);
}*/
}
if (bigMarker == null) { if (bigMarker == null) {
BitmapDescriptor poiDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_road_bag); BitmapDescriptor poiDescriptor = BitmapDescriptorFactory.fromResource(R.drawable.marker_road_bag);
bigMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(poiDescriptor).alpha(0.9f) bigMarker = tencentMap.addMarker(new MarkerOptions(latLng).icon(poiDescriptor).alpha(0.9f)
@ -571,9 +635,17 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
strokeWidth(5)); strokeWidth(5));
polygon.setZIndex(1); polygon.setZIndex(1);
removablesLocality.add(polygon); removablesLocality.add(polygon);
if (latPolygon != null && latPolygon.size() > 0) { com.vividsolutions.jts.geom.Point centroid = geometry.getCentroid();
latLng = latPolygon.get(0); double x = centroid.getX();
double y = centroid.getY();
if (centroid != null) {
latLng = new LatLng();
latLng.setLatitude(y);
latLng.setLongitude(x);
} }
/* if (latPolygon != null && latPolygon.size() > 0) {
latLng = latPolygon.get(0);
}*/
} }
} else { } else {
if (allTaskStatus.get(i).getX() != null && allTaskStatus.get(i).getY() != null) { if (allTaskStatus.get(i).getX() != null && allTaskStatus.get(i).getY() != null) {
@ -786,7 +858,6 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
FilterFragment filterFragment = (FilterFragment) supportFragmentManager.findFragmentByTag(FilterFragment.class.getName()); FilterFragment filterFragment = (FilterFragment) supportFragmentManager.findFragmentByTag(FilterFragment.class.getName());
if (filterFragment != null) { if (filterFragment != null) {
fragmentTransaction.remove(filterFragment); fragmentTransaction.remove(filterFragment);
} }
} else if (data.what == Constant.GATHER_GET) { //筛选item 点击开始采集 } else if (data.what == Constant.GATHER_GET) { //筛选item 点击开始采集
PoiEntity poiEntity = (PoiEntity) data.obj; PoiEntity poiEntity = (PoiEntity) data.obj;
@ -889,14 +960,19 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
if (markerPile != null) { if (markerPile != null) {
markerPile.remove(); markerPile.remove();
} }
if (bigMarker != null) { if (bigMarker != null) {
bigMarker.setVisible(false); bigMarker.setVisible(false);
} }
for (int i = 0; i < removablesMarker.size(); i++) {
removablesMarker.get(i).remove();
}
removablesMarker.clear();
} else if (data.what == Constant.MAIN_BUTTON_VISIABLE) {//控制主界面各个按钮显隐状态的what值 } else if (data.what == Constant.MAIN_BUTTON_VISIABLE) {//控制主界面各个按钮显隐状态的what值
setMainButtonVisiable((Integer) data.obj); setMainButtonVisiable((Integer) data.obj);
} else if (data.what == Constant.MAIN_HEADER) {// 控制主界面各个header } else if (data.what == Constant.MAIN_HEADER) {// 控制主界面各个header
View view = (View) data.obj; View view = (View) data.obj;
if (view!=null){ if (view != null) {
initHeader(view); initHeader(view);
} }
@ -911,11 +987,16 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
sliding_layout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED); sliding_layout.setPanelState(SlidingUpPanelLayout.PanelState.COLLAPSED);
} else { } else {
frameLayout.setVisibility(View.GONE); frameLayout.setVisibility(View.GONE);
setMainButtonVisiable(View.VISIBLE);
fragmentTransaction.remove(gatherGetFragment); fragmentTransaction.remove(gatherGetFragment);
} }
if (bigMarker != null) { if (bigMarker != null) {
bigMarker.setVisible(false); bigMarker.setVisible(false);
} }
for (int i = 0; i < removablesMarker.size(); i++) {
removablesMarker.get(i).remove();
}
removablesMarker.clear();
} else if (data.what == Constant.CHARGING_STATION) {//充电站的充电桩-新增 } else if (data.what == Constant.CHARGING_STATION) {//充电站的充电桩-新增
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putBoolean("isSliding", false); // 通知抽屉不收回 bundle.putBoolean("isSliding", false); // 通知抽屉不收回
@ -958,7 +1039,7 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
int type = data.arg1; int type = data.arg1;
showPoiMarkerByType(type, latLng); showPoiMarkerByType(type, latLng);
} else if (data.what == Constant.EVENT_WHAT_COMPLETE_TASK) { } else if (data.what == Constant.EVENT_WHAT_COMPLETE_TASK) {
// initRemoveFragment(); // initRemoveFragment();
PoiEntity poiEntity = (PoiEntity) data.obj; PoiEntity poiEntity = (PoiEntity) data.obj;
Bundle bundle = new Bundle(); Bundle bundle = new Bundle();
bundle.putBoolean("isSliding", true); // 通知抽屉不收回 bundle.putBoolean("isSliding", true); // 通知抽屉不收回
@ -997,6 +1078,10 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
if (bigMarker != null) { if (bigMarker != null) {
bigMarker.setVisible(false); bigMarker.setVisible(false);
} }
for (int i = 0; i < removablesMarker.size(); i++) {
removablesMarker.get(i).remove();
}
removablesMarker.clear();
Toast.makeText(getActivity(), "不在作业范围", Toast.LENGTH_SHORT).show(); Toast.makeText(getActivity(), "不在作业范围", Toast.LENGTH_SHORT).show();
} else { } else {
frameLayout.setVisibility(View.VISIBLE); frameLayout.setVisibility(View.VISIBLE);
@ -1017,7 +1102,8 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
PoiVideoFragment poiVideoFragment = (PoiVideoFragment) supportFragmentManager.findFragmentByTag(PoiVideoFragment.class.getName()); PoiVideoFragment poiVideoFragment = (PoiVideoFragment) supportFragmentManager.findFragmentByTag(PoiVideoFragment.class.getName());
if (poiVideoFragment != null) { if (poiVideoFragment != null) {
fragmentTransaction.remove(poiVideoFragment); fragmentTransaction.remove(poiVideoFragment);
} RoadFragment roadFragment = (RoadFragment) supportFragmentManager.findFragmentByTag(RoadFragment.class.getName()); }
RoadFragment roadFragment = (RoadFragment) supportFragmentManager.findFragmentByTag(RoadFragment.class.getName());
if (roadFragment != null) { if (roadFragment != null) {
fragmentTransaction.remove(roadFragment); fragmentTransaction.remove(roadFragment);
} }
@ -1222,6 +1308,10 @@ public class TreasureFragment extends BaseFragment implements View.OnClickListen
if (bigMarker != null) { if (bigMarker != null) {
bigMarker.remove(); bigMarker.remove();
} }
for (int i = 0; i < removablesMarker.size(); i++) {
removablesMarker.get(i).remove();
}
removablesMarker.clear();
EventBus.getDefault().unregister(this); EventBus.getDefault().unregister(this);
} }

View File

@ -4,9 +4,7 @@
xmlns:tools="http://schemas.android.com/tools" xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="match_parent" android:layout_height="match_parent"
app:layout_heightPercent="100%"
android:background="@drawable/bg" android:background="@drawable/bg"
tools:context="activity.LoginActivity"> tools:context="activity.LoginActivity">
<TextView <TextView