Advertisement
Guest User

Untitled

a guest
Nov 30th, 2010
347
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.88 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.List;
  3.  
  4. import android.graphics.drawable.Drawable;
  5. import android.os.Bundle;
  6. import android.util.Log;
  7. import android.view.MotionEvent;
  8. import android.view.View;
  9. import android.view.View.OnClickListener;
  10. import android.widget.ImageView;
  11.  
  12. import com.google.android.maps.GeoPoint;
  13. import com.google.android.maps.ItemizedOverlay;
  14. import com.google.android.maps.MapActivity;
  15. import com.google.android.maps.MapController;
  16. import com.google.android.maps.MapView;
  17. import com.google.android.maps.Overlay;
  18. import com.google.android.maps.OverlayItem;
  19. import com.google.android.maps.Projection;
  20.  
  21. public class MapScreen extends MapActivity implements OnClickListener {
  22.     MapView mapView;
  23.     List<Overlay> overlayList;
  24.     Drawable markerDrawable;
  25.     MapOverlays myMapOverlay;
  26.  
  27.     @Override
  28.     protected boolean isRouteDisplayed() {
  29.         return false;
  30.     }
  31.    
  32.     public void onCreate(Bundle savedInstanceState){
  33.         super.onCreate(savedInstanceState);
  34.         setContentView(R.layout.map_layout);
  35.        
  36.         mapView = (MapView) findViewById(R.id.mapview);
  37.         mapView.setBuiltInZoomControls(true);
  38.         mapView.setOnClickListener(this);
  39.         MapController mapController = mapView.getController();
  40.        
  41.         ImageView back_btn = (ImageView)findViewById(R.id.map_back_btn);
  42.         back_btn.setOnClickListener(this);
  43.        
  44.         overlayList = mapView.getOverlays();
  45.         markerDrawable = this.getResources().getDrawable(R.drawable.pin);
  46.         myMapOverlay = new MapOverlays(markerDrawable);
  47.         GeoPoint geoPoint = new GeoPoint((int)(PrefBean.getLatitude()*1E6),(int)(PrefBean.getLongitude()*1E6));
  48.         myMapOverlay.addOverlay(new OverlayItem(geoPoint,"",""));
  49.        
  50.         mapController.setZoom(15);
  51.         mapController.animateTo(geoPoint);
  52.        
  53.         overlayList.add(myMapOverlay);
  54.        
  55.        
  56.     }
  57.  
  58.     /*
  59.      * Handle click events of the navigation buttons
  60.      * @see android.view.View.OnClickListener#onClick(android.view.View)
  61.      */
  62.     @Override
  63.     public void onClick(View v) {
  64.         if(v.getId() == R.id.map_back_btn){
  65.             this.finish();
  66.         }
  67.     }
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.     /*
  76.      * Class that manages all the overlays that are drawn on the map.
  77.      * inluding:
  78.      * - The Pin Marker
  79.      * - The Range Circle
  80.      * - The dragger
  81.      */
  82.     public class MapOverlays extends ItemizedOverlay {
  83.  
  84.         private ArrayList<OverlayItem> overlayArray = new ArrayList<OverlayItem>();
  85.  
  86.         public MapOverlays(Drawable marker) {
  87.             super(boundCenterBottom(marker));
  88.         }
  89.  
  90.         /*
  91.          * Adds overlay items in the overlayArray
  92.          */
  93.         public void addOverlay(OverlayItem overlay) {
  94.             overlayArray.add(overlay);
  95.             populate();
  96.         }
  97.        
  98.         public void removeAll(){
  99.             overlayArray.remove(0);
  100.         }
  101.  
  102.         /*
  103.          * Returns the particular item found at the i'th position of overlayArray
  104.          * @see com.google.android.maps.ItemizedOverlay#createItem(int)
  105.          */
  106.         @Override
  107.         protected OverlayItem createItem(int i) {
  108.             return overlayArray.get(i);
  109.         }
  110.  
  111.         /*
  112.          * Returns the size of the overlayArray
  113.          * @see com.google.android.maps.ItemizedOverlay#size()
  114.          */
  115.         @Override
  116.         public int size() {
  117.             return overlayArray.size();
  118.         }
  119.        
  120.         @Override
  121.         public boolean onTouchEvent(MotionEvent event, MapView mapView) {
  122.             if(event.getAction() == MotionEvent.ACTION_UP){
  123.                 Projection proj = mapView.getProjection();
  124.                 GeoPoint loc = proj.fromPixels((int)event.getX(), (int)event.getY());
  125.                 int latitude = (int)(loc.getLongitudeE6());
  126.                 int longitude = (int)(loc.getLatitudeE6());
  127.  
  128.                 overlayList.clear();
  129.                 mapView.invalidate();
  130.                
  131. //              myMapOverlay.removeAll();
  132.                 myMapOverlay.addOverlay(new OverlayItem(new GeoPoint(latitude,longitude),"", ""));
  133.                
  134. //              overlayList.remove(0);
  135.                 overlayList.add(myMapOverlay);
  136.                
  137.                 mapView.invalidate();
  138.                 Log.d("POINTS on click-->",""+latitude+", "+longitude);
  139.                 Log.d("##","Moved and Clicked");
  140.             }
  141.            
  142.             return super.onTouchEvent(event,mapView);
  143.         }
  144.  
  145.     }
  146.  
  147.  
  148.  
  149.  
  150. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement