android - using MylocationOverlay in osmdroid -


i can't make mylocationoverlay work, searched , tried many codes not single working one. black screen. need keep track of user location. managed track user location regular overlay notice each new location map downloaded again (which anoing , not practical).

the code using regular overlay:

import java.util.arraylist; import org.osmdroid.defaultresourceproxyimpl; import org.osmdroid.resourceproxy; import org.osmdroid.tileprovider.tilesource.tilesourcefactory; import org.osmdroid.util.geopoint; import org.osmdroid.views.mapcontroller; import org.osmdroid.views.mapview; import org.osmdroid.views.overlay.itemizediconoverlay; import org.osmdroid.views.overlay.itemizedoverlay; import org.osmdroid.views.overlay.overlayitem; import org.osmdroid.views.util.constants.mapviewconstants;  import android.app.activity; 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.widget.toast;  public class onlinetracking extends activity implements locationlistener, mapviewconstants  {     private mapview mmapview;      private mapcontroller mapcontroller;      private locationmanager mlocmgr;      private itemizedoverlay<overlayitem> mmylocationoverlay;      private resourceproxy mresourceproxy;   arraylist<overlayitem> items;  @override  public void oncreate(bundle savedinstancestate)  {      super.oncreate(savedinstancestate);      mresourceproxy = new defaultresourceproxyimpl(getapplicationcontext());      setcontentview(r.layout.main);      initilaizemap();     mlocmgr = (locationmanager) getsystemservice(location_service);      mlocmgr.requestlocationupdates(locationmanager.gps_provider, 5000, 3, this);       }   public void initilaizemap() {     mmapview = (mapview) this.findviewbyid(r.id.mapview);      mmapview.settilesource(tilesourcefactory.mapnik);      //mmapview.setusedataconnection(false);     mmapview.setbuiltinzoomcontrols(true);      mmapview.setmultitouchcontrols(true);      mapcontroller = this.mmapview.getcontroller();      mapcontroller.setzoom(15);      mapcontroller.setcenter(new geopoint(15.610762,32.540345));   }  public void displaylocation(geopoint loc) {     //mapcontroller.setcenter(loc);     items = new arraylist<overlayitem>();      // put overlay icon little way map center     items.add(new overlayitem("here are", "we keep track of you", loc));     /* ontaplistener markers, shows simple toast. */      this.mmylocationoverlay = new itemizediconoverlay<overlayitem>(items,              new itemizediconoverlay.onitemgesturelistener<overlayitem>() {                  @override                  public boolean onitemsingletapup(final int index,                          final overlayitem item) {                      toast.maketext(                              onlinetracking.this,                              "single tap" + item.mtitle, toast.length_long).show();                      return true; // 'handled' event.                  }                  @override                  public boolean onitemlongpress(final int index,                          final overlayitem item) {                      toast.maketext(                              onlinetracking.this,                               "longpress '" + item.mtitle ,toast.length_long).show();                      return false;                  }              }, mresourceproxy);      mmapview.getoverlays().clear();     this.mmapview.getoverlays().add(this.mmylocationoverlay);      //mmapview.invalidate(); }  public void onlocationchanged(location location) {      int lat = (int) (location.getlatitude() * 1e6);      int lng = (int) (location.getlongitude() * 1e6);      geopoint gpt = new geopoint(lat, lng);      displaylocation(gpt); }   @override  public void onproviderdisabled(string arg0) {}   @override  public void onproviderenabled(string provider) {}   @override  public void onstatuschanged(string provider, int status, bundle extras) {}  } 

seems not developer error. have tried running following sample project uses osmdroid:

http://android-er.blogspot.it/2012/06/add-mylocationoverlay-on-openstreetmap.html

on emulator running android 2.2 getting black screen @ moment mylocationoverlay instantiated. tried run same project under emulated device same specifications, running android 4.2, , worked.

i cannot explain why happenning, in case have chooosen use traditional approach , typical itemizediconoverlay


Comments

Popular posts from this blog

django - How can I change user group without delete record -

java - Need to add SOAP security token -

java - EclipseLink JPA Object is not a known entity type -