java - Set Map Location Radius -


i'm facing issue related maps. issue when customer ordered food order goes drivers. want if customer lives in xyz area order goes drivers in xyz area not drivers or order goes 10/15km radius customer location

here map code:

public class mapsactivity extends appcompatactivity         implements onmapreadycallback,         googleapiclient.connectioncallbacks,         googleapiclient.onconnectionfailedlistener,         com.google.android.gms.location.locationlistener {      googlemap mgooglemap;     supportmapfragment mapfrag;     locationrequest mlocationrequest;     googleapiclient mgoogleapiclient;     location mlastlocation;        marker mcurrlocationmarker;     double mcurrlat=0.0,mcurrlong=0.0;       geocoder geocoder;       firebaseuser currentfirebaseuser;     databasereference databasereference;     longtitudelatitude set_long_lat;       button confirmlocation;     tinydb db;      @override     protected void oncreate(bundle savedinstancestate)     {         super.oncreate(savedinstancestate);         setcontentview(r.layout.activity_maps);          currentfirebaseuser = firebaseauth.getinstance().getcurrentuser();         databasereference = firebasedatabase.getinstance().getreference(constants.orders);          confirmlocation=(button)findviewbyid(r.id.confirmlocation);          db=new tinydb(getapplicationcontext());             mapfrag = (supportmapfragment) getsupportfragmentmanager().findfragmentbyid(r.id.map);         mapfrag.getmapasync(this);     }      @override     public void onpause() {         super.onpause();          //stop location updates when activity no longer active         if (mgoogleapiclient != null) {             locationservices.fusedlocationapi.removelocationupdates(mgoogleapiclient, (com.google.android.gms.location.locationlistener) this);         }     }      @override     public void onmapready(googlemap googlemap)     {         mgooglemap=googlemap;         mgooglemap.setmaptype(googlemap.map_type_terrain);          //initialize google play services         if (android.os.build.version.sdk_int >= build.version_codes.m) {             if (contextcompat.checkselfpermission(this,                     manifest.permission.access_fine_location)                     == packagemanager.permission_granted) {                 //location permission granted                 buildgoogleapiclient();                 mgooglemap.setmylocationenabled(true);             } else {                 //request location permission                 checklocationpermission();             }         }         else {             buildgoogleapiclient();             mgooglemap.setmylocationenabled(true);         }     }      protected synchronized void buildgoogleapiclient() {         mgoogleapiclient = new googleapiclient.builder(this)                 .addconnectioncallbacks(this)                 .addonconnectionfailedlistener(this)                 .addapi(locationservices.api)                 .build();         mgoogleapiclient.connect();     }      @override     public void onconnected(bundle bundle) {         mlocationrequest = new locationrequest();       //  mlocationrequest.setinterval(100000);         //mlocationrequest.setfastestinterval(100000);         mlocationrequest.setpriority(locationrequest.priority_balanced_power_accuracy);         if (contextcompat.checkselfpermission(this,                 manifest.permission.access_fine_location)                 == packagemanager.permission_granted) {             locationservices.fusedlocationapi.requestlocationupdates(mgoogleapiclient, mlocationrequest,this);         }     }      @override     public void onconnectionsuspended(int i) {}      @override     public void onconnectionfailed(connectionresult connectionresult) {}      @override     public void onlocationchanged(final location location)     {         mlastlocation = location;         if (mcurrlocationmarker != null) {             mcurrlocationmarker.remove();         }         geocoder=new geocoder(this, locale.getdefault());          set_long_lat = new longtitudelatitude();          //place current location marker         latlng latlng = new latlng(location.getlatitude(), location.getlongitude());         markeroptions markeroptions = new markeroptions();         markeroptions.position(latlng);         //   set_long_lat.setlat(location.getlatitude());         //set_long_lat.setlng(location.getlongitude());         //set_long_lat.setaddress(address);       //  databasereference.child(currentfirebaseuser.getuid()).setvalue(set_long_lat);          markeroptions.title("current position");         markeroptions.icon(bitmapdescriptorfactory.defaultmarker(bitmapdescriptorfactory.hue_magenta));         mcurrlocationmarker = mgooglemap.addmarker(markeroptions);         mcurrlocationmarker.setdraggable(true);         markeroptions.position(latlng);             //move map camera         mgooglemap.movecamera(cameraupdatefactory.newlatlngzoom(latlng,16));         mgooglemap.setonmarkerdraglistener(new googlemap.onmarkerdraglistener() {              @override             public void onmarkerdrag(marker arg0) {                 // todo auto-generated method stub                 log.d("marker", "dragging");             }              @override             public void onmarkerdragend(marker arg0) {                 // todo auto-generated method stub                 latlng markerlocation = mcurrlocationmarker.getposition();              //   toast.maketext(mapsactivity.this, markerlocation.tostring(), toast.length_long).show();                 mcurrlat=markerlocation.latitude;                 mcurrlong=markerlocation.longitude;                  toast.maketext(mapsactivity.this, mcurrlat.tostring()+ mcurrlong.tostring() , toast.length_long).show();                 log.d("marker", "finished");             }              @override             public void onmarkerdragstart(marker arg0) {                 // todo auto-generated method stub                 log.d("marker", "started");              }         });           confirmlocation.setonclicklistener(new view.onclicklistener() {             @override             public void onclick(view view) {                 if(mcurrlong !=0.0 || mcurrlat !=0.0)                 {                    db.putstring("latitude", mcurrlat.tostring());                     db.putstring("longitude", mcurrlong.tostring());                   }                 else                 {                     db.putstring("latitude", string.valueof(location.getlatitude()));                     db.putstring("longitude", string.valueof(location.getlongitude()));                      }                     databasereference.child(currentfirebaseuser.getuid()).removevalue();                 intent intent=new intent(mapsactivity.this,category.class);                 startactivity(intent);             }         });          }        public static final int my_permissions_request_location = 99;     private void checklocationpermission() {         if (contextcompat.checkselfpermission(this, manifest.permission.access_fine_location)                 != packagemanager.permission_granted) {              // should show explanation?             if (activitycompat.shouldshowrequestpermissionrationale(this,                     manifest.permission.access_fine_location)) {                  // show explanation user *asynchronously* -- don't block                 // thread waiting user's response! after user                 // sees explanation, try again request permission.                 new alertdialog.builder(this)                         .settitle("location permission needed")                         .setmessage("this app needs location permission, please accept use location functionality")                         .setpositivebutton("ok", new dialoginterface.onclicklistener() {                             @override                             public void onclick(dialoginterface dialoginterface, int i) {                                 //prompt user once explanation has been shown                                 activitycompat.requestpermissions(mapsactivity.this,                                         new string[]{manifest.permission.access_fine_location},                                         my_permissions_request_location );                             }                         })                         .create()                         .show();               } else {                 // no explanation needed, can request permission.                 activitycompat.requestpermissions(this,                         new string[]{manifest.permission.access_fine_location},                         my_permissions_request_location );             }         }     }      @override     public void onrequestpermissionsresult(int requestcode,                                            string permissions[], int[] grantresults) {         switch (requestcode) {             case my_permissions_request_location: {                 // if request cancelled, result arrays empty.                 if (grantresults.length > 0                         && grantresults[0] == packagemanager.permission_granted) {                      // permission granted, yay!                     // location-related task need do.                     if (contextcompat.checkselfpermission(this,                             manifest.permission.access_fine_location)                             == packagemanager.permission_granted) {                          if (mgoogleapiclient == null) {                             buildgoogleapiclient();                         }                         mgooglemap.setmylocationenabled(true);                     }                  } else {                      // permission denied, boo! disable                     // functionality depends on permission.                     toast.maketext(this, "permission denied", toast.length_long).show();                 }                 return;             }              // other 'case' lines check other             // permissions app might request         }     }  } 

i'm beginner in maps. not working these type of applications before.


Comments

Popular posts from this blog

javascript - Create a stacked percentage column -

Optimising Firebase database by automatically overwriting data -

javascript - Angular UI-Grid customTemplate directive causing rows to load slowly/? -