SHARE
TWEET

java gps

a guest Mar 28th, 2013 89 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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. }
RAW Paste Data
Pastebin PRO Autumn Special!
Get 40% OFF on Pastebin PRO accounts!
Top