Anyone help me to complete this code -Map API

Put problem concerning MapActivities, MapViews, Overlays and GPS in this forum.

Anyone help me to complete this code -Map API

Postby chinnuabhi » Fri Mar 22, 2013 4:44 am

Position.java
Code: Select all
package com.abhinay.locator;

import java.io.IOException;
import java.text.DecimalFormat;
import java.util.List;
import java.util.Locale;

import android.content.Intent;
import android.graphics.drawable.Drawable;
import android.location.Address;
import android.location.Geocoder;
import android.location.GpsStatus;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Toast;

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

public class Position extends MapActivity
{
   static final int INIT_TEXT_REQUEST = 0;
   static final int NEW_TEXT_REQUEST = 1;
   private String Latitude = "17.385812";
   private String Longitude = "78.480667";
   String add = "";
   private boolean currMapMode;
   private double dLatitude;
   private double dLongitude;
   DecimalFormat df = new DecimalFormat("#.#########");
   private boolean firstFix = false;
   private boolean gpsActive = false;
   private boolean isCentered = false;
   private boolean isRotated = false;
   private LocationListener locListener;
   private LocationManager locManager;
   private Menu mMenu;
   MapController mc;
   Location myLocation;
   private MapView myMap;
   private boolean nextMapMode;
   public GpsStatus.Listener onGpsStatusChange = new GpsStatus.Listener()
   {
      public void onGpsStatusChanged(int paramAnonymousInt)
      {
         switch (paramAnonymousInt)
         {
         case 1:
            Position.this.gpsActive = true;
            break;
         case 2:
            Position.this.gpsActive = false;
            break;
         case 3:
            Position.this.firstFix = true;
         }
      }
   };
   GeoPoint p;

   private void initLocationManager()
   {
      this.locManager = ((LocationManager)getSystemService("location"));
      this.locManager.addGpsStatusListener(this.onGpsStatusChange);
      this.locListener = new LocationListener()
      {
         public void onLocationChanged(Location paramAnonymousLocation)
         {
            Position.this.myLocation = paramAnonymousLocation;
            Position.this.isRotated = false;
         }

         public void onProviderDisabled(String paramAnonymousString)
         {
         }

         public void onProviderEnabled(String paramAnonymousString)
         {
         }

         public void onStatusChanged(String paramAnonymousString, int paramAnonymousInt, Bundle paramAnonymousBundle)
         {
         }
      };
      this.locManager.requestLocationUpdates("gps", 0L, 0.0F, this.locListener);
   }

   @SuppressWarnings("deprecation")
   private void initMap()
   {
      this.myMap = ((MapView)findViewById(2131099649));
      View localView = this.myMap.getZoomControls();
      ((LinearLayout)findViewById(2131099650)).addView(localView);
      if (!this.currMapMode)
      {
         this.myMap.setSatellite(true);
         this.nextMapMode = true;
      }
      else
      {
         this.myMap.setSatellite(false);
         this.myMap.setStreetView(true);
         this.nextMapMode = false;
      }
      this.myMap.displayZoomControls(true);
      this.myMap.invalidate();
      Log.v("My Position", "initMap");
   }

   @SuppressWarnings("rawtypes")
   protected void createAndShowMyItemizedOverlay(Location paramLocation)
   {
      Log.v("My Position", "createAndShowMyItemizedOverlay");
      Object localObject1 = this.myMap.getOverlays();
      if (this.isRotated)
      {
         this.isCentered = false;
      }
      else
      {
         this.dLatitude = paramLocation.getLatitude();
         this.dLongitude = paramLocation.getLongitude();
         getAddress(paramLocation);
         if (((List)localObject1).size() > 0)
         {
            localObject1 = ((List)localObject1).iterator();
            while (((Iterator)localObject1).hasNext())
            {
               ((Iterator)localObject1).next();
               ((Iterator)localObject1).remove();
            }
         }
      }
      localObject1 = new GeoPoint((int)(1000000.0D * this.dLatitude), (int)(1000000.0D * this.dLongitude));
      this.Latitude = this.df.format(this.dLatitude);
      this.Longitude = this.df.format(this.dLongitude);
      Object localObject2 = getResources().getDrawable(2130837505);
      ((Drawable)localObject2).setBounds(0, 0, ((Drawable)localObject2).getIntrinsicWidth(), ((Drawable)localObject2).getIntrinsicHeight());
      localObject2 = new MyItemizedOverlay((Drawable)localObject2);
      ((MyItemizedOverlay)localObject2).addItem(new OverlayItem((GeoPoint)localObject1, "My Location", null));
      this.myMap.getOverlays().add(localObject2);
      if (!this.isRotated)
         this.myMap.getController().animateTo((GeoPoint)localObject1);
      this.myMap.postInvalidate();
   }

