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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
mapOverlays.addAll(parc.getListIti());
donc si quelqu'un aurait une idée je suis preneur.