Here is the actual code to show an image on top of the Google map. Regards Igor ======================= package com.map.overlay;
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 MyOverlay extends MapActivity { Bitmap bmp; // loaded bitmap in memory GeoPoint min; // top left corner (lat/long) GeoPoint max; // right bottom corner (lat/long) @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); bmp = BitmapFactory.decodeFile("/sdcard/test.bmp"); // load bitmap (can use JPG,PNG,etc.) min = new GeoPoint(37374000,-121913000); // bounding rectangle max = new GeoPoint(37375000,-121912000); MapView mapView = (MapView) findViewById(R.id.mapView); mapView.setSatellite(true); // switch to the satellite view 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(21); // set scale mapView.setBuiltInZoomControls(true); // enable zoom controls MapOverlay mapOverlay = new MapOverlay(); List<Overlay> listOfOverlays = mapView.getOverlays(); listOfOverlays.clear(); listOfOverlays.add(mapOverlay); mapView.invalidate(); } class MapOverlay extends Overlay { @Override public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) { // convert bitmap's bounding box into pixels Point top_left = new Point(); mapView.getProjection().toPixels(min, top_left); Point bottom_right = new Point(); mapView.getProjection().toPixels(max, bottom_right); // Prepare two rectangles (pixels) 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 ); // draw bitmap canvas.drawBitmap( bmp, src, dst, null); return true; } } @Override protected boolean isRouteDisplayed() { // TODO Auto-generated method stub return false; } } On Dec 8, 12:32 am, sal <suhailb...@gmail.com> wrote: > Thank guys for your suggestion > > @Frank > > What do you mean Mobile CAD, i want just a mark up on the JPEG image > based on predefined locations , thats it. > i thot Google Map API would provide me better support of doing markup > if i am able to convert JPEG image into google map > do u have any good pointer or reference to application which does mark > up on image. > > @Igor > Buddy, i have developed an application to draw a image on MapView , > logic wise i know its right > somewhere i am messing with certain objects which leads to exception . > so i requested for sample code so that i can cross verify > > regards > Sal > > On Dec 8, 6:04 am, ip332 <iprile...@gmail.com> wrote: > > > > > > > > > Sol, > > No offense, but ability to debug the application (especially when you > > have source code and debugging tools) is one of the most basic things > > any programmer must have. > > Yes, Android make "programming" looks like a pretty simple and easy > > activity however when you don't understand what are you doing and > > cannot debug the problem - you won't get anything good out of it. > > They say "There is no replacement for a displacement" about a car > > engine. Same here - you can't ask for a ready-to-use code to get more > > or less acceptable result unless you spent certain amount of time, > > nerves, coffee, etc. > > Nobody get it from the first time. Google it, ask questions but do not > > expect someone to solve your problem. > > > Anyway I will try to create a sample app but don't know when I'll have > > time (my current program belongs to the company) > > > On Dec 6, 11:54 pm, sal <suhailb...@gmail.com> wrote: > > > > thanks for ur concerns, > > > > @Frank > > > I have JPEG sketch of my apartment, getting just geocode of my > > > apartment doesnt serve my purpose. > > > i want to do location markup on that JPEG image, i have stored > > > location information which i want to mark on the image using android > > > API's > > > so i want to convert my image as a google map then use android API's > > > to mark location on that. let me know if u need more information. > > > > @Igor > > > As i am new to android > > > can u give me simple example with main activity illustrating on " how > > > to draw JPEG image on MapView with overlays to mark on the co-ordinate > > > of the image" > > > i tried doing it but i am getting NULL exception while using overlays > > > > rgds > > > Sal > > > > On Dec 6, 6:46 am, ip332 <iprile...@gmail.com> wrote: > > > > > I used the Overlay class for this purpose. > > > > Here is the main part of the MyOverlay::Draw() method: > > > > // convert bitmap's bounding box into pixels > > > > Point top_left = new Point(); > > > > mapView.getProjection().toPixels(min, top_left); > > > > Point bottom_right = new Point(); > > > > mapView.getProjection().toPixels(max, bottom_right); > > > > // Prepare two rectangles (pixels) > > > > 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 ); > > > > // draw bitmap > > > > canvas.drawBitmap( bmp, src, dst, null); > > > > Since it uses current mapView then zooming and panning are supported > > > > automatically. > > > > Obviously you need to know left top (GeoPoint min in the code above) > > > > and right bottom (GeoPoint max) coordinates for your picture (I used > > > > Google Earth for this purpose). > > > > Good luck. > > > > Igor > > > > > On Dec 5, 6:36 am, suhail ahmed <suhailb...@gmail.com> wrote: > > > > > > Hi, > > > > > > I have JPEG, PDF of sketch of my apartment, i want to make it as a > > > > > google > > > > > map so that i can use Google API's (geocoding, reverse geocoding) on > > > > > that. > > > > > > may i know the solution for the problem > > > > > > regards > > > > > Sal -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en