0

Comment dessiner un lien dans google map. J'intègre actuellement la carte google map V2 dans mon application. Je peux être en mesure d'obtenir l'emplacement actuel et je peux aussi obtenir l'emplacement de la géo quand onLocationChange se produit. Mais je veux marquer une ligne parmi les pointeurs de géo que je reçois. est-ce possible avec la version 2? Pouvez-vous les gars pls me guider à ce sujet. Je suis assez nouveau sur ce sujet. Merci d'avance.Android-- comment dessiner une ligne dans googlemap-v2

Marker startPerc = googleMap.addMarker(new MarkerOptions() .position(coordinate).title("On the way").snippet("Hello Apps").icon(BitmapDescriptorFactory.fromResource(R.drawable.myicon))); 
     // startPerc.setIcon(BitmapDescriptorFactory.fromResource(R.drawable.my icon)); 

En utilisant ce code je peux en mesure de jument une image à la latitude et longitude.But je veux tracer une ligne sur ce point.

Répondre

1

Le fait de passer par the Developer Guide vous aide vraiment à démarrer.

Quoi qu'il en soit, ce dont vous avez besoin ici est un Polyline.

0

J'espère que cela peut vous aider à: - Créer nouvelle classe Overlay RoutePathOverlay: -

public class RoutePathOverlay extends Overlay { 

     private int _pathColor; 
     private final List<GeoPoint> _points; 
     private boolean _drawStartEnd; 

     public RoutePathOverlay(List<GeoPoint> points) { 
       this(points, Color.RED, true); 
     } 

     public RoutePathOverlay(List<GeoPoint> points, int pathColor, boolean drawStartEnd) { 
       _points = points; 
       _pathColor = pathColor; 
       _drawStartEnd = drawStartEnd; 
     } 

     private void drawOval(Canvas canvas, Paint paint, Point point) { 
       Paint ovalPaint = new Paint(paint); 
       ovalPaint.setStyle(Paint.Style.FILL_AND_STROKE); 
       ovalPaint.setStrokeWidth(2); 
       int _radius = 6; 
       RectF oval = new RectF(point.x - _radius, point.y - _radius, point.x + _radius, point.y + _radius); 
       canvas.drawOval(oval, ovalPaint);    
     } 

     public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) { 
       Projection projection = mapView.getProjection(); 
       if (shadow == false && _points != null) { 
         Point startPoint = null, endPoint = null; 
         Path path = new Path(); 
         //We are creating the path 
         for (int i = 0; i < _points.size(); i++) { 
           GeoPoint gPointA = _points.get(i); 
           Point pointA = new Point(); 
           projection.toPixels(gPointA, pointA); 
           if (i == 0) { //This is the start point 
             startPoint = pointA; 
             path.moveTo(pointA.x, pointA.y); 
           } else { 
             if (i == _points.size() - 1)//This is the end point 
               endPoint = pointA; 
             path.lineTo(pointA.x, pointA.y); 
           } 
         } 

         Paint paint = new Paint(); 
         paint.setAntiAlias(true); 
         paint.setColor(_pathColor); 
         paint.setStyle(Paint.Style.STROKE); 
         paint.setStrokeWidth(5); 
         paint.setAlpha(90); 
         if (getDrawStartEnd()) { 
           if (startPoint != null) { 
             drawOval(canvas, paint, startPoint); 
           } 
           if (endPoint != null) { 
             drawOval(canvas, paint, endPoint); 
           } 
         } 
         if (!path.isEmpty()) 
           canvas.drawPath(path, paint); 
       } 
       return super.draw(canvas, mapView, shadow, when); 
     } 

     public boolean getDrawStartEnd() { 
       return _drawStartEnd; 
     } 

     public void setDrawStartEnd(boolean markStartEnd) { 
       _drawStartEnd = markStartEnd; 
     } 
} 

appellent ensuite cette classe dans votre mapActivity: -

List<GeoPoint> path = new ArrayList<GeoPoint>(); //List of GeoPoints 

path.add(point); 

mapView.getOverlays().add(new RoutePathOverlay(path)); 
+0

Overlay fait partie de la V1 dépréciée Maps API. Il a spécifiquement demandé V2. –

Questions connexes