@@ -47,7 +47,7 @@ public abstract class OverlayManager implements OnMarkerClickListener, OnPolylin
47
47
BaiduMap mBaiduMap = null ;
48
48
private List <OverlayOptions > mOverlayOptionList = null ;
49
49
50
- List <Overlay > mOverlayList = null ;
50
+ List <Overlay > mOriginRouteOverlayList = null ;
51
51
52
52
// 漂移路线
53
53
private Overlay mDriftRouteOverlay ;
@@ -72,8 +72,8 @@ public OverlayManager(BaiduMap baiduMap) {
72
72
if (mOverlayOptionList == null ) {
73
73
mOverlayOptionList = new ArrayList <OverlayOptions >();
74
74
}
75
- if (mOverlayList == null ) {
76
- mOverlayList = new ArrayList <Overlay >();
75
+ if (mOriginRouteOverlayList == null ) {
76
+ mOriginRouteOverlayList = new ArrayList <Overlay >();
77
77
}
78
78
}
79
79
@@ -94,14 +94,14 @@ public final void addToMap() {
94
94
return ;
95
95
}
96
96
97
- removeFromMap ();
97
+ removeOriginRouteFromMap ();
98
98
List <OverlayOptions > overlayOptions = getOverlayOptions ();
99
99
if (overlayOptions != null ) {
100
100
mOverlayOptionList .addAll (overlayOptions );
101
101
}
102
102
103
103
for (OverlayOptions option : mOverlayOptionList ) {
104
- mOverlayList .add (mBaiduMap .addOverlay (option ));
104
+ mOriginRouteOverlayList .add (mBaiduMap .addOverlay (option ));
105
105
}
106
106
}
107
107
@@ -113,20 +113,7 @@ public final void addDriftRouteToMap(List<LatLng> points, int lineColor) {
113
113
return ;
114
114
}
115
115
116
- if (mDriftRandomOverlay != null ) {
117
- mDriftRandomOverlay .remove ();
118
- }
119
-
120
- if (mDriftRouteOverlay != null ) {
121
- mDriftRouteOverlay .remove ();
122
- }
123
-
124
- if (mDriftRandomDotOverlay .size () > 0 ) {
125
- for (Overlay overlay : mDriftRandomDotOverlay ) {
126
- overlay .remove ();
127
- }
128
- }
129
-
116
+ removeDriftRouteFromMap ();
130
117
OverlayOptions driftOverlayOption = getPolylineOptions (points , lineColor );
131
118
mDriftRouteOverlay = mBaiduMap .addOverlay (driftOverlayOption );
132
119
}
@@ -139,16 +126,8 @@ public final void addDriftRandomDotToMap(List<LatLng> points, int color) {
139
126
if (mBaiduMap == null ) {
140
127
return ;
141
128
}
142
- if (mDriftRouteOverlay != null ) {
143
- mDriftRouteOverlay .remove ();
144
- }
145
-
146
- if (mDriftRandomDotOverlay .size () > 0 ) {
147
- for (Overlay overlay : mDriftRandomDotOverlay ) {
148
- overlay .remove ();
149
- }
150
- }
151
129
130
+ removeDriftRouteFromMap ();
152
131
for (LatLng latLng : points ) {
153
132
mDriftRandomDotOverlay .add (addPointMark (latLng , 8 , color ));
154
133
}
@@ -160,14 +139,8 @@ public final void addDriftRandomRouteToMap(List<LatLng> points, int lineColor) {
160
139
if (mBaiduMap == null ) {
161
140
return ;
162
141
}
163
- if (mDriftRouteOverlay != null ) {
164
- mDriftRouteOverlay .remove ();
165
- }
166
-
167
- if (mDriftRandomOverlay != null ) {
168
- mDriftRandomOverlay .remove ();
169
- }
170
142
143
+ removeDriftRouteFromMap ();
171
144
OverlayOptions driftOverlayOption = getPolylineOptions (points , lineColor );
172
145
mDriftRandomOverlay = mBaiduMap .addOverlay (driftOverlayOption );
173
146
}
@@ -227,18 +200,43 @@ public final Overlay addPointMark(LatLng latLng, int radiusPx, int color) {
227
200
.color (color ));
228
201
}
229
202
203
+ public final void removeAllRouteFromMap (){
204
+ removeOriginRouteFromMap ();
205
+ removeDriftRouteFromMap ();
206
+ }
207
+
208
+ public final void removeDriftRouteFromMap (){
209
+ if (mBaiduMap == null ) {
210
+ return ;
211
+ }
212
+
213
+ if (mDriftRandomOverlay != null ) {
214
+ mDriftRandomOverlay .remove ();
215
+ }
216
+
217
+ if (mDriftRouteOverlay != null ) {
218
+ mDriftRouteOverlay .remove ();
219
+ }
220
+
221
+ if (mDriftRandomDotOverlay .size () > 0 ) {
222
+ for (Overlay overlay : mDriftRandomDotOverlay ) {
223
+ overlay .remove ();
224
+ }
225
+ }
226
+ }
227
+
230
228
/**
231
229
* 将所有Overlay 从 地图上消除
232
230
*/
233
- public final void removeFromMap () {
231
+ public final void removeOriginRouteFromMap () {
234
232
if (mBaiduMap == null ) {
235
233
return ;
236
234
}
237
- for (Overlay marker : mOverlayList ) {
235
+ for (Overlay marker : mOriginRouteOverlayList ) {
238
236
marker .remove ();
239
237
}
240
238
mOverlayOptionList .clear ();
241
- mOverlayList .clear ();
239
+ mOriginRouteOverlayList .clear ();
242
240
243
241
}
244
242
@@ -252,9 +250,9 @@ public void zoomToSpan() {
252
250
if (mBaiduMap == null ) {
253
251
return ;
254
252
}
255
- if (mOverlayList .size () > 0 ) {
253
+ if (mOriginRouteOverlayList .size () > 0 ) {
256
254
LatLngBounds .Builder builder = new LatLngBounds .Builder ();
257
- for (Overlay overlay : mOverlayList ) {
255
+ for (Overlay overlay : mOriginRouteOverlayList ) {
258
256
// polyline 中的点可能太多,只按marker 缩放
259
257
if (overlay instanceof Marker ) {
260
258
builder .include (((Marker ) overlay ).getPosition ());
@@ -278,9 +276,9 @@ public void zoomToSpanPaddingBounds(int paddingLeft, int paddingTop, int padding
278
276
if (mBaiduMap == null ) {
279
277
return ;
280
278
}
281
- if (mOverlayList .size () > 0 ) {
279
+ if (mOriginRouteOverlayList .size () > 0 ) {
282
280
LatLngBounds .Builder builder = new LatLngBounds .Builder ();
283
- for (Overlay overlay : mOverlayList ) {
281
+ for (Overlay overlay : mOriginRouteOverlayList ) {
284
282
// polyline 中的点可能太多,只按marker 缩放
285
283
if (overlay instanceof Marker ) {
286
284
builder .include (((Marker ) overlay ).getPosition ());
0 commit comments