> How to covert this to the correct microdegrees for GeoPoint()?
http://www.earthpoint.us/Convert.aspx#PositionColumn

Do not decode bitmap inside drawing handler because it must be as
quick as possible.
Since this resource is unlikely to be changed between two drawing
calls it is better to load this bitmap during onCreate() or onResume()
processing.


On Mar 13, 12:26 am, Bastiaan <[email protected]> wrote:
> It must be an overlay. It's a ski piste map.
>
> If i use the following GeoPoints than the overlay is visible, but not
> on the correct location:
>
> min = new GeoPoint(45321389,6294167);
> max = new GeoPoint(45423889,6401667);
>
> If i use this GeoPoints than it's NOT visible:
>
> min = new GeoPoint(45285650,6174317);
> max = new GeoPoint(45197750,6306150);
>
> The correct points are (in the programs "MapEdit" and "Google Maps"):
> Left upper corner: N45°17.139' E6°10.459'
> Right lower corner: N45°11.865' E6°18.369'
>
> How to covert this to the correct microdegrees for GeoPoint()?
>
> On 12 mrt, 05:02, lbendlin <[email protected]> wrote:
>
>
>
>
>
>
>
> > Does it have to be an overlay? If it's just an image then you can
> > simply add it as a view to the mapView.
>
> > An overlay is just a layer. Unless you fill it with objects, nothing
> > will show.
>
> > On Mar 10, 1:54 pm, Bastiaan <[email protected]> wrote:
>
> > > Hello,
>
> > > I want to overlay a map image (.jpg) over the Google Maps mapview.
> > > The problem is: The overlay image is not showing, who knows what's the
> > > problem?
>
> > > There is no error in logcat and the MapView is working.
>
> > > The code:
>
> > > package nl.ultimo.android.skikaart;
>
> > > import java.util.List;
> > > import com.google.android.maps.GeoPoint;
> > > import com.google.android.maps.MapActivity;
> > > import com.google.android.maps.MapController;
> > > import com.google.android.maps.MapView;
> > > import com.google.android.maps.Overlay;
>
> > > import android.graphics.Bitmap;
> > > import android.graphics.BitmapFactory;
> > > import android.graphics.Canvas;
> > > import android.graphics.Point;
> > > import android.graphics.Rect;
> > > import android.os.Bundle;
>
> > > public class MapsActivity extends MapActivity
> > > {
> > >          Bitmap          bmp;    //Loaded bitmap in memory
> > >      GeoPoint        min;    //Top left corner (lat/long)
> > >      GeoPoint        max;    //Right bottom corner (lat/long)
>
> > >     /** Called when the activity is first created. */
> > >     @Override
> > >     public void onCreate(Bundle savedInstanceState)
> > >     {
> > >         super.onCreate(savedInstanceState);
> > >         setContentView(R.layout.main);
>
> > >         float lat1 = 45.19775f;
> > >         float lng1 = 6.28418333f;
> > >         float lat2 = 45.2636667f;
> > >         float lng2 = 6.17431667f;
>
> > >         min = new GeoPoint((int)(lat1 * 1E6), (int)(lng1 *
> > > 1E6));               // bounding rectangle
> > >         max = new GeoPoint((int)(lat2 * 1E6), (int)(lng2 * 1E6));
>
> > >         MapView mapView = (MapView) findViewById(R.id.mapView);
> > >         MapController ctrl = mapView.getController();
>
> > >         int x = (min.getLongitudeE6() + max.getLongitudeE6())/ 2;  //
> > > Select map center
> > >         int y = (min.getLatitudeE6() + max.getLatitudeE6())/ 2;
>
> > >         ctrl.setCenter(new GeoPoint(y,x));
> > >         ctrl.setZoom(12);                 //Set scale
> > >         mapView.setBuiltInZoomControls(true); //Enable zoom controls
>
> > >         //Add overlay
> > >         MapOverlay mapOverlay = new MapOverlay();
> > >         List<Overlay> listOfOverlays = mapView.getOverlays();
> > >         listOfOverlays.clear();
> > >         listOfOverlays.add(mapOverlay);
>
> > >         mapView.invalidate();
> > >     }
>
> > >     class MapOverlay extends com.google.android.maps.Overlay
> > >     {
> > >         @Override
> > >         public boolean draw(Canvas canvas, MapView mapView, boolean
> > > shadow, long when)
> > >         {
> > >             super.draw(canvas, mapView, shadow);
>
> > >             //Translate the GeoPoint to screen pixels
> > >             Point screenPts = new Point();
> > >             mapView.getProjection().toPixels(min, screenPts);
>
> > >             //The overlay image
> > >             Bitmap bmp = BitmapFactory.decodeResource(getResources(),
> > > R.drawable.skikaart);
>
> > >             //Prepare two rectangles (pixels)
> > >             Point top_left = new Point();
> > > mapView.getProjection().toPixels(min, top_left);
> > >             Point bottom_right = new Point();
> > > mapView.getProjection().toPixels(max, bottom_right);
>
> > >             Rect src = new Rect( 0,0,bmp.getWidth() - 1,
> > > bmp.getHeight() - 1 );
> > >             Rect dst = new Rect( top_left.x,
> > > bottom_right.y,bottom_right.x,top_left.y );
>
> > >             canvas.drawBitmap(bmp, src, dst, null);
>
> > >             return true;
> > >         }
> > >     }
>
> > >     @Override
> > >     protected boolean isRouteDisplayed() {
> > >         return false;
> > >     }
>
> > > }

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to