NoiseMap.java :  » Map » whimper » edu » toronto » whimper » Android Open Source

Android Open Source » Map » whimper 
whimper » edu » toronto » whimper » NoiseMap.java
package edu.toronto.whimper;

import java.util.ArrayList;
import java.util.List;

import edu.toronto.whimper.DataProcessor.DBAdapter;
import edu.toronto.whimper.DataProcessor.DBManager;
import edu.toronto.whimper.GeneralObjects.NoiseSample;
import edu.toronto.whimper.GeneralObjects.Range;
import edu.toronto.whimper.MapObjects.MapItemizedOverlay;
import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.util.DisplayMetrics;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.*;

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;
import com.google.android.maps.OverlayItem;

public class NoiseMap extends MapActivity {
  
  private MapView mapView;
  private MapController mc;
  //private GeoPoint p;
    private List<Overlay> mapOverlays;
    private Drawable drawable;
    private MapItemizedOverlay itemizedoverlay;
    
    private DBAdapter db;
    private ArrayList<NoiseSample> allSamples;
    private ArrayList<NoiseSample> rangeSamples;
    
    private ImageButton btnHome;
      
  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.noisemap);  
        
        setButtonsWidth();
        
        //get the mapView
        mapView = (MapView) findViewById(R.id.mapview);           
        //by default set the map mode
        //mapView.setSatellite(true);
        mapView.setStreetView(true);
        mapView.setBuiltInZoomControls(true); 
        
        //getting the overlays list
        mapOverlays = mapView.getOverlays();
        drawable = this.getResources().getDrawable(R.drawable.map_marker);
        itemizedoverlay = new MapItemizedOverlay(drawable, this);
        
        db = new DBAdapter(this); 
        
        //set markers
        setAllRecordedSamplesMarkers();
        //showByLocation(Double.parseDouble("43.65367"), Double.parseDouble("-79.391022"));
                
        mapOverlays.add(itemizedoverlay);
        //mapView.invalidate();       
        
        //go home button        
        btnHome = (ImageButton)findViewById(R.id.home);
        btnHome.setOnClickListener(homeBtnListener);
        
                       
        }
  @Override
  protected boolean isRouteDisplayed()
  {
      return false;
  }
  private void setAllRecordedSamplesMarkers()
  {
        allSamples = DBManager.getAllNoiseSamples(db);
      
        if(allSamples.size() > 0)
        {
        for (NoiseSample sample : allSamples) 
        {
          int latE6 =  (int)(sample.getLocation().getLatitude()* 1E6);
          int longE6 = (int)(sample.getLocation().getLongitude()* 1E6);
          
          GeoPoint p = new GeoPoint(latE6, longE6);
            showMarker(p);
        }
        }
        else 
        {
          Toast.makeText( getApplicationContext(), "There are no sound samples recorded", Toast.LENGTH_LONG).show();
        }
  }
  
  private void setRecordedSamplesMarkersByHour(Range range, boolean night)
  {
    rangeSamples = DBManager.getNoiseSampleByRange(allSamples, range, night);    
  }
  
  
  @SuppressWarnings("unused")
  private void showByLocation(double lat, double lng)
  {
     mc = mapView.getController();     
       GeoPoint p = new GeoPoint(
              (int) (lat * 1E6), 
              (int) (lng * 1E6));
   
          //mc.animateTo(p);
          //mc.setZoom(17);
          
       showMarker(p);
  }  
  
  private void showMarker(GeoPoint p)
  {
    //adding this location to the overlay array    
      OverlayItem overlayitem = new OverlayItem(p, "Location: ", Integer.toString(p.getLatitudeE6())+" , "+ Integer.toString(p.getLatitudeE6()));          
      itemizedoverlay.addOverlay(overlayitem);         
      
  }
    
  private OnClickListener homeBtnListener = new OnClickListener()
    {                     
        public void onClick(View v)
        {        
           Intent myIntent = new Intent(v.getContext(), Main.class);
             startActivityForResult(myIntent, 0);                                  
        }
    }; 
    
    private void setButtonsWidth()
    {
      //getting the metrics
        DisplayMetrics metrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(metrics);

        //int h = metrics.heightPixels;
        int w = metrics.widthPixels;
        //setting the width of the buttons
        Button btnOne = (Button) findViewById(R.id.btnOne);
        btnOne.setWidth(w/4);
        Button btnTwo = (Button) findViewById(R.id.btnTwo);
        btnTwo.setWidth(w/4);
        Button btnThree = (Button) findViewById(R.id.btnThree);
        btnThree.setWidth(w/4);
        Button btnFour = (Button) findViewById(R.id.btnFour);
        btnFour.setWidth(w/4);
      
    }

}
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.