Package globus.glmap
Class GLMapManager
java.lang.Object
globus.glmap.GLMapManager
@ParametersAreNonnullByDefault
public class GLMapManager
extends java.lang.Object
GLMapManager is a singleton object that manages offline maps-
Nested Class Summary
Nested Classes Modifier and Type Class Description static interfaceGLMapManager.DownloadStatsCallbackstatic interfaceGLMapManager.DownloadURLCallbackstatic interfaceGLMapManager.ElevationCallbackstatic interfaceGLMapManager.MapListUpdateCallbackstatic interfaceGLMapManager.StateListenerstatic interfaceGLMapManager.TileDownloadProgress -
Constructor Summary
Constructors Constructor Description GLMapManager() -
Method Summary
Modifier and Type Method Description static booleanAddMap(android.content.res.AssetManager mng, java.lang.String assetFileName, ProgressCallback progressCallback)Adds vector map.static voidaddStateListener(GLMapManager.StateListener listener)Subscribes listener to events about map downloading progress.static voidCacheTiles(long[] tiles, GLMapManager.TileDownloadProgress progress)Check if tiles are cached.static voidCancelDownloadURL(long id)static voidDeleteDataSets(GLMapInfo info, int dataSets)Delete data sets associated with this map.static doubleDistanceToMap(GLMapInfo map, MapPoint point)Calculates distance from the map to the pointstatic GLMapDownloadTaskDownloadDataSet(GLMapInfo mapInfo, int dataSet)Creates map downloading tasksstatic java.util.List<GLMapDownloadTask>DownloadDataSets(GLMapInfo mapInfo, int dataSets)Creates map downloading tasksstatic longDownloadURL(java.lang.String url, long timestamp, GLMapManager.DownloadURLCallback complete)static intElevationAtPoint(double lat, double lon)Returns elevation at given pointstatic voidElevationAtPointAsync(double lat, double lon, GLMapManager.ElevationCallback callback)Asynchronous request of elevationstatic GLMapInfoFindNearestMap(GLMapInfo[] maps, MapPoint point)Helper function iterates over maps param and returns closestGLMapInfoto the given point.static GLMapInfo[]GetChildMaps()Return array of maps including submapsstatic intGetDownloadedMapsCount()static GLMapDownloadTaskgetDownloadTask(long mapID, int dataSet)Returns download tasks for mapsstatic java.util.List<GLMapDownloadTask>getDownloadTasks(long mapID, int dataSets)Returns download tasks for mapsstatic java.util.List<GLMapDownloadTask>getMapDownloadTasks()static GLMapInfo[]GetMaps()static GLMapInfoGetMapWithID(long mapID)static booleanGetTileDownloadingAllowed()static booleanInitialize(android.content.Context context, java.lang.String apiKey, ProgressCallback progressCallback)Initializes GLMapManagerstatic GLMapInfo[]MapsAtPoint(MapPoint point)Returns mapID of vector map that contains given point.static long[]NotCachedVectorTilesAtBBox(GLMapBBox bbox)Returns not cached vector tiles that bbox contains or intersectsstatic voidpostOnMain(java.lang.Runnable runnable)static voidRemoveMap(java.lang.String fileName)Removes vector map from map manager.static voidremoveStateListener(GLMapManager.StateListener val)/** Removes listener added byaddStateListenerstatic voidSetDownloadStatsCallback(GLMapManager.DownloadStatsCallback callback)Callback will be called when subtask is completed or cancelled.static booleanSetStorages(android.content.Context context, java.lang.Object writeStorage, java.util.Set<java.lang.Object> customStorages)Sets location of caches before initialization.static voidSetTileDownloadingAllowed(boolean val)AllowsGLMapManagerto download single tiles when downloaded vector maps does not contain data.static voidSortMaps(GLMapInfo[] maps, MapPoint point)Sorts array ofGLMapInfoby distance from given pointstatic voidUpdateMapList(GLMapManager.MapListUpdateCallback complete)Updates map list from serverstatic long[]VectorTilesAtBBox(GLMapBBox bbox)Returns vector tiles that bbox contains or intersectsMethods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Constructor Details
-
GLMapManager
public GLMapManager()
-
-
Method Details
-
Initialize
public static boolean Initialize(android.content.Context context, java.lang.String apiKey, @Nullable ProgressCallback progressCallback)Initializes GLMapManagerDuring first initialization it copies world map file from app resources to cache directory. Framework uses progressCallback to notify about initialization(copying) progress
- Parameters:
context- Application contextapiKey- API key of this applicationprogressCallback- initialization progress callback- Returns:
- true if initialized successfully
-
SetStorages
public static boolean SetStorages(android.content.Context context, @Nullable java.lang.Object writeStorage, @Nullable java.util.Set<java.lang.Object> customStorages)Sets location of caches before initialization. By default caches are set to getFilesDir() of context passed to initialize function, or getExternalFilesDir(null) if external storage is mounted.- Parameters:
context- the Context used to find default map locationswriteStorage- location to write maps (can be String, or CustomMapStorage)customStorages- Array of custom storages to read maps (write path will be automatically added)- Returns:
- Returns true on success
-
UpdateMapList
Updates map list from server- Parameters:
complete- runnable, called when map update is complete
-
DownloadURL
public static long DownloadURL(java.lang.String url, long timestamp, GLMapManager.DownloadURLCallback complete) -
CancelDownloadURL
public static void CancelDownloadURL(long id) -
DownloadDataSet
Creates map downloading tasks- Parameters:
mapInfo- map info objectdataSet- data set to download- Returns:
- download task
-
DownloadDataSets
@NonNull public static java.util.List<GLMapDownloadTask> DownloadDataSets(GLMapInfo mapInfo, int dataSets)Creates map downloading tasks- Parameters:
mapInfo- map info objectdataSets- data sets to download- Returns:
- download task
-
DeleteDataSets
Delete data sets associated with this map.- Parameters:
info- map to deletedataSets- data sets to delete
-
removeStateListener
/** Removes listener added byaddStateListener- Parameters:
val- Listener to remove- See Also:
addStateListener(StateListener)
-
addStateListener
Subscribes listener to events about map downloading progress.Event name is sent via
fieldName
finished0 at start, 1 at end of task
progressDownloadsent each time when download progress is changed.
task.addListener(new FieldListener(){ public void fieldValueChanged(Object obj, String fieldName, Object newValue){ ((MapsAdapter)listView.getAdapter()).notifyDataSetChanged(); } });- Parameters:
listener- that will receive events- See Also:
removeStateListener(StateListener)
-
postOnMain
public static void postOnMain(java.lang.Runnable runnable) -
getMapDownloadTasks
- Returns:
- Returns the list of created and not finished map download tasks
-
getDownloadTasks
@Nullable public static java.util.List<GLMapDownloadTask> getDownloadTasks(long mapID, int dataSets)Returns download tasks for maps- Parameters:
mapID- Id of mapdataSets- data sets of download tasks- Returns:
- Returns download task for map
-
getDownloadTask
Returns download tasks for maps- Parameters:
mapID- Id of mapdataSet- data set of download task- Returns:
- Returns download task for map
-
GetChildMaps
Return array of maps including submaps- Returns:
- Returns array of maps including submaps
-
GetMaps
- Returns:
- Returns array of maps
-
GetMapWithID
- Parameters:
mapID- MapId of map- Returns:
- Returns GLMapInfo for given mapID
-
AddMap
public static boolean AddMap(android.content.res.AssetManager mng, java.lang.String assetFileName, @Nullable ProgressCallback progressCallback)Adds vector map. Could be used for maps embed into the app resources.- Parameters:
mng-AssetManagerwhere custom map is locatedassetFileName- name of custom mapprogressCallback- callback to track progress of custom map caching- Returns:
- true if success
-
RemoveMap
public static void RemoveMap(java.lang.String fileName)Removes vector map from map manager. When removed it is safe to delete cached map file.- Parameters:
fileName- name of custom map
-
MapsAtPoint
Returns mapID of vector map that contains given point. If there is no maps that contain given point null is returned.- Parameters:
point- point that vector map must contain- Returns:
- mapID of vector map or null
-
FindNearestMap
Helper function iterates over maps param and returns closestGLMapInfoto the given point.- Parameters:
maps- array of map objectspoint- point that vector map must contain- Returns:
- mapID of vector map
-
DistanceToMap
Calculates distance from the map to the point- Parameters:
map- map objectpoint- some point- Returns:
- Measured distance in internal units
-
SortMaps
Sorts array ofGLMapInfoby distance from given point- Parameters:
maps- array of map objectspoint- center from where distance is calculated
-
SetTileDownloadingAllowed
public static void SetTileDownloadingAllowed(boolean val)AllowsGLMapManagerto download single tiles when downloaded vector maps does not contain data.- Parameters:
val- true to enable tile downloading
-
GetTileDownloadingAllowed
public static boolean GetTileDownloadingAllowed()- Returns:
- true if tile downloading allowed
-
VectorTilesAtBBox
Returns vector tiles that bbox contains or intersects- Parameters:
bbox- bbox of area- Returns:
- vector tiles that bbox contains or intersects
-
NotCachedVectorTilesAtBBox
Returns not cached vector tiles that bbox contains or intersects- Parameters:
bbox- bbox of area- Returns:
- not cached vector tiles that bbox contains or intersects
-
CacheTiles
Check if tiles are cached. If not - tile will be downloaded.- Parameters:
tiles- tiles to checkprogress- callbacks that will be called when one tile is checked.
-
SetDownloadStatsCallback
Callback will be called when subtask is completed or cancelled. It's used to analyze downloading speeds from different locations.- Parameters:
callback- callback to call when new stats available
-
GetDownloadedMapsCount
public static int GetDownloadedMapsCount()- Returns:
- Returns number of the maps that have any downloaded data
-
ElevationAtPoint
public static int ElevationAtPoint(double lat, double lon)Returns elevation at given point- Parameters:
lat- latitude of pointlon- longitude of point- Returns:
- elevation at point in meters or INT16_MIN if no downloaded data for this point
-
ElevationAtPointAsync
public static void ElevationAtPointAsync(double lat, double lon, GLMapManager.ElevationCallback callback)Asynchronous request of elevation- Parameters:
lat- latitude of pointlon- longitude of pointcallback- callback that will be called on completion
-