Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.List;
- import android.graphics.drawable.Drawable;
- import android.os.Bundle;
- import android.util.Log;
- import android.view.MotionEvent;
- import android.view.View;
- import android.view.View.OnClickListener;
- import android.widget.ImageView;
- import com.google.android.maps.GeoPoint;
- import com.google.android.maps.ItemizedOverlay;
- 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 com.google.android.maps.OverlayItem;
- import com.google.android.maps.Projection;
- public class MapScreen extends MapActivity implements OnClickListener {
- MapView mapView;
- List<Overlay> overlayList;
- Drawable markerDrawable;
- MapOverlays myMapOverlay;
- @Override
- protected boolean isRouteDisplayed() {
- return false;
- }
- public void onCreate(Bundle savedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.map_layout);
- mapView = (MapView) findViewById(R.id.mapview);
- mapView.setBuiltInZoomControls(true);
- mapView.setOnClickListener(this);
- MapController mapController = mapView.getController();
- ImageView back_btn = (ImageView)findViewById(R.id.map_back_btn);
- back_btn.setOnClickListener(this);
- overlayList = mapView.getOverlays();
- markerDrawable = this.getResources().getDrawable(R.drawable.pin);
- myMapOverlay = new MapOverlays(markerDrawable);
- GeoPoint geoPoint = new GeoPoint((int)(PrefBean.getLatitude()*1E6),(int)(PrefBean.getLongitude()*1E6));
- myMapOverlay.addOverlay(new OverlayItem(geoPoint,"",""));
- mapController.setZoom(15);
- mapController.animateTo(geoPoint);
- overlayList.add(myMapOverlay);
- }
- /*
- * Handle click events of the navigation buttons
- * @see android.view.View.OnClickListener#onClick(android.view.View)
- */
- @Override
- public void onClick(View v) {
- if(v.getId() == R.id.map_back_btn){
- this.finish();
- }
- }
- /*
- * Class that manages all the overlays that are drawn on the map.
- * inluding:
- * - The Pin Marker
- * - The Range Circle
- * - The dragger
- */
- public class MapOverlays extends ItemizedOverlay {
- private ArrayList<OverlayItem> overlayArray = new ArrayList<OverlayItem>();
- public MapOverlays(Drawable marker) {
- super(boundCenterBottom(marker));
- }
- /*
- * Adds overlay items in the overlayArray
- */
- public void addOverlay(OverlayItem overlay) {
- overlayArray.add(overlay);
- populate();
- }
- public void removeAll(){
- overlayArray.remove(0);
- }
- /*
- * Returns the particular item found at the i'th position of overlayArray
- * @see com.google.android.maps.ItemizedOverlay#createItem(int)
- */
- @Override
- protected OverlayItem createItem(int i) {
- return overlayArray.get(i);
- }
- /*
- * Returns the size of the overlayArray
- * @see com.google.android.maps.ItemizedOverlay#size()
- */
- @Override
- public int size() {
- return overlayArray.size();
- }
- @Override
- public boolean onTouchEvent(MotionEvent event, MapView mapView) {
- if(event.getAction() == MotionEvent.ACTION_UP){
- Projection proj = mapView.getProjection();
- GeoPoint loc = proj.fromPixels((int)event.getX(), (int)event.getY());
- int latitude = (int)(loc.getLongitudeE6());
- int longitude = (int)(loc.getLatitudeE6());
- overlayList.clear();
- mapView.invalidate();
- // myMapOverlay.removeAll();
- myMapOverlay.addOverlay(new OverlayItem(new GeoPoint(latitude,longitude),"", ""));
- // overlayList.remove(0);
- overlayList.add(myMapOverlay);
- mapView.invalidate();
- Log.d("POINTS on click-->",""+latitude+", "+longitude);
- Log.d("##","Moved and Clicked");
- }
- return super.onTouchEvent(event,mapView);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement