Ich benutze SupportMapFragment, um Google Map anzuzeigen. Ich verwende Direction API zwei Routen zwischen zwei Standorten. Ich analysiere JSON-Daten, die das Formular-API mit der GSON-Bibliothek zurückgegeben haben, und extrahiere das Schritt-Tag, das jede Route anzeigt. Dann benutze ich Polyline, um es zu zeichnen. aber meine Route passt nicht auf der Straße und meistens ist es gerade Linie.Problem in Strecke zwischen zwei Punkt mit Polylinie in Google Map zeichnen
Dieser Code ist meine Extraktion von JSON Richtung, die Google Return:
GoogleDirectionResponse data = (GoogleDirectionResponse) response;
if (data.getStatus().matches("OK")){
List<LatLng> steps = new ArrayList<>();
RoutesData routesData = data.getRoutes().get(0);
LegData legData = routesData.getLegs().get(0);
for (StepsData item : legData.getSteps()){
LatLng start = new LatLng(item.getStart_location().getLat(), item.getStart_location().getLng());
LatLng end = new LatLng(item.getEnd_location().getLat(), item.getEnd_location().getLng());
steps.add(start);
steps.add(end);
}
onDirectionFetchedListener.onDirectionFetched(steps);
}
I LatLng Daten in dem Array zu halten und gibt sie zu ziehen, um Fragment:
@Override
public void onDirectionFetched(List<LatLng> steps) {
PolylineOptions rectLine = new PolylineOptions().width(3).color(
Color.RED);
for (LatLng item : steps) {
rectLine.add(item);
}
Polyline polylin = map.addPolyline(rectLine);
}
und dies ist meine Karte :
nehmen Blick auf rote Linie. das ist nicht auf der Straße. Wie kann dieses Problem behoben werden? Dank
vielen Dank. es funktioniert –