Android Open Source - SmartNavi Ground Overlay






From Project

Back to project page SmartNavi.

License

The source code is released under:

Apache License

If you think the Android project SmartNavi 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 org.osmdroid.bonuspack.overlays;
//w w  w . j  a  va  2  s.c  om
import org.osmdroid.DefaultResourceProxyImpl;
import org.osmdroid.ResourceProxy;
import org.osmdroid.util.GeoPoint;
import org.osmdroid.views.MapView;
import org.osmdroid.views.Projection;
import org.osmdroid.views.overlay.Overlay;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Point;
import android.graphics.drawable.Drawable;

/**
 * A ground overlay is an image that is fixed to a map. 
 * Mimics the GroundOverlay class from Google Maps Android API v2 as much as possible. Main differences:<br/>
 * - Doesn't support: Z-Index, setPositionFromBounds<br/>
 * - image can be any standard Android Drawable, instead of the BitmapDescriptor introduced in Maps API. <br/>
 * 
 * @author M.Kergall
 *
 */
public class GroundOverlay extends Overlay {

  protected Drawable mImage;
  protected GeoPoint mPosition;
  protected float mBearing;
  protected float mWidth, mHeight;
  protected float mTransparency;
  public final static float NO_DIMENSION = -1.0f;
  protected Point mPositionPixels, mSouthEastPixels;
  
  public GroundOverlay(Context ctx) {
    this(new DefaultResourceProxyImpl(ctx));
  }

  public GroundOverlay(final ResourceProxy resourceProxy) {
    super(resourceProxy);
    mWidth = 10.0f;
    mHeight = NO_DIMENSION;
    mBearing = 0.0f;
    mTransparency = 0.0f;
    mPositionPixels = new Point();
    mSouthEastPixels = new Point();
  }

  public void setImage(Drawable image){
    mImage = image;
  }
  
  public Drawable getImage(){
    return mImage;
  }
  
  public GeoPoint getPosition(){
    return mPosition.clone();
  }
  
  public void setPosition(GeoPoint position){
    mPosition = position.clone();
  }

  public float getBearing(){
    return mBearing;
  }
  
  public void setBearing(float bearing){
    mBearing = bearing;
  }
  
  public void setDimensions(float width){
    mWidth = width;
    mHeight = NO_DIMENSION;
  }
  
  public void setDimensions(float width, float height){
    mWidth = width;
    mHeight = height;
  }
  
  public float getHeight(){
    return mHeight;
  }
  
  public float getWidth(){
    return mWidth;
  }
  
  public void setTransparency(float transparency){
    mTransparency = transparency;
  }
  
  public float getTransparency(){
    return mTransparency;
  }
  
  @Override protected void draw(Canvas canvas, MapView mapView, boolean shadow) {
    if (shadow)
      return;
    if (mImage == null)
      return;
    
    if (mHeight == NO_DIMENSION){
      mHeight = mWidth * mImage.getIntrinsicHeight() / mImage.getIntrinsicWidth();
    }
    
    final Projection pj = mapView.getProjection();
    
    pj.toPixels(mPosition, mPositionPixels);
    GeoPoint pEast = mPosition.destinationPoint(mWidth, 90.0f);
    GeoPoint pSouthEast = pEast.destinationPoint(mHeight, -180.0f);
    pj.toPixels(pSouthEast, mSouthEastPixels);
    int width = mSouthEastPixels.x-mPositionPixels.x;
    int height = mSouthEastPixels.y-mPositionPixels.y;
    mImage.setBounds(-width/2, -height/2, width/2, height/2);
    
    mImage.setAlpha(255-(int)(mTransparency*255));

    drawAt(canvas, mImage, mPositionPixels.x, mPositionPixels.y, false, -mBearing);
  }

}




Java Source Code List

