返回列表 發帖

MyGoogleMap

static final int INITIAL_ZOOM_LEVEL = 20;
static final int INITIAL_LATITUDE = 25040255;
static final int INITIAL_LONGITUDE = 12152377;

附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

TOP

  1. package com.example.mygooglemap;

  2. import com.google.android.maps.GeoPoint;
  3. import com.google.android.maps.MapActivity;
  4. import com.google.android.maps.MapController;
  5. import com.google.android.maps.MapView;
  6. import com.google.android.maps.Overlay;
  7. import com.google.android.maps.Projection;

  8. import android.graphics.Canvas;
  9. import android.graphics.Color;
  10. import android.graphics.Paint;
  11. import android.graphics.Point;
  12. import android.graphics.RectF;
  13. import android.location.Location;
  14. import android.location.LocationListener;
  15. import android.location.LocationManager;
  16. import android.os.Bundle;
  17. import android.app.Activity;
  18. import android.view.Menu;

  19. public class MainActivity extends MapActivity implements LocationListener{
  20.        
  21.         static final int INITIAL_ZOOM_LEVEL = 20;
  22.         static final int INITIAL_LATITUDE = 25040255;
  23.         static final int INITIAL_LONGITUDE = 12152377;
  24.        
  25.         private MapView mapView;
  26.         private MapController mapController;
  27.         private LocationManager locationManager;
  28.        
  29.         private void updateMap(GeoPoint center)
  30.         {
  31.                  MyPointOverlay myPointOverlay = new MyPointOverlay(center);
  32.              mapView.getOverlays().clear();
  33.              mapView.getOverlays().add(myPointOverlay);
  34.              mapController.animateTo(center);
  35.         }
  36.        
  37.     @Override
  38.     public void onCreate(Bundle savedInstanceState) {
  39.         super.onCreate(savedInstanceState);
  40.         setContentView(R.layout.activity_main);
  41.         
  42.         mapView = (MapView)findViewById(R.id.mapview);
  43.         mapView.setBuiltInZoomControls(true);
  44.         
  45.         GeoPoint center = new GeoPoint(INITIAL_LATITUDE,INITIAL_LONGITUDE);
  46.         
  47.         mapController = mapView.getController();
  48.         mapController.setZoom(INITIAL_ZOOM_LEVEL);
  49.         mapController.setCenter(center);
  50.         updateMap(center);
  51.         
  52.         locationManager = (LocationManager)this.getSystemService(LOCATION_SERVICE);
  53.         locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,0,this);
  54.         locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000,0,this);
  55.         
  56.     }

  57.     @Override
  58.     public boolean onCreateOptionsMenu(Menu menu) {
  59.         getMenuInflater().inflate(R.menu.activity_main, menu);
  60.         return true;
  61.     }

  62.         public void onLocationChanged(Location location) {
  63.                 // TODO Auto-generated method stub
  64.                  GeoPoint center = new GeoPoint((int)(location.getLatitude()*1E6),(int)(location.getLongitude()*1E6));
  65.              updateMap(center);
  66.         }

  67.         public void onProviderDisabled(String provider) {
  68.                 // TODO Auto-generated method stub
  69.                
  70.         }

  71.         public void onProviderEnabled(String provider) {
  72.                 // TODO Auto-generated method stub
  73.                
  74.         }

  75.         public void onStatusChanged(String provider, int status, Bundle extras) {
  76.                 // TODO Auto-generated method stub
  77.                
  78.         }

  79.         @Override
  80.         protected boolean isRouteDisplayed() {
  81.                 // TODO Auto-generated method stub
  82.                 return false;
  83.         }

  84. }

  85. class MyPointOverlay extends Overlay
  86. {
  87.         private GeoPoint geoPoint;
  88.         private int mRadius = 7;
  89.         private int sRadius = 5;
  90.        
  91.         public MyPointOverlay(GeoPoint gp)
  92.         {
  93.                 geoPoint = gp;
  94.         }
  95.        
  96.         @Override
  97.         public boolean draw(Canvas canvas,MapView mapView,boolean shadow,long when)
  98.         {
  99.                 Paint paint = new Paint();
  100.                 paint.setAntiAlias(true);
  101.                 paint.setColor(Color.RED);
  102.                
  103.                 Point drawPoint = new Point();
  104.                 Projection projection = mapView.getProjection();
  105.                 projection.toPixels(geoPoint, drawPoint);
  106.                
  107.                 RectF ovalPoint = new RectF(drawPoint.x-mRadius,
  108.                                                                         drawPoint.y-mRadius,
  109.                                                                         drawPoint.x+mRadius,
  110.                                                                         drawPoint.y+mRadius);
  111.                
  112.                 canvas.drawOval(ovalPoint, paint);
  113.                 paint.setColor(Color.BLUE);  
  114.                 ovalPoint = new RectF(drawPoint.x - sRadius,
  115.                                                           drawPoint.y - sRadius,
  116.                                                           drawPoint.x + sRadius,
  117.                                                           drawPoint.y + sRadius);
  118.                 canvas.drawOval(ovalPoint, paint);
  119.                
  120.                 return super.draw(canvas, mapView, shadow, when);
  121.         }
  122.        
  123. }
複製代碼

TOP

  1. <uses-library android:name="com.google.android.maps" />
複製代碼

TOP

  1. canvas.drawOval(ovalPoint, paint);
  2.                 paint.setColor(Color.BLUE);  
  3.                 ovalPoint = new RectF(drawPoint.x - sRadius,
  4.                                                           drawPoint.y - sRadius,
  5.                                                           drawPoint.x + sRadius,
  6.                                                           drawPoint.y + sRadius);
  7.                 canvas.drawOval(ovalPoint, paint);
