package org.osmdroid.google.wrapper; import org.osmdroid.api.IGeoPoint; import org.osmdroid.api.IMapController; import org.osmdroid.api.IMapView; import org.osmdroid.api.IProjection; import android.content.Context; import android.util.AttributeSet; /** * A wrapper for the Google {@link com.google.android.maps.MapView} class. * This implements {@link IMapView}, which is also implemented by the osmdroid * {@link org.osmdroid.views.MapView}. * * @author Neil Boyd * */ public class MapView implements IMapView { private final com.google.android.maps.MapView mMapView; public MapView(final com.google.android.maps.MapView pMapView) { mMapView = pMapView; } public MapView(final Context pContext, final AttributeSet pAttrs, final int pDefStyle) { this(new com.google.android.maps.MapView(pContext, pAttrs, pDefStyle)); } public MapView(final Context pContext, final AttributeSet pAttrs) { this(new com.google.android.maps.MapView(pContext, pAttrs)); } public MapView(final Context pContext, final String pApiKey) { this(new com.google.android.maps.MapView(pContext, pApiKey)); } @Override public IMapController getController() { return new MapController(mMapView.getController()); } @Override public IProjection getProjection() { return new Projection(mMapView); } @Override public int getZoomLevel() { return mMapView.getZoomLevel(); } @Override public int getLatitudeSpan() { return mMapView.getLatitudeSpan(); } @Override public int getLongitudeSpan() { return mMapView.getLongitudeSpan(); } @Override public IGeoPoint getMapCenter() { return new GeoPoint(mMapView.getMapCenter()); } @Override public int getMaxZoomLevel() { return mMapView.getMaxZoomLevel(); } @Override public void setBackgroundColor(final int pColor) { // this doesn't seem to have any visible effect on the Google MapView mMapView.setBackgroundColor(pColor); } // @Override public double getLatitudeSpanDouble() { return mMapView.getLatitudeSpan()/1E6; } // @Override public double getLongitudeSpanDouble() { return mMapView.getLongitudeSpan()/1E6; } }