Connect points on map with lines

后端 未结 1 681
太阳男子
太阳男子 2020-12-25 09:30

I have three gps points in android app. How to set on map connect first and second with red and second and third with blue line ? How to connect any two points on map, draw

相关标签:
1条回答
  • 2020-12-25 09:52

    Here's a minimal implementation (2 points only, no markers) using a map overlay and mapView.getProjection() fro you to expand upon:

        public class HelloGoogleMaps extends  MapActivity  {
        /** Called when the activity is first created. */
    
       @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            MapController mMapController;
            MapView mapView = (MapView) findViewById(R.id.mapview);
            mapView.setBuiltInZoomControls(true);
            mMapController = mapView.getController();
            mMapController.setZoom(18);
          // Two points in Mexico about 1km apart
            GeoPoint point1 = new GeoPoint(19240000,-99120000);
            GeoPoint point2 = new GeoPoint(19241000,-99121000);
            mMapController.setCenter(point2);
            // Pass the geopoints to the overlay class
            MapOverlay mapOvlay = new MapOverlay(point1, point2);
            mapView.getOverlays().add(mapOvlay);
        }
    
        public class MapOverlay extends com.google.android.maps.Overlay {
    
          private GeoPoint mGpt1;
          private GeoPoint mGpt2;
    
          protected MapOverlay(GeoPoint gp1, GeoPoint gp2 ) {
             mGpt1 = gp1;
             mGpt2 = gp2;
          }
          @Override
          public boolean draw(Canvas canvas, MapView mapView, boolean shadow,
                long when) {
             super.draw(canvas, mapView, shadow);
             Paint paint;
             paint = new Paint();
             paint.setColor(Color.RED);
             paint.setAntiAlias(true);
             paint.setStyle(Style.STROKE);
             paint.setStrokeWidth(2);
             Point pt1 = new Point();
             Point pt2 = new Point();
             Projection projection = mapView.getProjection();
             projection.toPixels(mGpt1, pt1);
             projection.toPixels(mGpt2, pt2);
             canvas.drawLine(pt1.x, pt1.y, pt2.x, pt2.y, paint);
             return true;
          }
       }
       @Override
       protected boolean isRouteDisplayed() {
          // TODO Auto-generated method stub
          return false;
       }
    }
    

    .

    0 讨论(0)
提交回复
热议问题