Custom Google map marker for android add button on info window -


i trying develop app have plot markers on map using json parsing. have no idea custom markers info window, want know how can add button on info window can jump activity on info window of marker. here code,

public class mainactivity extends appcompatactivity     implements navigationview.onnavigationitemselectedlistener,onmapreadycallback , googleapiclient.connectioncallbacks,googleapiclient.onconnectionfailedlistener, view.onclicklistener {  supportmapfragment smapfragment; public googlemap mmap; private httpurlconnection urlconnection = null; private bufferedreader reader = null; private string forecastjsonstr = null; loginactivity loginactivity; private static final string tag = "mapsactivity"; sharedpreferences sharedpreferences;   //hereyes double lat, lon;   //this url private string url = "url";  @override protected void oncreate(bundle savedinstancestate) {     super.oncreate(savedinstancestate);     setcontentview(r.layout.activity_main);     toolbar toolbar = (toolbar) findviewbyid(r.id.toolbar);     setsupportactionbar(toolbar);     smapfragment = supportmapfragment.newinstance();     loginactivity = new loginactivity();      drawerlayout drawer = (drawerlayout) findviewbyid(r.id.drawer_layout);     actionbardrawertoggle toggle = new actionbardrawertoggle(             this, drawer, toolbar, r.string.navigation_drawer_open, r.string.navigation_drawer_close);     drawer.setdrawerlistener(toggle);     toggle.syncstate();      navigationview navigationview = (navigationview) findviewbyid(r.id.nav_view);     navigationview.setnavigationitemselectedlistener(this);     smapfragment.getmapasync(this);     android.support.v4.app.fragmentmanager sfm = getsupportfragmentmanager();     sfm.begintransaction().add(r.id.map, smapfragment).commit();       //sugesstion       placeautocompletefragment autocompletefragment = (placeautocompletefragment)             getfragmentmanager().findfragmentbyid(r.id.place_autocomplete_fragment);      autocompletefragment.setonplaceselectedlistener(new placeselectionlistener() {         @override         public void onplaceselected(place place) {             // todo: info selected place.              try {                 string placename = (string) place.getname();                 latlng placelat = place.getlatlng();                 double lat = placelat.latitude;                 double lng = placelat.longitude;                     string searchlat=string.valueof(lat);                 string searchlog=string.valueof(lng);                 searchrequest(searchlat,searchlog);                  onmapsearch(placename);              } catch (ioexception e) {                 e.printstacktrace();             }               log.i(tag, "place: " + place.getname());             //log.i(tag, "lat: " + place.getlatlng());         }          @override         public void onerror(status status) {             // todo: handle error.             log.i(tag, "an error occurred: " + status);         }     });  } private void searchrequest(final string latt, final string lonn) {       //for search result      class retrivemarkertask extends asynctask<string, void, string> {         private context context;           public retrivemarkertask(context context) {             this.context = context;         }          @override         protected void onpreexecute() {             pd = new progressdialog(mainactivity.this);             pd.settitle("please wait ...");             pd.setmessage("connecting loofre network");             pd.setcancelable(false);             pd.show();           }          protected string doinbackground(string... markergeturl) {             string llat=markergeturl[0];             string llon=markergeturl[1];             log.d("lattt",llat); //ok let me run ok br             if (android.os.debug.isdebuggerconnected())                 android.os.debug.waitfordebugger();              try {                  double lat = 0;                 double lon = 0;                 double lat_asynch= double.parsedouble(llat);                 double lon_asynch= double.parsedouble(llon);                 gpstracker gps = new gpstracker(mainactivity.this);                 log.d("trueee", string.valueof(gps.cangetlocation()));                 // latitude = string.valueof(gps.getlatitude());                 // longitude = string.valueof(gps.getlongitude())                  int = 0;                  string baseurl = url;                 if (llat!= null) {                     baseurl += "&radius=5&latitude=" + string.valueof(lat_asynch) + "&longitude=" + string.valueof(lon_asynch);                     log.d("url", baseurl);                 }                 url dataurl = new url(baseurl);                 log.d("urltotal", baseurl);                 //radius=5&latitude=28.669880&longitude=77.141403                 //search error in google                  urlconnection = (httpurlconnection) dataurl.openconnection();                 urlconnection.setrequestmethod("get");                 urlconnection.connect();                  // read input stream string                 inputstream inputstream = urlconnection.getinputstream();                 stringbuffer buffer = new stringbuffer();                 if (inputstream == null) {                     // nothing do.                     return null;                 }                 reader = new bufferedreader(new inputstreamreader(inputstream));                  string line;                 while ((line = reader.readline()) != null) {                     // since it's json, adding newline isn't necessary (it won't affect parsing)                     // make debugging lot easier if print out completed                     // buffer debugging.                     buffer.append(line + "\n");                 }                  if (buffer.length() == 0) {                     // stream empty.  no point in parsing.                     return null;                 }                 forecastjsonstr = buffer.tostring();             } catch (ioexception e) {                 log.e("placeholderfragment", "error ", e);                 forecastjsonstr = "error, exception raised.";             } {                 if (urlconnection != null) {                  }                 if (reader != null) {                     try {                         reader.close();                     } catch (final ioexception e) {                         log.e("placeholderfragment", "error closing stream", e);                     }                 }             }             return forecastjsonstr;             //pase here          }           //on post execution searchresult          protected void onpostexecute(string markers) {               // map search             log.d("string response", markers);              toast.maketext(mainactivity.this, "plotting thekha", toast.length_long).show();              try {                  jsonarray jsonarray = new jsonarray(markers);                 (int = 0; < jsonarray.length(); i++) {                     //create marker of each place in json data                     jsonobject jsonobject = jsonarray.getjsonobject(i);                     final string placename = jsonobject.getstring("name");                     string placeaddress = jsonobject.getstring("address");                     double latitude = jsonobject.getjsonarray("latlang").getdouble(0);                     double longitude = jsonobject.getjsonarray("latlang").getdouble(1);                     latlng loc = new latlng(latitude, longitude);                     //marker size change code                     int height = 150;                     int width = 150;                     bitmapdrawable bitmapdrawable = (bitmapdrawable) getresources().getdrawable(r.drawable.thekhaicon);                     bitmap b = bitmapdrawable.getbitmap();                     bitmap smallmarker = bitmap.createscaledbitmap(b, width, height, false);                     //marker size change code ends here                     //mmap.movecamera(cameraupdatefactory.newlatlngzoom(loc, 13));                      mmap.addmarker(new markeroptions()                             .icon(bitmapdescriptorfactory.frombitmap(smallmarker))                             .title(placename)                             .snippet(placeaddress)                             .position(loc));                   }                 //marker size change code                 int height = 120;                 int width = 120;                 bitmapdrawable bitmapdrawable = (bitmapdrawable) getresources().getdrawable(r.drawable.iamhereicon);                 bitmap b = bitmapdrawable.getbitmap();                 bitmap youarehere = bitmap.createscaledbitmap(b, width, height, false);                 latlng point = new latlng(double.parsedouble(latt), double.parsedouble(lonn));                 cameraupdate cameraupdate = cameraupdatefactory.newlatlngzoom(point, 13);                 mmap.animatecamera(cameraupdate);                   pd.dismiss();               } catch (jsonexception e) {                 e.printstacktrace();             }          }     }     retrivemarkertask retrivemarkertask=new retrivemarkertask(mainactivity.this);     retrivemarkertask.execute(latt,lonn); } 


Comments

Popular posts from this blog

Command prompt result in label. Python 2.7 -

javascript - How do I use URL parameters to change link href on page? -

amazon web services - AWS Route53 Trying To Get Site To Resolve To www -