Search code examples
androidgoogle-mapsgoogle-polyline

Draw Polyline for Google map by for condition Android


I tried to draw a polyline between given markers, which are saved at an arraylist (poisMap). Based on my research I created the following code. I get no error and also no line, but the markers are all visible.

How have I to place the polyline method in order to get it working?

private void setUpMap() {
            for (int i = 0; i < poisMap.size(); i++) {
                latitude = poisMap.get(i).getLatitudePoi();
                if (latitude == 0) {
                    Log.i("debug", "latitude null");
                }
                longitude = poisMap.get(i).getLongitudePoi();
                poiTitle = poisMap.get(i).getTitle();
                mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title(poiTitle));
                PolylineOptions routeDraw = new PolylineOptions().add(new LatLng(latitude,longitude)).width(5).color(Color.BLUE);
                Polyline polyline = mMap.addPolyline(routeDraw);
            }
            latitudeZoom = poisMap.get(0).getLatitudePoi();
            longitudeZoom = poisMap.get(0).getLongitudePoi();
            mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitudeZoom,longitudeZoom),14));
            mMap.setMyLocationEnabled(true);

        }

Solution

  • private void setUpMap() {
    PolylineOptions routeDraw = new PolylineOptions().width(5).color(Color.BLUE);
            for (int i = 0; i < poisMap.size(); i++) {
                latitude = poisMap.get(i).getLatitudePoi();
                if (latitude == 0) {
                    Log.i("debug", "latitude null");
                }
                longitude = poisMap.get(i).getLongitudePoi();
                poiTitle = poisMap.get(i).getTitle();
                mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title(poiTitle));
                routeDraw.add(new LatLng(latitude,longitude))
    
            }
        Polyline polyline = mMap.addPolyline(routeDraw);
            latitudeZoom = poisMap.get(0).getLatitudePoi();
            longitudeZoom = poisMap.get(0).getLongitudePoi();
            mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitudeZoom,longitudeZoom),14));
            mMap.setMyLocationEnabled(true);
        }
    

    other

    private void setUpMap() {
        LatLng[] latlngarray = new LatLng[poisMap.size()];
            for (int i = 0; i < poisMap.size(); i++) {
                latitude = poisMap.get(i).getLatitudePoi();
                if (latitude == 0) {
                    Log.i("debug", "latitude null");
                }
                longitude = poisMap.get(i).getLongitudePoi();
                poiTitle = poisMap.get(i).getTitle();
                mMap.addMarker(new MarkerOptions().position(new LatLng(latitude, longitude)).title(poiTitle));
                latlngarray[i]= new LatLng(latitude, longitude);
    
            }
        PolylineOptions routeDraw = new PolylineOptions().add(latlngarray).width(5).color(Color.BLUE);
        Polyline polyline = mMap.addPolyline(routeDraw);
            latitudeZoom = poisMap.get(0).getLatitudePoi();
            longitudeZoom = poisMap.get(0).getLongitudePoi();
            mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(latitudeZoom,longitudeZoom),14));
            mMap.setMyLocationEnabled(true);
        }