com.ilm.sandwich.BuildConfig.java
com.ilm.sandwich.Config.java
com.ilm.sandwich.GoogleMapActivity.java
com.ilm.sandwich.Info.java
com.ilm.sandwich.MySupportMapFragment.java
com.ilm.sandwich.OsmMapActivity.java
com.ilm.sandwich.Settings.java
com.ilm.sandwich.Smartgeo.java
com.ilm.sandwich.StartChooser.java
com.ilm.sandwich.TouchableWrapper.java
com.ilm.sandwich.helferklassen.HttpRequests.java
com.ilm.sandwich.helferklassen.Locationer.java
com.ilm.sandwich.helferklassen.MapDownload.java
com.ilm.sandwich.helferklassen.MyItemizedOverlay.java
com.ilm.sandwich.helferklassen.PlacesAutoComplete.java
com.ilm.sandwich.helferklassen.PlacesTextSearch.java
com.ilm.sandwich.helferklassen.Rechnung.java
com.ilm.sandwich.helferklassen.SuggestionsAdapter.java
org.osmdroid.bonuspack.BuildConfig.java
org.osmdroid.bonuspack.BuildConfig.java
org.osmdroid.bonuspack.cachemanager.CacheManager.java
org.osmdroid.bonuspack.clustering.GridMarkerClusterer.java
org.osmdroid.bonuspack.clustering.MarkerClusterer.java
org.osmdroid.bonuspack.clustering.StaticCluster.java
org.osmdroid.bonuspack.kml.ColorStyle.java
org.osmdroid.bonuspack.kml.IconStyle.java
org.osmdroid.bonuspack.kml.KmlDocument.java
org.osmdroid.bonuspack.kml.KmlFeature.java
org.osmdroid.bonuspack.kml.KmlFolder.java
org.osmdroid.bonuspack.kml.KmlGeometry.java
org.osmdroid.bonuspack.kml.KmlGroundOverlay.java
org.osmdroid.bonuspack.kml.KmlLineString.java
org.osmdroid.bonuspack.kml.KmlMultiGeometry.java
org.osmdroid.bonuspack.kml.KmlPlacemark.java
org.osmdroid.bonuspack.kml.KmlPoint.java
org.osmdroid.bonuspack.kml.KmlPolygon.java
org.osmdroid.bonuspack.kml.LineStyle.java
org.osmdroid.bonuspack.kml.Style.java
org.osmdroid.bonuspack.location.FlickrPOIProvider.java
org.osmdroid.bonuspack.location.GeoNamesPOIProvider.java
org.osmdroid.bonuspack.location.GeocoderGisgraphy.java
org.osmdroid.bonuspack.location.GeocoderNominatimOld.java
org.osmdroid.bonuspack.location.GeocoderNominatim.java
org.osmdroid.bonuspack.location.NominatimPOIProvider.java
org.osmdroid.bonuspack.location.POI.java
org.osmdroid.bonuspack.location.PicasaPOIProvider.java
org.osmdroid.bonuspack.mapsforge.GenericMapView.java
org.osmdroid.bonuspack.mapsforge.MapsForgeTileModuleProvider.java
org.osmdroid.bonuspack.mapsforge.MapsForgeTileProvider.java
org.osmdroid.bonuspack.mapsforge.MapsForgeTileSource.java
org.osmdroid.bonuspack.overlays.DefaultInfoWindow.java
org.osmdroid.bonuspack.overlays.ExtendedOverlayItem.java
org.osmdroid.bonuspack.overlays.FolderOverlay.java
org.osmdroid.bonuspack.overlays.GroundOverlay.java
org.osmdroid.bonuspack.overlays.InfoWindow.java
org.osmdroid.bonuspack.overlays.ItemizedOverlayWithBubble.java
org.osmdroid.bonuspack.overlays.MapEventsOverlay.java
org.osmdroid.bonuspack.overlays.MapEventsReceiver.java
org.osmdroid.bonuspack.overlays.MarkerInfoWindow.java
org.osmdroid.bonuspack.overlays.Marker.java
org.osmdroid.bonuspack.overlays.Polygon.java
org.osmdroid.bonuspack.overlays.Polyline.java
org.osmdroid.bonuspack.routing.GoogleRoadManager.java
org.osmdroid.bonuspack.routing.MapQuestRoadManager.java
org.osmdroid.bonuspack.routing.OSRMRoadManager.java
org.osmdroid.bonuspack.routing.RoadLeg.java
org.osmdroid.bonuspack.routing.RoadManager.java
org.osmdroid.bonuspack.routing.RoadNode.java
org.osmdroid.bonuspack.routing.Road.java
org.osmdroid.bonuspack.utils.BonusPackHelper.java
org.osmdroid.bonuspack.utils.DouglasPeuckerReducer.java
org.osmdroid.bonuspack.utils.HttpConnection.java
org.osmdroid.bonuspack.utils.PolylineEncoder.java
org.osmdroid.bonuspack.utils.WebImageCache.java