Advertisement
Guest User

java gps

a guest
Mar 28th, 2013
170
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 8.05 KB | None | 0 0
  1. package id.amikom.jogjabankfinder.activity;
  2.  
  3. import java.util.ArrayList;
  4.  
  5. import org.json.JSONObject;
  6.  
  7. import com.google.android.gms.maps.CameraUpdateFactory;
  8. import com.google.android.gms.maps.GoogleMap;
  9. import com.google.android.gms.maps.MapFragment;
  10. import com.google.android.gms.maps.SupportMapFragment;
  11. import com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener;
  12. import com.google.android.gms.maps.model.BitmapDescriptorFactory;
  13. import com.google.android.gms.maps.model.LatLng;
  14. import com.google.android.gms.maps.model.Marker;
  15. import com.google.android.gms.maps.model.MarkerOptions;
  16.  
  17. import id.amikom.jogjabankfinder.GPSHelper;
  18. import id.amikom.jogjabankfinder.JSONHelper;
  19. import id.amikom.jogjabankfinder.R;
  20. import id.amikom.jogjabankfinder.entity.Bank;
  21. import android.location.Location;
  22. import android.location.LocationListener;
  23. import android.location.LocationManager;
  24. import android.os.AsyncTask;
  25. import android.os.Bundle;
  26. import android.app.ProgressDialog;
  27. import android.content.Context;
  28. import android.content.Intent;
  29. import android.support.v4.app.FragmentActivity;
  30. import android.support.v4.app.FragmentManager;
  31. import android.view.KeyEvent;
  32. import android.view.View;
  33. import android.widget.AdapterView;
  34. import android.widget.ArrayAdapter;
  35. import android.widget.Spinner;
  36. import android.widget.Toast;
  37. import android.widget.AdapterView.OnItemSelectedListener;
  38.  
  39. public class PetaLokasi extends FragmentActivity implements OnItemSelectedListener, OnInfoWindowClickListener,
  40.         LocationListener
  41. {
  42.     private GoogleMap           map;
  43.     private GPSHelper           gps;
  44.     private LocationManager     locManager;
  45.     private Location            location;
  46.     private JSONHelper          json;
  47.     private LatLng              myLocation;
  48.     private Context             context;
  49.  
  50.     private ArrayList<Bank>     listBank;
  51.     private Marker              markerMyLocation;
  52.     private final int           ZOOM    = 14;
  53.  
  54.     private ProgressDialog      pDialog;
  55.  
  56.     private Spinner             spLokasiBank;
  57.     private ArrayList<String>   listBankSpinner;
  58.  
  59.     @Override
  60.     protected void onCreate(Bundle savedInstanceState)
  61.     {
  62.         super.onCreate(savedInstanceState);
  63.         setContentView(R.layout.activity_bank_location);
  64.  
  65.         spLokasiBank = (Spinner) findViewById(R.id.spinnerBank);
  66.         spLokasiBank.setOnItemSelectedListener(this);
  67.         locManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
  68.  
  69.         context = this;
  70.  
  71.         json = new JSONHelper();
  72.  
  73.         new AsycnTaskBank().execute();
  74.  
  75.         setupGPS();
  76.  
  77.         setupMapIfNeeded();
  78.  
  79.     }
  80.  
  81.     private void setupGPS()
  82.     {
  83.         gps = new GPSHelper(context, locManager, this);
  84.         location = gps.getLocation();
  85.  
  86.         if (location != null)
  87.         {
  88.             myLocation = new LatLng(location.getLatitude(),
  89.                     location.getLongitude());
  90.             onLocationChanged(location);
  91.         }
  92.     }
  93.  
  94.     private void setupMapIfNeeded()
  95.     {
  96.         if (map == null)
  97.         {
  98.             map = ((SupportMapFragment)
  99.                     getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
  100.         }
  101.  
  102.         setupMap();
  103.     }
  104.  
  105.     private void setupMap()
  106.     {
  107.         map.setOnInfoWindowClickListener(this);
  108.  
  109.         if (myLocation != null)
  110.         {
  111.             markerMyLocation = map.addMarker(new MarkerOptions()
  112.                     .position(myLocation)
  113.                     .title("Posisi anda")
  114.                     .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
  115.  
  116.             map.moveCamera(CameraUpdateFactory.newLatLngZoom(myLocation, 14));
  117.  
  118.         }
  119.  
  120.     }
  121.  
  122.     @Override
  123.     public boolean onKeyDown(int keyCode, KeyEvent event)
  124.     {
  125.         // TODO Auto-generated method stub
  126.         if (keyCode == KeyEvent.KEYCODE_BACK)
  127.         {
  128.             startActivity(new Intent(PetaLokasi.this, MenuUtama.class));
  129.             finish();
  130.         }
  131.         return super.onKeyDown(keyCode, event);
  132.     }
  133.  
  134.     public void tampilSpinner()
  135.     {
  136.         // TODO Auto-generated method stub
  137.         ArrayAdapter<String> bankAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,
  138.                 listBankSpinner);
  139.         bankAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  140.  
  141.         spLokasiBank.setAdapter(bankAdapter);
  142.  
  143.     }
  144.  
  145.     @Override
  146.     public void onItemSelected(AdapterView<?> arg0, View arg1, int loc, long arg3)
  147.     {
  148.         // TODO Auto-generated method stub
  149.  
  150.         if (loc != 0)
  151.         {
  152.             tampilBank(loc);
  153.         }
  154.  
  155.     }
  156.  
  157.     private void tampilBank(int i)
  158.     {
  159.         i -= 1;
  160.         double lat = listBank.get(i).getLat();
  161.         double lng = listBank.get(i).getLng();
  162.         // String title = listBank.get(i).getName();
  163.  
  164.         // if (markerBank != null)
  165.         // {
  166.         // markerBank.remove();
  167.         // }
  168.         //
  169.         // markerBank = map.addMarker(new MarkerOptions()
  170.         // .position(new LatLng(lat, lng))
  171.         // .title(title));
  172.         map.animateCamera((CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lng),
  173.                 ZOOM)));
  174.  
  175.     }
  176.  
  177.     @Override
  178.     public void onInfoWindowClick(Marker marker)
  179.     {
  180.         // TODO Auto-generated method stub
  181.  
  182.         Bundle bundle = new Bundle();
  183.  
  184.         bundle.putString("to", marker.getTitle());
  185.         bundle.putDouble("start_lat", myLocation.latitude);
  186.         bundle.putDouble("start_lng", myLocation.longitude);
  187.         bundle.putDouble("end_lat", marker.getPosition().latitude);
  188.         bundle.putDouble("end_lng", marker.getPosition().longitude);
  189.  
  190.         Intent i = new Intent(PetaLokasi.this,
  191.                 Navigasi.class);
  192.         i.putExtras(bundle);
  193.         startActivity(i);
  194.         finish();
  195.     }
  196.  
  197.     @Override
  198.     public void onLocationChanged(Location location)
  199.     {
  200.         // TODO Auto-generated method stub
  201.         Toast.makeText(this, "Lokasi berubah", Toast.LENGTH_SHORT).show();
  202.  
  203.         if (markerMyLocation != null)
  204.         {
  205.             markerMyLocation.remove();
  206.             markerMyLocation = map.addMarker(new MarkerOptions()
  207.                     .position(new LatLng(location.getLatitude(),
  208.                             location.getLongitude()))
  209.                     .title("Posisi anda")
  210.                     .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
  211.             map.animateCamera(CameraUpdateFactory.newLatLngZoom(new
  212.                     LatLng(location.getLatitude(), location.getLongitude()),
  213.                     14));
  214.  
  215.         }
  216.     }
  217.  
  218.     @Override
  219.     public void onProviderDisabled(String provider)
  220.     {
  221.         // TODO Auto-generated method stub
  222.  
  223.     }
  224.  
  225.     @Override
  226.     public void onProviderEnabled(String provider)
  227.     {
  228.         // TODO Auto-generated method stub
  229.  
  230.     }
  231.  
  232.     @Override
  233.     public void onStatusChanged(String provider, int status, Bundle extras)
  234.     {
  235.         // TODO Auto-generated method stub
  236.  
  237.     }
  238.  
  239.     @Override
  240.     protected void onResume()
  241.     {
  242.         // TODO Auto-generated method stub
  243.         super.onResume();
  244.     }
  245.  
  246.     @Override
  247.     protected void onPause()
  248.     {
  249.         // TODO Auto-generated method stub
  250.         super.onPause();
  251.     }
  252.  
  253.     @Override
  254.     protected void onStart()
  255.     {
  256.         // TODO Auto-generated method stub
  257.         super.onStart();
  258.         // gps.checkGPS();
  259.     }
  260.  
  261.     @Override
  262.     protected void onStop()
  263.     {
  264.         // TODO Auto-generated method stub
  265.         super.onStop();
  266.         // locManager.removeUpdates(this);
  267.         gps.stopGPS();
  268.     }
  269.  
  270.     private class AsycnTaskBank extends AsyncTask<Void, Void, Void>
  271.     {
  272.  
  273.         @Override
  274.         protected Void doInBackground(Void... params)
  275.         {
  276.             // TODO Auto-generated method stub
  277.             String URL = "http://jogjabankfinder.tk/lokasibank.php";
  278.  
  279.             JSONObject jObj = json.getJSONFromUrl(URL);
  280.             listBank = json.getAllBankLocation(jObj);
  281.  
  282.             return null;
  283.         }
  284.  
  285.         @Override
  286.         protected void onPostExecute(Void result)
  287.         {
  288.             // TODO Auto-generated method stub
  289.  
  290.             pDialog.dismiss();
  291.             runOnUiThread(new Runnable()
  292.             {
  293.  
  294.                 @Override
  295.                 public void run()
  296.                 {
  297.                     // TODO Auto-generated method stub
  298.                     listBankSpinner = new ArrayList<String>();
  299.                     listBankSpinner.add("Daftar Bank");
  300.  
  301.                     for (int i = 0; i < listBank.size(); i++)
  302.                     {
  303.                         listBankSpinner.add(listBank.get(i).getName());
  304.  
  305.                         map.addMarker(new MarkerOptions()
  306.                                 .position(new LatLng(listBank.get(i).getLat(), listBank.get(i)
  307.                                         .getLng()))
  308.                                 .title(listBank.get(i).getName())
  309.                                 .snippet(listBank.get(i).getDesc()));
  310.                     }
  311.  
  312.                 }
  313.             });
  314.  
  315.             tampilSpinner();
  316.             super.onPostExecute(result);
  317.         }
  318.  
  319.         @Override
  320.         protected void onPreExecute()
  321.         {
  322.             // TODO Auto-generated method stub
  323.             super.onPreExecute();
  324.  
  325.             pDialog = new ProgressDialog(PetaLokasi.this);
  326.             pDialog.setMessage("Loading....");
  327.             pDialog.setCancelable(true);
  328.             pDialog.show();
  329.         }
  330.  
  331.     }
  332.  
  333.     @Override
  334.     public void onNothingSelected(AdapterView<?> arg0)
  335.     {
  336.         // TODO Auto-generated method stub
  337.  
  338.     }
  339. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement