location - android method (distance between()) -
enter code here package tryanabtry.opa; import java.util.list; import android.content.context; import android.graphics.drawable.drawable; import android.location.location; import android.location.locationlistener; import android.location.locationmanager; import android.os.bundle; import android.util.log; 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.overlay; import com.google.android.maps.overlayitem; public class tryanabtry extends mapactivity{ private mapview mapview; private mapcontroller mc; geopoint p, p2, p3, p4; list<overlay> mapoverlays; drawable drawable, drawable2 , drawable3, drawable4; helloitemizedoverlay itemizedoverlay, itemizedoverlay2 , itemizedoverlay3, itemizedoverlay4; /** called when activity first created. */ @override public void oncreate(bundle savedinstancestate) { try{ super.oncreate(savedinstancestate); setcontentview(r.layout.main); /* use locationmanager class obtain gps locations */ locationmanager mlocmanager = (locationmanager)getsystemservice(context.location_service); locationlistener mloclistener = new mylocationlistener(); mlocmanager.requestlocationupdates( locationmanager.gps_provider, 0, 0, mloclistener); mapview = (mapview) findviewbyid(r.id.mapview); // enable street view default mapview.setstreetview(true); mapview.setbuiltinzoomcontrols(true); mc = mapview.getcontroller(); mc.setzoom(12); addoverlays(); } catch(exception e){ log.d("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",e.getmessage()); } } public void addoverlays(){ string [] coordinates = {"31.216487288475037","29.932637214660645" ,"30.084123015403748", "51.5002" , "-0.1262","31.337149143218994"}; double lat = 31.216487288475037;//lat2 = 51.5002,lat3=29.987091422080994; double log = 29.932637214660645;// log2 = -0.1262,log3=31.43909454345703; p = new geopoint((int) (lat * 1e6), (int) (log * 1e6)); // p2 = new geopoint( (int) (lat2 * 1e6), (int) (log2 * 1e6)); // p3=new geopoint( (int) (lat3 * 1e6), (int) (log3 * 1e6)); mapoverlays = mapview.getoverlays(); drawable = this.getresources().getdrawable(r.drawable.ballon); //drawable2 = this.getresources().getdrawable(r.drawable.ballon); // drawable3 = this.getresources().getdrawable(r.drawable.ballon); itemizedoverlay = new helloitemizedoverlay(drawable,this); // itemizedoverlay2 = new helloitemizedoverlay(drawable2,this); // itemizedoverlay3 = new helloitemizedoverlay(drawable3,this); overlayitem overlayitem = new overlayitem(p, "cairo", " over1"); // overlayitem over2 = new overlayitem(p2, "ulm", "over2"); //overlayitem over3 = new overlayitem(p3, "offff", "over3"); itemizedoverlay.addoverlay(overlayitem); mapoverlays.add(itemizedoverlay); // itemizedoverlay2.addoverlay(over2); // mapoverlays.add(itemizedoverlay2); // itemizedoverlay3.addoverlay(over3); // mapoverlays.add(itemizedoverlay3); mc.setzoom(17); // mc.animateto(p); } /* class location listener */ public class mylocationlistener implements locationlistener { @override public void onlocationchanged(location loc) { geopoint point = new geopoint( (int) (loc.getlatitude() * 1e6), (int) (loc.getlongitude() * 1e6)); //doubletostring(loc.getlatitude()); //doubletostring(loc.getlongitude()); /////////////////////////////////////////////////// loc.getaccuracy(); //////////////////////////////////////////////////////////// string text = "my current location is: " + "latitud ="+ loc.getlatitude() + "longitud =" + loc.getlongitude(); toast.maketext( getapplicationcontext(), text, toast.length_short).show(); mc.animateto(point); ///////////////////////////////////////7ewar el remove ///////////////if (point ==p){ ///////////////mapview.getoverlays().remove(p); ////////////////// } } private double distance(double lat1, double lon1, double lat2, double lon2, char unit) { location loc = null; geopoint point = new geopoint( (int) (loc.getlatitude() * 1e6), (int) (loc.getlongitude() * 1e6)); lat1=loc.getlatitude(); lon1=loc.getlongitude(); lat2= 31.216487288475037; lon2=29.932637214660645; double theta = lon1 - lon2; double dist = math.sin(deg2rad(lat1)) * math.sin(deg2rad(lat2)) + math.cos(deg2rad(lat1)) * math.cos(deg2rad(lat2)) * math.cos(deg2rad(theta)); dist = math.acos(dist); dist = rad2deg(dist); dist = dist * 60 * 1.1515; if (unit == 'k') { dist = dist * 1.609344; } else if (unit == 'n') { dist = dist * 0.8684; } return (dist); } //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //:: function converts decimal degrees radians ::: //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: private double deg2rad(double deg) { return (deg * math.pi / 180.0); } //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: //:: function converts radians decimal degrees ::: //::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: private double rad2deg(double rad) { return (rad / math.pi * 180.0); } private void doubletostring(double latitude) { // todo auto-generated method stub } public void onproviderdisabled(string provider) { toast.maketext( getapplicationcontext(), "gps disabled", toast.length_short ).show(); } public void onproviderenabled(string provider) { toast.maketext( getapplicationcontext(), "gps enabled", toast.length_short).show(); } public void onstatuschanged(string provider, int status, bundle extras) { } protected boolean isroutedisplayed() { return false; } }/* end of class mylocationlistener */ @override protected boolean isroutedisplayed() { // todo auto-generated method stub return false; } } /* end of usegps activity*/
so here method distance must distance between current location , other location enter ?!! work or there must add method
Comments
Post a Comment