Ejemplo n.º 1
0
 /**
  * Set tiles to use. Set to null at finish.
  *
  * @param xtiles
  * @param ytiles
  */
 public void setTiles(TileMap tiles) {
   if (null == tiles) {
     if (null != mTileDrawTask) {
       if (!mTileDrawTask.getStatus().equals(AsyncTask.Status.FINISHED)) {
         /*
          * Always honor the latest query
          */
         mTileDrawTask.cancel(true);
       }
     }
   } else {
     tiles.setOrientation();
   }
   mTiles = tiles;
 }
Ejemplo n.º 2
0
  /** @param force */
  private void dbquery(boolean force) {

    if (mService == null) {
      return;
    }

    if (mImageDataSource == null) {
      return;
    }

    if (!mImageDataSource.isOpen()) {
      return;
    }

    if (null == mTiles) {
      return;
    }

    if (!force) {
      double offsets[] = new double[2];
      double p[] = new double[2];

      if (mImageDataSource.isWithin(
          mGpsParams.getLongitude(), mGpsParams.getLatitude(), offsets, p)) {
        /*
         * We are within same tile no need for query.
         */
        mMovement = new Movement(offsets, p);
        postInvalidate();
        return;
      }
    }

    /*
     * Do not overwhelm.
     */
    if (null != mTileDrawTask) {
      if (!mTileDrawTask.getStatus().equals(AsyncTask.Status.FINISHED)) {
        /*
         * Always honor the latest query
         */
        mTileDrawTask.cancel(true);
      }
    }

    mTileDrawTask = new TileDrawTask();
    mTileDrawTask.execute(mGpsParams.getLongitude(), mGpsParams.getLatitude());
  }