[Solved] How to add a PNG to MapOverlay?

Put problem concerning MapActivities, MapViews, Overlays and GPS in this forum.

[Solved] How to add a PNG to MapOverlay?

Postby sommeralex » Thu Mar 13, 2008 7:42 pm

Hello..

I couldnt find any method yet drawing a PNG from my R.drawables to the canvas..

any ideas??!

alex

[solved] as shown in plusmunus's example, i had to overwrite the constructor of my overlay class taking the mapActivity as a parameter. with this p, i can get p.getRessources to make:

Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. Bitmap bm = BitmapFactory.decodeResource(mapView.getResources(), R.drawable.myPic);
  2.  
Parsed in 0.034 seconds, using GeSHi 1.0.8.4
sommeralex
Experienced Developer
Experienced Developer
 
Posts: 95
Joined: Sun Jan 20, 2008 3:12 am
Location: Vienna

Top

image over the Overlay

Postby com2usprav » Thu Apr 03, 2008 2:15 pm

here is the code

// Place the image in the Res /drawable


Syntax: [ Download ] [ Hide ]
Using java Syntax Highlighting
  1. package com.appl.map;
  2. import android.graphics.*;
  3. import com.google.android.maps.Overlay;
  4. import com.google.googlenav.Placemark;
  5. import android.content.Context;
  6. import android.graphics.drawable.Drawable;
  7. import com.google.googlenav.Search;
  8. import com.google.android.maps.Point;
  9.  
  10. public class MyOverlay extends Overlay
  11. {
  12.             Point pointcentermall;
  13.            
  14.             BrowseMap mMap;
  15.             Paint paint1 = new Paint();
  16.             Paint paint2 = new Paint();
  17.             Paint paint3 = new Paint();
  18.             Paint paint4 = new Paint();
  19.             Paint paint5 = new Paint();
  20.             Paint paint6 = new Paint();
  21.            
  22.             //
  23.             Paint paintinfo =new Paint();
  24.             RectF r1= new RectF(5,395,315,430);
  25.             RectF r2= new RectF(5,8,315,400);
  26.             // info rect
  27.             RectF r3= new RectF(5,5,315,55);  
  28.              Drawable image;
  29.             public MyOverlay(BrowseMap map, Context context)
  30.             {
  31.                
  32.                  mMap=map;
  33.                 image=context.getResources().getDrawable(R.drawable.icon);
  34.                 paint2.setARGB(255,255,0,255);
  35.                 paint3.setARGB(100,100,100,100);
  36.                 paint4.setARGB(255,255,0,0);
  37.                 paint5.setARGB(255,0,0,255);
  38.                 paint6.setARGB(255,0,255,0);
  39.                 paintinfo.setARGB(255,104,102,0);
  40.                
  41.             }
  42.            public void draw(Canvas canvas, PixelCalculator pixelCalculator, boolean b)
  43.             {
  44.                 super.draw(canvas, pixelCalculator, b);
  45.                 canvas.drawColor(100);
  46.                
  47.                 canvas.drawRect(r3, paintinfo);
  48.                
  49.               // INFORMATION  
  50.                 canvas.drawText("LANDMARK ICON",120,18,paint4);
  51.                 canvas.drawCircle(65,30, 5, paint1);
  52.                 canvas.drawText("THEATRE ",75,32,paint1);
  53.                 canvas.drawCircle(65,45, 5, paint4);
  54.                 canvas.drawText("CAB",75,48,paint1);
  55.                 canvas.drawCircle(162,30, 5, paint5);
  56.                 canvas.drawText("MALL",175,32,paint1);
  57.                 canvas.drawCircle(162,45, 5, paint6);
  58.                 canvas.drawText("PARK",175,48,paint1);
  59.                 canvas.drawRect(r2, paint3);
  60.                
  61.                
  62.                 image.setBounds(5,8,50,53);
  63.                 image.draw(canvas);
  64.                 Search searchtheatre = mMap.getSearchtheatre();
  65.                 if (searchtheatre != null)
  66.                 {
  67.                         for (int i = 0; i < searchtheatre.numPlacemarks(); i++)
  68.                         {
  69.                         Placemark placemarktheatre = searchtheatre.getPlacemark(i);
  70.                         int[] screenCoordstheatre = new int[2];
  71.                         Point pointtheatre = new Point(placemarktheatre.getLocation().getLatitude(),
  72.                                 placemarktheatre.getLocation().getLongitude());
  73.                         pixelCalculator.getPointXY(pointtheatre, screenCoordstheatre);
  74.                         canvas.drawCircle(screenCoordstheatre[0], screenCoordstheatre[1], 5, paint1);
  75.                        
  76.                        
  77.                         } // End of For Loop    
  78.                        
  79.                 }
  80.                 else
  81.                 {
  82.                         //canvas.drawText("NO THEATRE",225,25,paint1);
  83.                 }
  84.                
  85.                
  86.                 // SEARCHING AND DISPLAYING CAB
  87.                 Search searchcab = mMap.getSearchcab();
  88.                 if (searchcab != null)
  89.                 {
  90.                         for (int j = 0; j < searchcab.numPlacemarks(); j++)
  91.                         {
  92.                         Placemark placemarkcab = searchcab.getPlacemark(j);
  93.                         int[] screencabCoords = new int[2];
  94.                         Point pointcab = new Point(placemarkcab.getLocation().getLatitude(),
  95.                                 placemarkcab.getLocation().getLongitude());
  96.                         pixelCalculator.getPointXY(pointcab, screencabCoords);
  97.                         canvas.drawCircle(screencabCoords[0], screencabCoords[1], 5, paint4);
  98.                        
  99.                        
  100.                         } // End of For Loop    
  101.                        
  102.                 }
  103.                 else
  104.                 {
  105.                         //canvas.drawText("NO CAB",225,25,paint1);
  106.                 }
  107.                
  108.                 // SEARCH FOR PARK
  109.                 Search searchmall = mMap.getSearchmall();
  110.                 if (searchmall != null)
  111.                 {
  112.                         for (int k = 0; k < searchmall.numPlacemarks(); k++)
  113.                         {
  114.                         Placemark placemarkmall = searchmall.getPlacemark(k);
  115.                         int[] screenmallCoords = new int[2];
  116.                         Point pointmall = new Point(placemarkmall.getLocation().getLatitude(),
  117.                                 placemarkmall.getLocation().getLongitude());
  118.                         pixelCalculator.getPointXY(pointmall, screenmallCoords);
  119.                         canvas.drawCircle(screenmallCoords[0], screenmallCoords[1], 5, paint5);
  120.                         canvas.drawText(Integer.toString(k + 1),screenmallCoords[0] ,screenmallCoords[1] , paintinfo);
  121.                        
  122.                           pointcentermall=pointmall;
  123.                        
  124.                                        
  125.                         } // End of For Loop    
  126.                        
  127.                 }
  128.                 else
  129.                 {
  130.                         //canvas.drawText("NO mall",225,25,paint1);
  131.                 }
  132.                
  133.                
  134.                 Search searchpark = mMap.getSearchpark();
  135.                 if (searchpark != null)
  136.                 {
  137.                         for (int k = 0; k < searchpark.numPlacemarks(); k++)
  138.                         {
  139.                         Placemark placemarkpark = searchpark.getPlacemark(k);
  140.                         int[] screenparkCoords = new int[2];
  141.                         Point pointpark = new Point(placemarkpark.getLocation().getLatitude(),
  142.                                 placemarkpark.getLocation().getLongitude());
  143.                         pixelCalculator.getPointXY(pointpark, screenparkCoords);
  144.                         canvas.drawCircle(screenparkCoords[0], screenparkCoords[1], 5, paint6);
  145.                        
  146.                        
  147.                         } // End of For Loop    
  148.                        
  149.                 }
  150.                 else
  151.                 {
  152.                         //canvas.drawText("no park",225,25,paint1);
  153.                 }
  154.                 canvas.drawRect(r1, paint2);
  155.                 canvas.drawText("ANDROID DEVELOPER CHALLENGE I APPLICATION",20,420,paint5);
  156.                
  157.                
  158.             } // end of drawMethod  
  159.            
  160.              
  161. } // end of myOverLay
Parsed in 0.055 seconds, using GeSHi 1.0.8.4
User avatar
com2usprav
Developer
Developer
 
Posts: 26
Joined: Sat Mar 29, 2008 3:28 pm
Location: Bangalore

Top

Return to Map Problems

Who is online

Users browsing this forum: Exabot [Bot] and 3 guests