Problème dessin d’itinéraire Google Maps
Bonjour,
J'ai un problème pour dessiner un itinéraire avec deux départs sur une carte.
je dessine du premier départ jusqu'au croisement avec le deuxième puis je dessine le deuxième jusqu'à l'arrivée.
le problème c'est que ça dessine le trait entre le croisement et le deuxième départ.
la récupération des points de l'itinéraire.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36
|
pos = xpp.getText().split(",");
for (int j = 0; j < pos.length-1; j=j+2)
{
try
{
String lat;
if (j == 0)lat = pos[j];
else lat = (pos[j].split(" "))[1];
latitude = Double.parseDouble(lat);
longitude = Double.parseDouble(pos[j+1]);
listePos.add(longitude);
listePos.add(latitude);
}
catch (NumberFormatException e)
{
Log.i("erreur",""+e.getMessage());
latitude = 0;
longitude = 0;
}
}
ArrayList<GeoPoint> listGeo= new ArrayList<GeoPoint>();
for (int i = 0; i < listePos.size()-1; i = i + 2)
{
GeoPoint geo = BoiteAOutils.makeGeoPoint(listePos.get(i),listePos.get(i+1));
listGeo.add(geo);
}
Itineraire iti = new Itineraire(listGeo);
listeIti.add(iti); |
la classe itinéraire:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
|
public class Itineraire extends Overlay {
private ArrayList<GeoPoint> listGeo;
public Itineraire(ArrayList<GeoPoint> list) {
listGeo = list;
}
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow)
{
Projection projection = mapView.getProjection();
for (int i = 0; i < listGeo.size()-1; i++)
{
Point pointEcranDep = new Point();
projection.toPixels(listGeo.get(i), pointEcranDep);
Point pointEcranArr = new Point();
projection.toPixels(listGeo.get(i+1), pointEcranArr);
Paint paint = new Paint();
paint.setColor(Color.BLUE);
paint.setStrokeWidth(4);
BlurMaskFilter bmf = new BlurMaskFilter(1, Blur.NORMAL);
paint.setMaskFilter(bmf);
canvas.drawLine(pointEcranDep.x, pointEcranDep.y, pointEcranArr.x,pointEcranArr.y, paint);
}
}
@Override
public boolean onTap(GeoPoint p, MapView mapView) {
// TODO Auto-generated method stub
return super.onTap(p, mapView);
}
} |
et l'ajout à la carte:
Code:
1 2
|
mapOverlays.addAll(parc.getListIti()); |
donc si quelqu'un aurait une idée je suis preneur.