複製代碼

TOP

  1. RectF ovalPoint = new RectF(drawPoint.x-mRadius,
  2.                                                                         drawPoint.y-mRadius,
  3.                                                                         drawPoint.x+mRadius,
  4.                                                                         drawPoint.y+mRadius);
複製代碼

TOP

  1. @Override
  2.         public boolean draw(Canvas canvas,MapView mapView,boolean shadow,long when)
  3.         {
  4.                 Paint paint = new Paint();
  5.                 paint.setAntiAlias(true);
  6.                 paint.setColor(Color.RED);
  7.                
  8.                 Point drawPoint = new Point();
  9.                 Projection projection = mapView.getProjection();
  10.                 projection.toPixels(geoPoint, drawPoint);
  11.                
  12.                
  13.         }
複製代碼

TOP

  1. package com.example.mygooglemap;

  2. import com.google.android.maps.GeoPoint;
  3. import com.google.android.maps.MapActivity;
  4. import com.google.android.maps.MapController;
  5. import com.google.android.maps.MapView;

  6. import android.location.Location;
  7. import android.location.LocationListener;
  8. import android.location.LocationManager;
  9. import android.os.Bundle;
  10. import android.app.Activity;
  11. import android.view.Menu;

  12. public class MainActivity extends Activity implements LocationListener{
  13.        
  14.         static final int INITIAL_ZOOM_LEVEL = 20;
  15.         static final int INITIAL_LATITUDE = 25040255;
  16.         static final int INITIAL_LONGITUDE = 12152377;
  17.        
  18.         private MapView mapView;
  19.         private MapController mapController;
  20.         private LocationManager locationManager;
  21.        
  22.         private void updateMap(GeoPoint center)
  23.         {
  24.                  MyPointOverlay myPointOverlay = new MyPointOverlay(center);
  25.              mapView.getOverlays().clear();
  26.              mapView.getOverlays().add(myPointOverlay);
  27.              mapController.animateTo(center);
  28.         }
  29.        
  30.     @Override
  31.     public void onCreate(Bundle savedInstanceState) {
  32.         super.onCreate(savedInstanceState);
  33.         setContentView(R.layout.activity_main);
  34.         
  35.         mapView = (MapView)findViewById(R.id.mapview);
  36.         mapView.setBuiltInZoomControls(true);
  37.         
  38.         GeoPoint center = new GeoPoint(INITIAL_LATITUDE,INITIAL_LONGITUDE);
  39.         updateMap(center);
  40.         
  41.         mapController = mapView.getController();
  42.         mapController.setZoom(INITIAL_ZOOM_LEVEL);
  43.         mapController.setCenter(center);
  44.         
  45.         locationManager = (LocationManager)this.getSystemService(LOCATION_SERVICE);
  46.         locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,0,this);
  47.         locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000,0,this);
  48.         
  49.     }

  50.     @Override
  51.     public boolean onCreateOptionsMenu(Menu menu) {
  52.         getMenuInflater().inflate(R.menu.activity_main, menu);
  53.         return true;
  54.     }

  55.         public void onLocationChanged(Location location) {
  56.                 // TODO Auto-generated method stub
  57.                  GeoPoint center = new GeoPoint((int)(location.getLatitude()*1E6),(int)(location.getLongitude()*1E6));
  58.              updateMap(center);
  59.         }

  60.         public void onProviderDisabled(String provider) {
  61.                 // TODO Auto-generated method stub
  62.                
  63.         }

  64.         public void onProviderEnabled(String provider) {
  65.                 // TODO Auto-generated method stub
  66.                
  67.         }

  68.         public void onStatusChanged(String provider, int status, Bundle extras) {
  69.                 // TODO Auto-generated method stub
  70.                
  71.         }

  72. }
複製代碼

TOP

專案壓縮檔
附件: 您需要登錄才可以下載或查看附件。沒有帳號?註冊

TOP

  1. <uses-permission android:name="android.permission.INTERNET"></uses-permission>
  2.                 <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission>
  3.                 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"></uses-permission>
  4.                 <uses-permission android:name="android.permission.ACCESS_MOCK_LOCATION"></uses-permission>
  5.                
複製代碼

TOP

  1. GeoPoint center = new GeoPoint((int)(location.getLatitude()*1E6),(int)(location.getLongitude()*1E6));
  2.              MyPointOverlay myPointOverlay = new MyPointOverlay(center);
  3.              mapView.getOverlays().clear();
  4.              mapView.getOverlays().add(myPointOverlay);
  5.              mapController.animateTo(center);
複製代碼

TOP

  1. locationManager = (LocationManager)this.getSystemService(LOCATION_SERVICE);
  2.         locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,1000,0,this);
  3.         locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER,1000,0,this);
複製代碼

TOP

  1. mapController = mapView.getController();
  2.         mapController.setZoom(INITIAL_ZOOM_LEVEL);
  3.         mapController.setCenter(center);
複製代碼

TOP

  1. GeoPoint center = new GeoPoint(INITIAL_LATITUDE,INITIAL_LONGITUDE);
  2.         MyPointOverlay myPointOverlay = new MyPointOverlay(center);
  3.         mapView.getOverlays().add(myPointOverlay);
複製代碼

TOP

  1. mapView = (MapView)findViewById(R.id.mapview);
  2.         mapView.setBuiltInZoomControls(true);
複製代碼

TOP

返回列表