Is it possible to have dashed line in the map paths? Can't see any option about it in the official Google static map page.
            Asked
            
        
        
            Active
            
        
            Viewed 745 times
        
    2
            
            
        - 
                    2It might be a feature request for Static Maps API. Feel free to file it in Google [issue tracker](https://issuetracker.google.com/issues/new?component=188843&template=787424). – xomena Mar 02 '18 at 11:29
 
1 Answers
1
            As workaround you can draw dashed line like in example:
List<PatternItem> pattern = Arrays.<PatternItem>asList(new Dash(30), new Gap(20));
mPolyline.setPattern(pattern);
over MapView in Light Mode on background and make snapshot of it for getting map bitmap, like in that answer:
public class MainActivity extends AppCompatActivity {
    private static final String MAP_VIEW_BUNDLE_KEY = "MapViewBundleKey";
    static final LatLng KYIV = new LatLng(50.450311, 30.523730);
    private ImageView mImageView;
    private MapView mMapView;
    // dimensions of "static map" image
    private int mMapWidth = 600;
    private int mMapHeight = 800;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mImageView = (ImageView) findViewById(R.id.image_view);
        Bundle mapViewBundle = null;
        if (savedInstanceState != null) {
            mapViewBundle = savedInstanceState.getBundle(MAP_VIEW_BUNDLE_KEY);
        }
        GoogleMapOptions options = new GoogleMapOptions()
                .compassEnabled(false)
                .mapToolbarEnabled(false)
                .camera(CameraPosition.fromLatLngZoom(KYIV,15))
                .liteMode(true);
        mMapView = new MapView(this, options);
        mMapView.onCreate(mapViewBundle);
        mMapView.getMapAsync(new OnMapReadyCallback() {
            @Override
            public void onMapReady(GoogleMap googleMap) {
                // draw dashed path here: 
                List<LatLng> sourcePoints = new ArrayList<>();
                sourcePoints.add(new LatLng(50.440311, 30.523730));
                sourcePoints.add(new LatLng(50.460411, 30.523930));
                PolylineOptions polyLineOptions = new PolylineOptions();
                polyLineOptions.addAll(sourcePoints);
                polyLineOptions.width(10);
                polyLineOptions.color(Color.RED);
                Polyline polyline = googleMap.addPolyline(polyLineOptions);
                List<PatternItem> pattern = Arrays.<PatternItem>asList(new Dash(30), new Gap(20));
                polyline.setPattern(pattern);
                // set map size in pixels and initiate image loading
                mMapView.measure(View.MeasureSpec.makeMeasureSpec(mMapWidth, View.MeasureSpec.EXACTLY),
                        View.MeasureSpec.makeMeasureSpec(mMapHeight, View.MeasureSpec.EXACTLY));
                mMapView.layout(0, 0, mMapWidth, mMapHeight);
                googleMap.setOnMapLoadedCallback(new GoogleMap.OnMapLoadedCallback() {
                    @Override
                    public void onMapLoaded() {
                        mMapView.setDrawingCacheEnabled(true);
                        mMapView.measure(View.MeasureSpec.makeMeasureSpec(mMapWidth, View.MeasureSpec.EXACTLY),
                                View.MeasureSpec.makeMeasureSpec(mMapHeight, View.MeasureSpec.EXACTLY));
                        mMapView.layout(0, 0, mMapWidth, mMapHeight);
                        mMapView.buildDrawingCache(true);
                        // Bitmap b is your "static map"
                        Bitmap b = Bitmap.createBitmap(mMapView.getDrawingCache());
                        mMapView.setDrawingCacheEnabled(false);
                        mImageView.setImageBitmap(b);
                    }
                });
            }
        });
    }
    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        Bundle mapViewBundle = outState.getBundle(MAP_VIEW_BUNDLE_KEY);
        if (mapViewBundle == null) {
            mapViewBundle = new Bundle();
            outState.putBundle(MAP_VIEW_BUNDLE_KEY, mapViewBundle);
        }
    }
}
        Andrii Omelchenko
        
- 13,183
 - 12
 - 43
 - 79