Android Open Source - android-open-street-map Tiles Downloader






From Project

Back to project page android-open-street-map.

License

The source code is released under:

Apache License

If you think the Android project android-open-street-map listed in this page is inappropriate, such as containing malicious code/tools or violating the copyright, please email info at java2s dot com, thanks.

Java Source Code

package com.android.lib.map.osm;
/* w  ww .j a  v a  2 s  .c o m*/
import java.util.ArrayList;
import java.util.List;

import com.android.lib.map.osm.models.MapTile;

import android.os.Handler;


public class TilesDownloader {

  private RemoteTileLoader mRemoteTileLoader;
  
  public TilesDownloader(Handler handler) {
    mRemoteTileLoader = new RemoteTileLoader(handler, 0);
  }
  
  public static List<Tile> getTilesForBoundaryBox(int mapTypeId, int minZoom, int maxZoom, final double north, final double south, 
      final double east, final double west) {
    
    List<Tile> tiles = new ArrayList<Tile>();
    
    for(int z = minZoom; z <= maxZoom; z++){
            final Tile upperLeft = Projection.getMapTileFromCoordinates(north, west, z);
            final Tile lowerRight = Projection.getMapTileFromCoordinates(south, east, z);
            
            for(int x = upperLeft.mapX; x <= lowerRight.mapX; x++){
                for(int y = upperLeft.mapY; y <= lowerRight.mapY; y++){
                  
                  tiles.add(new Tile(x, y, z, mapTypeId));
                  
                }
            }
    }
    return tiles;
  }

  public static int getNbTilesForBoundaryBox(int minZoom, int maxZoom, final double north, final double south, 
      final double east, final double west) {
    
    int count = 0;
    
    for(int z = minZoom; z <= maxZoom; z++){
            final Tile upperLeft = Projection.getMapTileFromCoordinates(north, west, z);
            final Tile lowerRight = Projection.getMapTileFromCoordinates(south, east, z);
            
            for(int x = upperLeft.mapX; x <= lowerRight.mapX; x++){
                for(int y = upperLeft.mapY; y <= lowerRight.mapY; y++){
                  
                  count++;
                  
                }
            }
    }
    return count;
  }
  
  
  /**
   * Check if tiles are in Db, if not download them 
   * @param Tiles list
   * @return number of tiles added for download
   */
  public int download(List<Tile> tiles) {
    int tileAdded = 0;
    for (Tile tile : tiles) {
          if (!MapTile.hasTile(tile)) {
            mRemoteTileLoader.queueTileRequest(tile);
            tileAdded++;
          }
    }
    return tileAdded;
  }  
}




Java Source Code List

com.android.lib.map.osm.BitmapScaler.java
com.android.lib.map.osm.Configuration.java
com.android.lib.map.osm.GeoPoint.java
com.android.lib.map.osm.InDbTileLoader.java
com.android.lib.map.osm.InMemoryTilesCache.java
com.android.lib.map.osm.LRUMap.java
com.android.lib.map.osm.ManageTilesCached.java
com.android.lib.map.osm.OsmMapViewBase.java
com.android.lib.map.osm.OsmMapView.java
com.android.lib.map.osm.OsmOverlayListener.java
com.android.lib.map.osm.Projection.java
com.android.lib.map.osm.RemoteAsyncTileLoader.java
com.android.lib.map.osm.RemoteTileLoader.java
com.android.lib.map.osm.RequestTile.java
com.android.lib.map.osm.RequestsQueue.java
com.android.lib.map.osm.ResizedTilesCache.java
com.android.lib.map.osm.TileHandler.java
com.android.lib.map.osm.Tile.java
com.android.lib.map.osm.TilesDownloader.java
com.android.lib.map.osm.TilesProvider.java
com.android.lib.map.osm.controller.IMapInteractionListener.java
com.android.lib.map.osm.helpers.CustomDatabaseHelper.java
com.android.lib.map.osm.helpers.OsmDatabaseHelper.java
com.android.lib.map.osm.helpers.ScaleGestureHelper.java
com.android.lib.map.osm.helpers.ScaleGesturePreFroyoHelper.java
com.android.lib.map.osm.models.MapEntity.java
com.android.lib.map.osm.models.MapTileEntity.java
com.android.lib.map.osm.models.MapTile.java
com.android.lib.map.osm.models.OsmModel.java
com.android.lib.map.osm.overlay.MapMarker.java
com.android.lib.map.osm.overlay.MapPolygon.java
com.android.lib.map.osm.overlay.MapTrack.java
com.android.lib.map.osm.overlay.OsmLocationOverlay.java
com.android.lib.map.osm.overlay.OsmMarkerOverlay.java
com.android.lib.map.osm.overlay.OsmOverlay.java
com.android.lib.map.osm.overlay.OsmPolygonOverlay.java
com.android.lib.map.osm.overlay.OsmTrackOverlay.java
com.android.lib.map.osm.utils.CountDownTimer.java
com.android.lib.map.osm.utils.DateUtil.java
com.android.lib.map.osm.utils.PolygonUtils.java
com.android.lib.map.osm.utils.PolylineUtil.java