@SuppressWarnings("unchecked")
 public void run() {
   // Notify
   Toast.makeText(FindParkingMapActivity.this, "Map Pan", Toast.LENGTH_SHORT).show();
   if (!mMapView.getOverlays().isEmpty()) {
     // mMapView.getOverlays().remove(itemizedOverlays);
     // mMapView.getOverlays().remove(itemizedOverlays2);
     // mMapView.getOverlays().remove(itemizedOverlays3);
     mMapView.getOverlays().clear();
     if (myLocOverlay != null) mMapView.getOverlays().add(myLocOverlay);
     mMapView.postInvalidate();
   }
   showDialog(0);
 }
  private void overlayTappableParkingSpots() {

    String address = "No Associated Address";
    GeoPoint pSpotGeoPoint = null;
    OverlayItem overlayitem = null;
    String sPpotInfo = "No Info Available";
    Drawable drawable =
        myContext.getResources().getDrawable(R.drawable.blue_markerp); // map_marker_black);
    itemizedOverlays = new MapOverLays(drawable, myContext);
    Drawable drawable2 =
        myContext.getResources().getDrawable(R.drawable.darkgreen_markerp); // map_marker_black);
    itemizedOverlays2 = new MapOverLays(drawable2, myContext);

    Drawable drawable3 =
        myContext.getResources().getDrawable(R.drawable.red_markerp); // map_marker_black);
    itemizedOverlays3 = new MapOverLays(drawable3, myContext);

    int dataPoints = FindParkingTabs.parkingLocations.size();
    int displayPoints;
    if (FindParkingTabs.zoomlevel <= 14) displayPoints = 30;
    else if (FindParkingTabs.zoomlevel == 15 || FindParkingTabs.zoomlevel == 16)
      displayPoints = dataPoints;
    else displayPoints = dataPoints;
    int count = 1;
    Log.v(TAG, "Parked item size" + FindParkingTabs.parkingLocations.size());
    for (ParkingLocationDataEntry parkingSpot : FindParkingTabs.parkingLocations) {

      if (count >= displayPoints) break;
      pSpotGeoPoint = parkingSpot.getGeoPoint();
      address = "empty"; // convertPointToLocation(pSpotGeoPoint);
      sPpotInfo = LocationUtility.convertObjToString(parkingSpot);
      overlayitem = new OverlayItem(pSpotGeoPoint, address, sPpotInfo);
      // Log.v(TAG, "Spot type: " + parkingSpot.getType());
      if (parkingSpot.getType().contains("MultiMeterPost"))
        itemizedOverlays2.addOverlay(overlayitem);
      else if (parkingSpot.getType().contains("OffStreetParking"))
        itemizedOverlays3.addOverlay(overlayitem);
      else itemizedOverlays.addOverlay(overlayitem);

      count++;
    }
    itemizedOverlays.addDone();
    itemizedOverlays2.addDone();
    itemizedOverlays3.addDone();
    mMapView.getOverlays().add(itemizedOverlays);
    mMapView.getOverlays().add(itemizedOverlays2);
    mMapView.getOverlays().add(itemizedOverlays3);
    mMapView.postInvalidate();
  }
 public void run() {
   // Notify
   FindParkingTabs.zoomlevel = mMapView.getZoomLevel();
   Log.v(TAG, "Map Zoom level: " + mMapView.getZoomLevel());
   Toast.makeText(FindParkingMapActivity.this, "Map Zoom", Toast.LENGTH_SHORT).show();
   if (!mMapView.getOverlays().isEmpty()) {
     // mMapView.getOverlays().remove(itemizedOverlays);
     // mMapView.getOverlays().remove(itemizedOverlays2);
     // mMapView.getOverlays().remove(itemizedOverlays3);
     mMapView.getOverlays().clear();
     if (myLocOverlay != null) mMapView.getOverlays().add(myLocOverlay);
     mMapView.postInvalidate();
     /** Redisplay the spots based on zoom level * */
     overlayTappableParkingSpots();
   }
 }
  private void updateCurrentUserLocation() {

    Toast.makeText(getApplicationContext(), "Updating Location...", Toast.LENGTH_LONG).show();

    myLocOverlay = new DerivedMyLocationOverlay(this, mMapView);
    // Gives the blue 'google' location marker

    mMapView.getOverlays().add(myLocOverlay);
    myLocOverlay.runOnFirstFix(
        new Runnable() {
          public void run() {
            mMapView.getController().animateTo(myLocOverlay.getMyLocation());
            mMapView.postInvalidate();
          }
        });
  }