Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package info.rekayasa.palmo;
- import java.util.ArrayList;
- import java.util.Collections;
- import java.util.HashMap;
- import com.google.analytics.tracking.android.EasyTracker;
- import com.google.analytics.tracking.android.MapBuilder;
- import com.google.android.gms.maps.GoogleMap;
- import android.app.Activity;
- import android.content.Context;
- import android.content.Intent;
- import android.location.Location;
- import android.location.LocationListener;
- import android.location.LocationManager;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.View;
- import android.widget.AdapterView;
- import android.widget.ArrayAdapter;
- import android.widget.ListAdapter;
- import android.widget.ListView;
- import android.widget.SimpleAdapter;
- import android.widget.AdapterView.OnItemClickListener;
- public class Nearby extends Activity implements LocationListener{
- private MyDatabase db;
- public static double lat;
- public static double lng;
- ListView listlokasi;
- ListViewAdapter lviewAdapter;
- private EasyTracker easyTracker = null;
- GoogleMap map;
- double curlat, curlng;
- float distance;
- protected LocationManager locationManager;
- protected LocationListener locationListener;
- private ArrayList<HashMap<String, String>> locationtList;
- String [] nama = new String[100];
- private static final String TAG_NO = "no";
- private static final String TAG_NAME = "nama";
- private static final String TAG_DISTANCE = "distance";
- ArrayAdapter<String> adapter;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.location_list);
- listlokasi=(ListView)findViewById(R.id.listLocation);
- listlokasi.setTextFilterEnabled(true);
- easyTracker = EasyTracker.getInstance(Nearby.this);
- db = new MyDatabase(this);
- db.getLocation();
- locationManager = (LocationManager)getSystemService(Context.LOCATION_SERVICE);
- if (!locationManager.isProviderEnabled( LocationManager.GPS_PROVIDER ) ) {
- locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 10, this);
- curlat = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER).getLatitude();
- curlng = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER).getLongitude();
- }
- else if(locationManager.isProviderEnabled( LocationManager.GPS_PROVIDER )){
- locationManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 5000, 10, this);
- curlat = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER).getLatitude();
- curlng = locationManager.getLastKnownLocation(LocationManager.NETWORK_PROVIDER).getLongitude();
- }
- adapter = new ArrayAdapter<String>(this, android.R.layout.two_line_list_item, nama);
- listlokasi.setAdapter(adapter);
- fill();
- }
- @Override
- protected void onStart() {
- super.onStart();
- EasyTracker.getInstance(this).activityStart(this);
- }
- @Override
- protected void onStop() {
- super.onStop();
- EasyTracker.getInstance(this).activityStop(this);
- }
- @Override
- public boolean onCreateOptionsMenu(Menu menu) {
- // Inflate the menu; this adds items to the action bar if it is present.
- getMenuInflater().inflate(R.menu.main, menu);
- return true;
- }
- //mengisi listview dan mendeteksi tap pada item list
- //dan memanggil google maps untuk menunjukkan lokasi yg dipilih
- public void fill(){
- locationtList = new ArrayList<HashMap<String, String>>();
- for(int i=0;i<db.namamap.size();i++){
- System.out.println("i: "+i);
- String no=db.nomap.get(i);
- String nama=db.namamap.get(i);
- String destlat=db.latmap.get(i);
- String destlng=db.lngmap.get(i);
- double dlat = Double.parseDouble(destlat);
- double dlng = Double.parseDouble(destlng);
- distance = getDistance(dlat, dlng);
- float dist = distance/1000;
- String distance = String.valueOf(dist)+" km";
- System.out.println("Nama: "+nama);
- System.out.println("Distance: "+distance);
- System.out.println("Lat: "+curlat);
- System.out.println("Lng: "+curlng);
- HashMap<String, String> map = new HashMap<String, String>();
- map.put(TAG_NAME, nama);
- map.put(TAG_DISTANCE, distance);
- map.put(TAG_NO,no);
- locationtList.add(i, map);
- }
- Collections.sort(locationtList, new MapComparator(TAG_DISTANCE));
- ListAdapter adapter = new SimpleAdapter(this, locationtList,
- R.layout.rowlist, new String[] { TAG_NAME, TAG_DISTANCE },
- new int[] { R.id.tvNama, R.id.tvAlamat });
- listlokasi.setAdapter(adapter);
- listlokasi.setOnItemClickListener(new OnItemClickListener() {
- @Override
- public void onItemClick(AdapterView<?> arg0, View view, int posisi,
- long id) {
- String no = null,nama = null,alamat = null,telpon = null,foto = null,destlat,destlng;
- double dlat = 0, dlng = 0;
- for(int i=0;i<locationtList.size();i++)
- {
- if(posisi==i)
- {
- HashMap<String, String> pecah_data=locationtList.get(i);
- String nomor = pecah_data.get("no");
- db.getNearbyLocation(nomor);
- System.out.println("nomor: "+nomor);
- for(int j=0;j<db.namamap.size();j++){
- System.out.println("j: "+j);
- no=db.nomap.get(j);
- nama=db.namamap.get(j);
- alamat=db.alamatmap.get(j);
- telpon=db.telponmap.get(j);
- foto=db.gambarmap.get(j);
- destlat=db.latmap.get(j);
- destlng=db.lngmap.get(j);
- dlat = Double.parseDouble(destlat);
- dlng = Double.parseDouble(destlng);
- }
- easyTracker.send(MapBuilder.createEvent("Nama lokasi: "+nama,
- null, null, null).build());
- Intent intent = new Intent (Nearby.this,LocationDetail.class);
- intent.putExtra("no", no);
- intent.putExtra("nama", nama);
- intent.putExtra("alamat", alamat);
- intent.putExtra("telpon", telpon);
- intent.putExtra("latitude", dlat);
- intent.putExtra("longitude", dlng);
- intent.putExtra("foto", foto);
- startActivity(intent);
- }
- }
- }
- });
- }
- public float getDistance(double destlat, double destlng){
- float[] results= new float[1];
- Location.distanceBetween(curlat, curlng, destlat, destlng, results);
- float distance = results[0];
- return distance;
- }
- @Override
- public void onLocationChanged(Location location) {
- // TODO Auto-generated method stub
- this.curlat = location.getLatitude();
- this.curlng = location.getLongitude();
- fill();
- }
- @Override
- public void onStatusChanged(String provider, int status, Bundle extras) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onProviderEnabled(String provider) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onProviderDisabled(String provider) {
- // TODO Auto-generated method stub
- }
- @Override
- public void onPause(){
- super.onPause();
- locationManager.removeUpdates(this);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment