Package globus.glmap

Class GLMapManager


  • public class GLMapManager
    extends java.lang.Object
    GLMapManager is a singleton object that manages offline maps
    • Constructor Detail

      • GLMapManager

        public GLMapManager()
    • Method Detail

      • Initialize

        public static boolean Initialize​(@NonNull
                                         android.content.Context context,
                                         @NonNull
                                         java.lang.String apiKey,
                                         @Nullable
                                         ProgressCallback progressCallback)
        Initializes GLMapManager

        During 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 context
        apiKey - API key of this application
        progressCallback - initialization progress callback
        Returns:
        true if initialized successfully
      • SetStorages

        public static boolean SetStorages​(@NonNull
                                          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 locations
        writeStorage - 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

        public static void UpdateMapList​(@Nullable
                                         GLMapManager.MapListUpdateCallback complete)
        Updates map list from server
        Parameters:
        complete - runnable, called when map update is complete
      • DownloadDataSet

        @NonNull
        public static GLMapDownloadTask DownloadDataSet​(@NonNull
                                                        GLMapInfo mapInfo,
                                                        int dataSet)
        Creates map downloading tasks
        Parameters:
        mapInfo - map info object
        dataSet - data set to download
        Returns:
        download task
      • DownloadDataSets

        @NonNull
        public static java.util.List<GLMapDownloadTask> DownloadDataSets​(@NonNull
                                                                         GLMapInfo mapInfo,
                                                                         int dataSets)
        Creates map downloading tasks
        Parameters:
        mapInfo - map info object
        dataSets - data sets to download
        Returns:
        download task
      • DeleteDataSets

        public static void DeleteDataSets​(@NonNull
                                          GLMapInfo info,
                                          int dataSets)
        Delete data sets associated with this map.
        Parameters:
        info - map to delete
        dataSets - data sets to delete
      • DownloadDataSet

        public static long DownloadDataSet​(int dataSet,
                                           java.lang.String path,
                                           GLMapBBox bbox,
                                           GLMapManager.DownloadCallback callback)
        Downloads custom data set
        Parameters:
        dataSet - Data set to download
        path - Full path to file where to download data set
        bbox - BBox of data to download
        callback - callbacks for download task
        Returns:
        taskID that can be used to cancel download
      • CancelDownloadTask

        public static void CancelDownloadTask​(long taskID)
        Cancel download task by id
        Parameters:
        taskID - id of task to cancel
      • addStateListener

        public static void addStateListener​(@NonNull
                                            GLMapManager.StateListener listener)
        Subscribes listener to events about map downloading progress.

        Event name is sent via fieldName
        finished 0 at start, 1 at end of task
        progressDownload sent 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​(@NonNull
                                      java.lang.Runnable runnable)
      • getMapDownloadTasks

        @NonNull
        public static java.util.List<GLMapDownloadTask> 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 map
        dataSets - data sets of download tasks
        Returns:
        Returns download task for map
      • getDownloadTask

        @Nullable
        public static GLMapDownloadTask getDownloadTask​(long mapID,
                                                        int dataSet)
        Returns download tasks for maps
        Parameters:
        mapID - Id of map
        dataSet - data set of download task
        Returns:
        Returns download task for map
      • GetChildMaps

        @NonNull
        public static GLMapInfo[] GetChildMaps()
        Return array of maps including submaps
        Returns:
        Returns array of maps including submaps
      • GetMaps

        @NonNull
        public static GLMapInfo[] GetMaps()
        Returns:
        Returns array of maps
      • GetMapWithID

        @Nullable
        public static GLMapInfo GetMapWithID​(long mapID)
        Parameters:
        mapID - MapId of map
        Returns:
        Returns GLMapInfo for given mapID
      • AddDataSet

        public static boolean AddDataSet​(int dataSet,
                                         @Nullable
                                         GLMapBBox bbox,
                                         @NonNull
                                         java.lang.String path,
                                         @Nullable
                                         android.content.res.AssetManager assetManager,
                                         @Nullable
                                         ProgressCallback progressCallback)
        Adds vector map. Could be used for maps embed into the app resources.
        Parameters:
        dataSet - Type of data set
        bbox - optional bbox of data set
        path - path for custom data set
        assetManager - if not `null` will extract file from assets and cache it
        progressCallback - callback to track progress of caching
        Returns:
        true if success
      • RemoveDataSet

        public static void RemoveDataSet​(int dataSet,
                                         @NonNull
                                         java.lang.String fileName)
        Removes vector map from map manager. When removed it is safe to delete cached map file.
        Parameters:
        dataSet - Type of data set
        fileName - name of custom map
      • MapsAtPoint

        @Nullable
        public static GLMapInfo[] MapsAtPoint​(@NonNull
                                              MapPoint point)
        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

        @NonNull
        public static GLMapInfo FindNearestMap​(@NonNull
                                               GLMapInfo[] maps,
                                               @NonNull
                                               MapPoint point)
        Helper function iterates over maps param and returns closest GLMapInfo to the given point.
        Parameters:
        maps - array of map objects
        point - point that vector map must contain
        Returns:
        mapID of vector map
      • DistanceToMap

        public static double DistanceToMap​(@NonNull
                                           GLMapInfo map,
                                           @NonNull
                                           MapPoint point)
        Calculates distance from the map to the point
        Parameters:
        map - map object
        point - some point
        Returns:
        Measured distance in internal units
      • SortMaps

        public static void SortMaps​(@NonNull
                                    GLMapInfo[] maps,
                                    @NonNull
                                    MapPoint point)
        Sorts array of GLMapInfo by distance from given point
        Parameters:
        maps - array of map objects
        point - center from where distance is calculated
      • SetTileDownloadingAllowed

        public static void SetTileDownloadingAllowed​(boolean val)
        Allows GLMapManager to 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

        public static long[] VectorTilesAtBBox​(@NonNull
                                               GLMapBBox bbox)
        Returns vector tiles that bbox contains or intersects
        Parameters:
        bbox - bbox of area
        Returns:
        vector tiles that bbox contains or intersects
      • NotCachedVectorTilesAtBBox

        public static long[] NotCachedVectorTilesAtBBox​(@NonNull
                                                        GLMapBBox bbox)
        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
      • SetDownloadStatsCallback

        public static void SetDownloadStatsCallback​(@Nullable
                                                    GLMapManager.DownloadStatsCallback callback)
        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 point
        lon - 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,
                                                 @NonNull
                                                 GLMapManager.ElevationCallback callback)
        Asynchronous request of elevation
        Parameters:
        lat - latitude of point
        lon - longitude of point
        callback - callback that will be called on completion