blob: 1929b7b11f30d40b57af48c804cc29755f6f1467 (
plain)
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 cgeo.geocaching.maps.mapsforge;
import cgeo.geocaching.IWaypoint;
import cgeo.geocaching.R;
import cgeo.geocaching.cgeoapplication;
import cgeo.geocaching.enumerations.CacheType;
import cgeo.geocaching.geopoint.Geopoint;
import cgeo.geocaching.go4cache.Go4CacheUser;
import cgeo.geocaching.maps.MapProviderFactory;
import cgeo.geocaching.maps.interfaces.CachesOverlayItemImpl;
import cgeo.geocaching.maps.interfaces.GeoPointImpl;
import cgeo.geocaching.maps.interfaces.MapProvider;
import cgeo.geocaching.maps.interfaces.OtherCachersOverlayItemImpl;
import android.app.Activity;
import android.content.Context;
import android.content.res.Resources;
import java.util.HashMap;
import java.util.Map;
public class MapsforgeMapProvider implements MapProvider {
public final static int MAPNIK = 1;
public final static int CYCLEMAP = 3;
public final static int OFFLINE = 4;
private final Map<Integer, String> mapSources;
private final int baseId;
public MapsforgeMapProvider(int _baseId) {
baseId = _baseId;
final Resources resources = cgeoapplication.getInstance().getResources();
mapSources = new HashMap<Integer, String>();
mapSources.put(baseId + MAPNIK, resources.getString(R.string.map_source_osm_mapnik));
mapSources.put(baseId + CYCLEMAP, resources.getString(R.string.map_source_osm_cyclemap));
mapSources.put(baseId + OFFLINE, resources.getString(R.string.map_source_osm_offline));
}
@Override
public Map<Integer, String> getMapSources() {
return mapSources;
}
@Override
public boolean isMySource(int sourceId) {
return sourceId >= baseId + MAPNIK && sourceId <= baseId + OFFLINE;
}
public static int getMapsforgeSource(int sourceId) {
MapProvider mp = MapProviderFactory.getMapProvider(sourceId);
if (mp instanceof MapsforgeMapProvider) {
MapsforgeMapProvider mfp = (MapsforgeMapProvider) mp;
return sourceId - mfp.baseId;
}
return 0;
}
@Override
public Class<? extends Activity> getMapClass() {
return MapsforgeMapActivity.class;
}
@Override
public int getMapViewId() {
return R.id.mfmap;
}
@Override
public int getMapLayoutId() {
return R.layout.map_mapsforge;
}
@Override
public GeoPointImpl getGeoPointBase(final Geopoint coords) {
return new MapsforgeGeoPoint(coords.getLatitudeE6(), coords.getLongitudeE6());
}
@Override
public CachesOverlayItemImpl getCachesOverlayItem(final IWaypoint coordinate, final CacheType type) {
MapsforgeCacheOverlayItem baseItem = new MapsforgeCacheOverlayItem(coordinate, type);
return baseItem;
}
@Override
public OtherCachersOverlayItemImpl getOtherCachersOverlayItemBase(Context context, Go4CacheUser userOne) {
MapsforgeOtherCachersOverlayItem baseItem = new MapsforgeOtherCachersOverlayItem(context, userOne);
return baseItem;
}
}
|