ie müssen die letzte Polylinie entfernen und die aktuelle Polylinie erstelle
Ich mache Google Map mit Google Richtung Ich benutze Klassehttp: //www.akexorcist.com/2015/12/google-direction-library-for-android-en.htm dass jemand für Google Richtung bauen. Alles funktioniert gut und die Polylinie wird auf der Karte angezeigt. Aber wenn ich auf eine andere Richtung klicken muss, z. B. in Geh- oder Fahrtrichtung, werden auf der Karte 2 Polylinien angezeigt, und ich möchte nur die aktuelle Polylinie sehen.
hier erstelle ich die Polylinie und entferne die Polylinie am Anfang, dann wird die Polylinie überhaupt nicht angezeigt. Ich will das nicht. Ich möchte, dass die Polylinie entfernt wird, wenn ich auf die Schaltfläche else klicke. ich versuche zu setzen, polyline.remove (); auf die Schaltfläche klicken Sie auf anderes als das Problem, dass, wenn polyline.remove (); außerhalb der Klammern polyline.remove (); entfernen Sie nicht die Polylinie. ich muss polyline.remove () aufrufen; Wenn ich auf eine andere Schaltfläche klicke, stecke ich fest. Hier ist der Code:
switch (direction.getStatus()) {
case RequestResult.OK:
Route route = direction.getRouteList().get(0);
Leg leg = route.getLegList().get(0);
ArrayList<LatLng> pointList = leg.getDirectionPoint();
List<Step> stepList = direction.getRouteList().get(0).getLegList().get(0).getStepList();
ArrayList<PolylineOptions> polylineOptionList = DirectionConverter.createTransitPolyline(this, stepList, 5, Color.RED, 3, Color.BLUE);
for (PolylineOptions polylineOption : polylineOptionList) {
polyline = mMap.addPolyline(polylineOption);
polyline.remove();
}
break;
2.Wenn ich auf die Schaltfläche "Gehen" klicke, möchte ich, dass die Transit-Polylinie entfernt wird, dass wir nur die ganze Zeit nur eine Polylinie auf der Karte haben. wie mache Ich das
bWalking.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (locationGpsLatLng == null) {
Toast.makeText(MapsActivity.this, "Need GPS location", `enter code here`Toast.LENGTH_SHORT).show();{
return;
}
}
if (markerLocation == null) {
Toast.makeText(MapsActivity.this, "Type on marker bathroom for destination", Toast.LENGTH_SHORT).show();
} else {
sendRequestWalkingDirection();
}
};
private void sendRequestWalkingDirection() {
GoogleDirection.withServerKey(APIKEY)
.from(locationGpsLatLng)
.to(markerLocation)
.transportMode(TransportMode.WALKING)
.execute(new DirectionCallback() {
@Override
public void onDirectionSuccess(Direction direction, String rawBody) {
Log.d("onDirectionSuccess", "status: " + direction.getStatus());
requestOk(direction, rawBody);
mMap.addMarker(new MarkerOptions().position(locationGpsLatLng).draggable(false).icon(BitmapDescriptorFactory
.defaultMarker(BitmapDescriptorFactory.HUE_RED)));
CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(locationGpsLatLng, 15);
mMap.animateCamera(cameraUpdate);
}
@Override
public void onDirectionFailure(Throwable t) {
return;
}
});
}
});