-
Notifications
You must be signed in to change notification settings - Fork 982
/
SampleWithTilesOverlayAndCustomTileSource.java
94 lines (76 loc) · 3.28 KB
/
SampleWithTilesOverlayAndCustomTileSource.java
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
package org.osmdroid.samples;
import android.graphics.Color;
import android.os.Bundle;
import android.widget.LinearLayout;
import android.widget.RelativeLayout;
import android.widget.RelativeLayout.LayoutParams;
import org.osmdroid.R;
import org.osmdroid.tileprovider.MapTileProviderBasic;
import org.osmdroid.tileprovider.tilesource.ITileSource;
import org.osmdroid.tileprovider.tilesource.XYTileSource;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.CustomZoomButtonsController;
import org.osmdroid.views.MapView;
import org.osmdroid.views.overlay.CopyrightOverlay;
import org.osmdroid.views.overlay.TilesOverlay;
import androidx.appcompat.app.AppCompatActivity;
import androidx.appcompat.widget.Toolbar;
/**
* @author Alex van der Linden
*/
public class SampleWithTilesOverlayAndCustomTileSource extends AppCompatActivity {
private MapView mMapView;
/**
* Called when the activity is first created.
*/
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Setup base map
setContentView(R.layout.activity_samplewithtilesoverlayandcustomtilesource);
Toolbar toolbar = findViewById(R.id.my_toolbar);
setSupportActionBar(toolbar);
//noinspection ConstantConditions
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setDisplayShowHomeEnabled(true);
final LinearLayout mapContainer = findViewById(R.id.map_container);
mMapView = new MapView(this);
mMapView.setTilesScaledToDpi(true);
//Copyright overlay
String copyrightNotice = mMapView.getTileProvider().getTileSource().getCopyrightNotice();
CopyrightOverlay copyrightOverlay = new CopyrightOverlay(this);
copyrightOverlay.setCopyrightNotice(copyrightNotice);
mMapView.getOverlays().add(copyrightOverlay);
mapContainer.addView(mMapView, new RelativeLayout.LayoutParams(LayoutParams.MATCH_PARENT,
LayoutParams.MATCH_PARENT));
mMapView.getZoomController().setVisibility(
CustomZoomButtonsController.Visibility.SHOW_AND_FADEOUT);
// zoom to the netherlands
mMapView.getController().setZoom(7D);
mMapView.getController().setCenter(new GeoPoint(51.5D, 5.4D));
// Add tiles layer with custom tile source
final MapTileProviderBasic tileProvider = new MapTileProviderBasic(getApplicationContext());
final ITileSource tileSource = new XYTileSource("FietsRegionaal", 3, 18, 256, ".png",
new String[]{"http://overlay.openstreetmap.nl/openfietskaart-rcn/"});
tileProvider.setTileSource(tileSource);
tileProvider.getTileRequestCompleteHandlers().add(mMapView.getTileRequestCompleteHandler());
final TilesOverlay tilesOverlay = new TilesOverlay(tileProvider, this.getBaseContext());
tilesOverlay.setLoadingBackgroundColor(Color.TRANSPARENT);
mMapView.getOverlays().add(tilesOverlay);
}
@Override
public boolean onSupportNavigateUp() {
onBackPressed();
return true;
}
@Override
public void onPause() {
super.onPause();
mMapView.onPause();
}
@Override
public void onResume() {
super.onResume();
mMapView.onResume();
}
}