GeoPointImageOverlay.java
上传用户:vip_99
上传日期:2021-03-27
资源大小:61159k
文件大小:2k
源码类别:

android开发

开发平台:

Java

  1. package irdc.ex10_06;
  2. import android.graphics.Bitmap;
  3. import android.graphics.BitmapFactory;
  4. import android.graphics.Canvas;
  5. import android.graphics.Paint;
  6. import android.graphics.Point;
  7. import android.location.Location;
  8. import com.google.android.maps.GeoPoint;
  9. import com.google.android.maps.MapView;
  10. import com.google.android.maps.Overlay;
  11. import com.google.android.maps.Projection;
  12. public class GeoPointImageOverlay extends Overlay
  13. {
  14.   private Location mLocation;
  15.   private int drawableID;
  16.   private double geoLatitude,geoLongitude;
  17.   
  18.   /* 建构方法一,传入Location对象 */
  19.   public GeoPointImageOverlay(Location location, int drawableID)
  20.   {
  21.     this.mLocation = location;
  22.     this.drawableID = drawableID;
  23.     /* 取得Location的经纬度 */
  24.     this.geoLatitude = this.mLocation.getLatitude()*1E6;
  25.     this.geoLongitude = this.mLocation.getLongitude()*1E6;
  26.   }
  27.   
  28.   public GeoPointImageOverlay
  29.   (Double geoLatitude, Double geoLongitude, int drawableID)
  30.   {
  31.     this.geoLatitude = geoLatitude*1E6;
  32.     this.geoLongitude = geoLongitude*1E6;
  33.     this.drawableID = drawableID;
  34.   }
  35.   
  36.   public GeoPointImageOverlay(GeoPoint gp, int drawableID)
  37.   {
  38.     this.geoLatitude = gp.getLatitudeE6();
  39.     this.geoLongitude = gp.getLongitudeE6();
  40.     this.drawableID = drawableID;
  41.   }
  42.   
  43.   @Override
  44.   public boolean draw
  45.   (Canvas canvas, MapView mapView, boolean shadow, long when)
  46.   {
  47.     Projection projection = mapView.getProjection();
  48.     if (shadow == false)
  49.     {
  50.       GeoPoint gp = 
  51.       new GeoPoint((int)this.geoLatitude,(int)this.geoLongitude);
  52.       /* 将Location转成Point对象 */
  53.       Point point = new Point();
  54.       projection.toPixels(gp, point);
  55.       
  56.       /* 设置笔刷 */
  57.       Paint paint = new Paint();
  58.       paint.setAntiAlias(true);
  59.             
  60.       /* 绘制Overlay */
  61.       //canvas.drawOval(oval, paint);
  62.       Bitmap bm = BitmapFactory.decodeResource
  63.       (mapView.getResources(), this.drawableID); 
  64.       canvas.drawBitmap(bm, point.x, point.y, paint);
  65.     }
  66.     return super.draw(canvas, mapView, shadow, when);
  67.   }
  68.   
  69.   public void updateLocation(Location location)
  70.   {
  71.     this.mLocation = location;
  72.   }
  73.   
  74.   public Location getLocation()
  75.   {
  76.     return mLocation;
  77.   }
  78. }