DirectionOnMapActivity.java :  » UnTagged » smartshop-project » com » appspot » smartshop » map » Android Open Source

Android Open Source » UnTagged » smartshop project 
smartshop project » com » appspot » smartshop » map » DirectionOnMapActivity.java
package com.appspot.smartshop.map;

import java.util.List;
import java.util.Set;

import android.content.Intent;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

import com.appspot.smartshop.R;
import com.appspot.smartshop.ui.product.ProductsListActivity;
import com.appspot.smartshop.ui.product.SelectTwoProductActivity;
import com.appspot.smartshop.utils.CategoriesDialog;
import com.appspot.smartshop.utils.Global;
import com.appspot.smartshop.utils.CategoriesDialog.CategoriesDialogListener;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.Overlay;

public class DirectionOnMapActivity extends MapActivity {
  
  private static MapView mapView;
  private static MapController mapController;
  private static DirectionOverlay directionOverlay;
  public static DirectionResult directionResult;

  @Override
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.direction);
    
    // setup view
    mapView = (MapView) findViewById(R.id.mapview);
    mapView.setBuiltInZoomControls(true);
      
    // overlay
    List<Overlay> listOfOverlays = mapView.getOverlays();
    listOfOverlays.clear();
    if (directionOverlay == null) {
      directionOverlay = new DirectionOverlay();
    }
    directionOverlay.points = directionResult.points;
    listOfOverlays.add(directionOverlay);
    
    // calculate lat, lng span
    int lattitude;
    int longtitude;
    int maxLat = Integer.MIN_VALUE;
    int minLat = Integer.MAX_VALUE;
    int maxLong = Integer.MIN_VALUE;
    int minLong = Integer.MAX_VALUE;
    for (GeoPoint p: directionOverlay.points) {
      lattitude = p.getLatitudeE6();
      longtitude = p.getLongitudeE6();
      
      if (minLat > lattitude) {
        minLat = lattitude;
      }
      if (maxLat < lattitude) {
        maxLat = lattitude;
      }
      if (minLong > longtitude) {
        minLong = longtitude;
      }
      if (maxLong < longtitude) {
        maxLong = longtitude;
      }
    }
    
    // controller
    mapController = mapView.getController();
    GeoPoint center = new GeoPoint((maxLat + minLat) / 2, (maxLong + minLong) / 2);
    mapController.animateTo(center);
    mapController.zoomToSpan(maxLat - minLat, maxLong - minLong);

    // redraw map
    mapView.invalidate();
  }

  @Override
  protected boolean isRouteDisplayed() {
    return false;
  }
  
  public static final int MENU_VIEW_DIRECTION_DETAIL = 1;
  public static final int MENU_VIEW_ROAD_DETAIL = 2;
  @Override
  public boolean onCreateOptionsMenu(Menu menu) {
    menu.add(0, MENU_VIEW_DIRECTION_DETAIL, 0,
        getString(R.string.view_direction_detail));
    menu.add(0, MENU_VIEW_ROAD_DETAIL, 0,
        getString(R.string.view_road_detail));
    return super.onCreateOptionsMenu(menu);
  }
  
  @Override
  public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case MENU_VIEW_ROAD_DETAIL:
      if (directionResult.points.size() >= 2) {
        int lat1 = directionResult.points.get(0).getLatitudeE6();
        int lng1 = directionResult.points.get(0).getLongitudeE6();
        int lat2 = directionResult.points.get(1).getLatitudeE6();
        int lng2 = directionResult.points.get(1).getLongitudeE6();
        
        mapController.animateTo(new GeoPoint((lat1 + lat2) / 2, (lng1 + lng2) / 2) );
        mapController.zoomToSpan(Math.abs(lat1 - lat2), Math.abs(lng1 - lng2));
      }
      break;
      
    case MENU_VIEW_DIRECTION_DETAIL:
      Intent intent = new Intent(getApplicationContext(), DirectionListActivity.class);
      startActivity(intent);
      break;
    }

    return super.onOptionsItemSelected(item);
  }
}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.