   @SuppressWarnings("rawtypes")
   protected void getAddress(Location paramLocation)
   {
      Geocoder localGeocoder = new Geocoder(getBaseContext(), Locale.getDefault());
      try
      {
         List localList = localGeocoder.getFromLocation(paramLocation.getLatitude(), paramLocation.getLongitude(), 1);
         this.add = "";
         if (localList.size() > 0);
         for (int i = 0; ; i++)
         {
            if (i >= ((Address)localList.get(0)).getMaxAddressLineIndex())
            {
               Toast.makeText(getBaseContext(), this.add, 0).show();
               break;
            }
            this.add = (this.add + ((Address)localList.get(0)).getAddressLine(i) + "\n");
         }
      }
      catch (IOException localIOException)
      {
         localIOException.printStackTrace();
      }
   }

   protected boolean isRouteDisplayed()
   {
      return false;
   }

   public void onCreate(Bundle paramBundle)
   {
      Log.v("My Position", "onCreate");
      super.onCreate(paramBundle);
      setContentView(2130903041);
      initMap();
      initLocationManager();
   }

   public boolean onCreateOptionsMenu(Menu paramMenu)
   {
      this.mMenu = paramMenu;
      getMenuInflater().inflate(2131034112, paramMenu);
      return true;
   }

   public boolean onOptionsItemSelected(MenuItem paramMenuItem)
   {
      switch (paramMenuItem.getItemId())
      {
      case 2131099651:
         if (!this.nextMapMode)
         {
            this.myMap.setSatellite(true);
            Toast.makeText(this, "Satelite Mode Selected", 0).show();
            this.myMap.invalidate();
            this.nextMapMode = true;
            this.currMapMode = false;
         }
         else
         {
            this.myMap.setSatellite(false);
            this.myMap.setStreetView(true);
            Toast.makeText(this, "Map Mode Selected", 0).show();
            this.nextMapMode = false;
            this.currMapMode = true;
            this.myMap.invalidate();
         }
         break;
      case 2131099652:
         Object localObject2;
         Object localObject1;
         if (!this.firstFix)
         {
            localObject2 = this.myMap.getProjection();
            int i = this.myMap.getHeight() / 2;
            localObject1 = ((Projection)localObject2).fromPixels(this.myMap.getWidth() / 2, i);
            this.Latitude = this.df.format(((GeoPoint)localObject1).getLatitudeE6() / 1000000.0D);
            this.Longitude = this.df.format(((GeoPoint)localObject1).getLongitudeE6() / 1000000.0D);
            Toast.makeText(this, "NO GPS SIGNAL! Using center of map as coordinates.", 0).show();
            localObject2 = this.add + " http://maps.google.com/maps?q=" + this.Latitude + "," + this.Longitude;
            localObject1 = new Intent("android.intent.action.VIEW");
            ((Intent)localObject1).putExtra("sms_body", (String)localObject2);
            ((Intent)localObject1).setType("vnd.android-dir/mms-sms");
            startActivity((Intent)localObject1);
         }
         else
         {
            localObject1 = this.add + " http://maps.google.com/maps?q=" + this.Latitude + "," + this.Longitude;
            localObject2 = new Intent("android.intent.action.VIEW");
            ((Intent)localObject2).putExtra("sms_body", (String)localObject1);
            ((Intent)localObject2).setType("vnd.android-dir/mms-sms");
            startActivity((Intent)localObject2);
         }
         break;
      case 2131099653:
         if (!this.firstFix)
         {
            Toast.makeText(this, "NO GPS SIGNAL!", 0).show();
         }
         else
         {
            createAndShowMyItemizedOverlay(this.myLocation);
            this.isCentered = true;
         }
         break;
      case 2131099654:
         finish();
      }
      return false;
   }

