-
Notifications
You must be signed in to change notification settings - Fork 982
/
GeoPackageFeatureTileProvider.java
87 lines (69 loc) · 2.18 KB
/
GeoPackageFeatureTileProvider.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
package org.osmdroid.gpkg.tiles.feature;
import android.graphics.Bitmap;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.Build;
import android.util.Log;
import org.osmdroid.api.IMapView;
import org.osmdroid.tileprovider.MapTileProviderBase;
import org.osmdroid.tileprovider.modules.IFilesystemCache;
import org.osmdroid.tileprovider.modules.SqlTileWriter;
import org.osmdroid.tileprovider.modules.TileWriter;
import org.osmdroid.tileprovider.tilesource.ITileSource;
import org.osmdroid.util.MapTileIndex;
import mil.nga.geopackage.tiles.features.FeatureTiles;
/**
* created on 8/19/2017.
*
* @author Alex O'Ree
*/
public class GeoPackageFeatureTileProvider extends MapTileProviderBase {
protected IFilesystemCache tileWriter;
protected int minzoom = 0;
protected FeatureTiles featureTiles = null;
public GeoPackageFeatureTileProvider(ITileSource pTileSource) {
super(pTileSource);
Log.i(IMapView.LOGTAG, "Geopackage support is BETA. Please report any issues");
if (Build.VERSION.SDK_INT < 10) {
tileWriter = new TileWriter();
} else {
tileWriter = new SqlTileWriter();
}
}
@Override
public Drawable getMapTile(final long pMapTileIndex) {
if (featureTiles != null) {
Bitmap tile = featureTiles.drawTile(MapTileIndex.getX(pMapTileIndex), MapTileIndex.getY(pMapTileIndex), MapTileIndex.getZoom(pMapTileIndex));
if (tile != null) {
Drawable d = new BitmapDrawable(tile);
return d;
}
}
return null;
}
@Override
public int getMinimumZoomLevel() {
return minzoom;
}
@Override
public int getMaximumZoomLevel() {
return 22;
}
@Override
public IFilesystemCache getTileWriter() {
return tileWriter;
}
@Override
public long getQueueSize() {
return 0;
}
public void set(int minZoom, FeatureTiles featureTiles) {
this.featureTiles = featureTiles;
minzoom = minZoom;
}
@Override
public void detach() {
super.detach();
featureTiles = null;
}
}