Can't Mark While Showing The Current Location In 'mapview'
Hear is my project In my project I am showing my current location,showing the current lat-long.But I'm not able to mark my current position in android. Thnx in advance. @Override
Solution 1:
mapController.animateTo(point);
mapController.setZoom(16);
MapOverlay mapOverLay=new MapOverlay();
mapOverLay.setPointToDraw(point);
List<Overlay> listOfOverlays=map.getOverlays();
listOfOverlays.clear();
listOfOverlays.add(mapOverLay);
Replace the above lines with below lines//where lat and long are fetched from gps.
Drawablesrcdrawable= getApplicationContext().getResources().getDrawable(R.drawable.pin_blue);
CustomItemizedOverlaysrcitemizedOverlay=newCustomItemizedOverlay(srcdrawable, getApplicationContext());
GeoPointsrcpoint=newGeoPoint((int)( Double.parseDouble(lat) * 1E6),(int)( Double.parseDouble(lng)* 1E6));
OverlayItemsrcoverlayitem=newOverlayItem(srcpoint, "Hello!", "This is your Location.");
srcitemizedOverlay.addOverlay(srcoverlayitem);
mapView.getOverlays().clear();
mapView.getOverlays().add(srcitemizedOverlay);
mapController.animateTo(srcpoint);
mapController.setZoom(16);
//If you want more than one point on map /*
Drawablesrcdrawable= getApplicationContext().getResources().getDrawable(R.drawable.pin_blue);
CustomItemizedOverlaysrcitemizedOverlay=newCustomItemizedOverlay(srcdrawable, getApplicationContext());
forloop(setoflocations){
GeoPointsrcpoint=newGeoPoint((int)( Double.parseDouble(lat) * 1E6),(int)( Double.parseDouble(lng)* 1E6));
OverlayItemsrcoverlayitem=newOverlayItem(srcpoint, "Hello!", "This is your Location.");
if(srcitemizedOverlay!=null && mapController!=null){
srcitemizedOverlay.addOverlay(overlayitem);
mapController.animateTo(point);
animatePoint = point;
}
}
mapView.getOverlays().clear();
mapView.getOverlays().add(srcitemizedOverlay);
*/
also use the below CustomItemizedOverlay.java class
publicclassCustomItemizedOverlayextendsItemizedOverlay<OverlayItem> {
privatefinal ArrayList<OverlayItem> mapOverlays = newArrayList<OverlayItem>();
private Context context;
publicCustomItemizedOverlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
}
publicCustomItemizedOverlay(Drawable defaultMarker, Context context) {
this(defaultMarker);
this.context = context;
}
@Overrideprotected OverlayItem createItem(int i) {
return mapOverlays.get(i);
}
@Overridepublicintsize() {
return mapOverlays.size();
}
publicvoidaddOverlay(OverlayItem overlay) {
mapOverlays.add(overlay);
this.populate();
}
}
Solution 2:
add overlay Icon on current location
myItemizedOverlay.addItem(point , "myPoint1", "myPoint1");
m_mapView.getOverlays().add(myItemizedOverlay);
mapController.animateTo(point);
Post a Comment for "Can't Mark While Showing The Current Location In 'mapview'"