   public void onRestoreInstanceState(Bundle paramBundle)
   {
      super.onRestoreInstanceState(paramBundle);
      this.currMapMode = paramBundle.getBoolean("mapMode");
      this.gpsActive = paramBundle.getBoolean("gpsActive");
      this.firstFix = paramBundle.getBoolean("firstFix");
      this.isCentered = paramBundle.getBoolean("isCentered");
      this.dLatitude = paramBundle.getDouble("dLatitude");
      this.dLongitude = paramBundle.getDouble("dLongitude");
      this.isRotated = true;
      if (!this.currMapMode)
      {
         this.myMap.setSatellite(true);
         this.nextMapMode = true;
      }
      else
      {
         this.myMap.setSatellite(false);
         this.myMap.setStreetView(true);
         this.nextMapMode = false;
      }
      initLocationManager();
      createAndShowMyItemizedOverlay(this.myLocation);
      Log.v("My Position", "onRestoreInstanceState");
   }

   public void onSaveInstanceState(Bundle paramBundle)
   {
      paramBundle.putBoolean("mapMode", this.currMapMode);
      paramBundle.putBoolean("gpsActive", this.gpsActive);
      paramBundle.putBoolean("firstFix", this.firstFix);
      paramBundle.putBoolean("isCentered", this.isCentered);
      paramBundle.putDouble("dLatitude", this.dLatitude);
      paramBundle.putDouble("dLongitude", this.dLongitude);
      super.onSaveInstanceState(paramBundle);
      Log.v("My Position", "onSaveInstanceState");
   }
}



MyItemizedOverlay.java
Code: Select all
package com.abhinay.locator;

import android.graphics.Canvas;
import android.graphics.drawable.Drawable;
import android.view.MotionEvent;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapView;
import com.google.android.maps.OverlayItem;
import com.google.android.maps.Projection;
import java.util.ArrayList;
import java.util.List;

public class MyItemizedOverlay extends ItemizedOverlay
{
   private List items = new ArrayList();
   private Drawable marker;

   public MyItemizedOverlay(Drawable paramDrawable)
   {
      super(paramDrawable);
      this.marker = paramDrawable;
   }

   public void addItem(OverlayItem paramOverlayItem)
   {
      this.items.add(paramOverlayItem);
      populate();
   }

   protected OverlayItem createItem(int paramInt)
   {
      return (OverlayItem)this.items.get(paramInt);
   }

   public void draw(Canvas paramCanvas, MapView paramMapView, boolean paramBoolean)
   {
      super.draw(paramCanvas, paramMapView, paramBoolean);
      boundCenterBottom(this.marker);
   }

   public boolean onTouchEvent(MotionEvent paramMotionEvent, MapView paramMapView)
   {
      if (paramMotionEvent.getAction() == 1)
         paramMapView.getProjection().fromPixels((int)paramMotionEvent.getX(), (int)paramMotionEvent.getY());
      return false;
   }

   public int size()
   {
      return this.items.size();
   }
}


DialogGpsSignalLost.java
Code: Select all
package com.abhinay.locator;

import android.app.Activity;
import android.os.Bundle;

public class dialogGpsSignalLost extends Activity
{
  protected void onCreate(Bundle paramBundle)
  {
    super.onCreate(paramBundle);
    requestWindowFeature(3);
    setContentView(2130903040);
    getWindow().setFeatureDrawableResource(3, 17301543);
  }
}
Attachments
Locator.rar
(638.87 KiB) Downloaded 52 times
chinnuabhi
Freshman
Freshman
 
Posts: 3
Joined: Fri Mar 22, 2013 4:28 am

Top

Return to Map Problems

Who is online

Users browsing this forum: No registered users and 5 guests