Here is my code !! i want to add overlay item in my current location !! but seems a problem i cant can any one check what i have to add to my code package tryanabtry.opa;
import java.util.List; import android.app.PendingIntent; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Point; import android.graphics.drawable.Drawable; import android.location.Location; import android.location.LocationListener; import android.location.LocationManager; import android.os.Bundle; import android.os.Handler; import android.util.Log; import android.widget.TextView; 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; int error=100; GeoPoint p, p2, p3, p4,p5,p6,p7,p8,p9,p10,p11,p12,p13; List<Overlay> mapOverlays; Drawable drawable, drawable2 , drawable3, drawable4,drawable6,drawable7,drawable8,drawable9,drawable10,drawable11,drawable12,drawable13,drawable5; HelloItemizedOverlay itemizedOverlay, itemizedOverlay2 , itemizedOverlay3, itemizedOverlay4,itemizedOverlay5,itemizedOverlay6,itemizedOverlay7,itemizedOverlay8,itemizedOverlay9,itemizedOverlay10,itemizedOverlay11,itemizedOverlay12,itemizedOverlay13; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { try{ super.onCreate(savedInstanceState); setContentView(R.layout.main); /* Use the LocationManager class to 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 by default mapView.setStreetView(true); // enable to show Satellite view mapView.setSatellite(true); // enable to show Traffic on map // mapView.setTraffic(true); mapView.setBuiltInZoomControls(true); mc = mapView.getController(); //mapView.setStreetView(true); //mapView.setSatellite(true); mc.setZoom(12); addOverLays(); } catch(Exception e){ Log.d("eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee",e.getMessage()); } } ///lat2=29.98763859272003; //log2 = 31.44235074520111 public void addOverLays(){ String [] coordinates = {"31.216487288475037","29.932637214660645" ,"30.084123015403748", "51.5002" , "-0.1262","31.337149143218994"}; double lat = 29.98739718380868,lat2 =29.98763859272003,lat3=29.987574219703674,lat4=29.98718498160553; double log = 31.442527770886084, log2 = 31.44235074520111,log3=31.44225418567575,log4=31.442527770996094; 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)); p4=new GeoPoint( (int) (lat4 * 1e6), (int) (log4 * 1e6)); p5=new GeoPoint( (int) ((lat3+lat2)/2 * 1e6), (int) (log3 * 1e6)); p6=new GeoPoint( (int) ((lat3+lat4)/2 * 1e6), (int) (log3 * 1e6)); p7=new GeoPoint( (int) ((lat3+lat)/2 * 1e6), (int) (log3 * 1e6)); p8=new GeoPoint( (int) ((lat+lat2)/2 * 1e6), (int) (log3 * 1e6)); p9=new GeoPoint( (int) ((lat2+lat4)/2 * 1e6), (int) (log3 * 1e6)); // p10=new GeoPoint( (int) ((lat+lat3)/2 * 1e6), (int) (log3 * 1e6)); //p11=new GeoPoint( (int) ((lat3+lat2)/2 * 1e6), (int) (log3 * 1e6)); // Location loc = null; //p4 = new GeoPoint( (int) (loc.getLatitude() * 1E6), // (int) (loc.getLongitude() * 1E6)); // p3=new GeoPoint( (int) (lat3 * 1e6), (int) (log3 * 1e6)); mapOverlays = mapView.getOverlays(); drawable = this.getResources().getDrawable(R.drawable.vitblue); drawable2 = this.getResources().getDrawable(R.drawable.ballon); drawable3 = this.getResources().getDrawable(R.drawable.blackaaaaa); drawable4 = this.getResources().getDrawable(R.drawable.vitblue); itemizedOverlay = new HelloItemizedOverlay(drawable,this); itemizedOverlay2 = new HelloItemizedOverlay(drawable2,this); itemizedOverlay3 = new HelloItemizedOverlay(drawable3,this); itemizedOverlay4 = new HelloItemizedOverlay(drawable4,this); OverlayItem overlayitem = new OverlayItem(p, "Cairo", " over1"); OverlayItem over2 = new OverlayItem(p2, "ulm", "over2"); OverlayItem over3 = new OverlayItem(p3, "offff", "over3"); OverlayItem over4 = new OverlayItem(p4, "offff", "over4"); itemizedOverlay.addOverlay(overlayitem); mapOverlays.add(itemizedOverlay); itemizedOverlay2.addOverlay(over2); mapOverlays.add(itemizedOverlay2); itemizedOverlay3.addOverlay(over3); mapOverlays.add(itemizedOverlay3); itemizedOverlay4.addOverlay(over4); mapOverlays.add(itemizedOverlay4); mc.setZoom(17); } /* Class My 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); if ((loc.getLatitude() * 1E6>=(p3.getLatitudeE6()-error))|| (loc.getLongitude() * 1E6 < (p3.getLatitudeE6()+error))) { mapView.getOverlays().remove(itemizedOverlay3); mapView.invalidate(); } ///////////////if (point ==p){ ///////////////mapView.getOverlays().remove(p); ////////////////// } //mapView.getOverlays().remove(p); } private Resources getResources() { // TODO Auto-generated method stub return null; } 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*/ My HelloOverlay classs package tryanabtry.opa; import java.util.ArrayList; import tryanabtry.opa.tryanabtry.MyLocationListener; import android.app.AlertDialog; import android.app.AlertDialog.Builder; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Canvas; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Path; import android.graphics.Point; import android.graphics.drawable.Drawable; import android.util.Log; import com.google.android.maps.GeoPoint; import com.google.android.maps.ItemizedOverlay; import com.google.android.maps.MapView; import com.google.android.maps.Overlay; import com.google.android.maps.OverlayItem; import com.google.android.maps.Projection; public class HelloItemizedOverlay extends ItemizedOverlay<OverlayItem> { private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>(); tryanabtry m = new tryanabtry(); public HelloItemizedOverlay(Drawable defaultMarker, tryanabtry n) { super(boundCenterBottom(defaultMarker)); m = n; } @Override protected OverlayItem createItem(int i) { return mOverlays.get(i); } @Override public int size() { return mOverlays.size(); } public void addOverlay(OverlayItem overlay) { mOverlays.add(overlay); populate(); } // ////////// public void draw(android.graphics.Canvas canvas, MapView mapView, boolean shadow) { class MapOverlay extends Overlay { private GeoPoint pointToDraw; public void setPointToDraw(GeoPoint point) { pointToDraw = point; } public GeoPoint getPointToDraw() { return pointToDraw; } @Override public boolean draw(Canvas canvas, MapView mapView, boolean shadow, long when) { super.draw(canvas, mapView, shadow); // convert point to pixels Point screenPts = new Point(); mapView.getProjection().toPixels(pointToDraw, screenPts); // add marker Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ballon); canvas.drawBitmap(bmp, screenPts.x, screenPts.y - 24, null); // 24 // is // the // height // of // image return true; } private Resources getResources() { // TODO Auto-generated method stub return null; } } GeoPoint p = new GeoPoint((int) (29.987574219703674 * 1E6), (int) (31.44225418567575 * 1E6)); GeoPoint p2 = new GeoPoint((int) ( 29.98763859272003 * 1E6), (int) (31.44235074520111 * 1E6)); GeoPoint p3 = new GeoPoint((int) (29.98718498160553* 1E6), (int) (31.442527770996094 * 1E6)); GeoPoint p4= new GeoPoint((int) (29.98739718380868 * 1E6), (int) (31.442527770886084 * 1E6)); // Let's assume you've assigned values to these two GeoPoints now. Projection projection = mapView.getProjection(); Point startingPoint = projection.toPixels(p, null); Point startingPoint1 = projection.toPixels(p, null); Point startingPoint2= projection.toPixels(p2, null); Point endingPoint = projection.toPixels(p2, null); Point endingPoint1 = projection.toPixels(p3, null); Point endingPoint2= projection.toPixels(p4, null); // Create the path containing the line between the two points. Path path = new Path(); path.moveTo(startingPoint.x, startingPoint.y); path.lineTo(endingPoint.x, endingPoint.y); Path path1 = new Path(); path1.moveTo(startingPoint1.x, startingPoint1.y); path1.lineTo(endingPoint1.x, endingPoint1.y); Path path2 = new Path(); path2.moveTo(startingPoint2.x, startingPoint2.y); path2.lineTo(endingPoint2.x, endingPoint2.y); // Setup the paint. You'd probably do this outside of the draw() method // to be more efficient. Paint paint = new Paint(); paint.setStyle(Paint.Style.STROKE); paint.setColor(Color.RED); Paint paint1 = new Paint(); paint1.setStyle(Paint.Style.STROKE); paint1.setColor(Color.GREEN); Paint paint2 = new Paint(); paint2.setStyle(Paint.Style.STROKE); paint2.setColor(Color.YELLOW); // Draw the path! super.draw(canvas, mapView, shadow); // el super de 3shnnn to addd koloooo overlay w path canvas.drawPath(path, paint); canvas.drawPath(path1, paint1); canvas.drawPath(path2, paint2); } @Override public boolean onTap(int i) { try { String s = mOverlays.get(0).getSnippet(); String[] infos = s.split(","); Builder builder = new AlertDialog.Builder(m); builder.setTitle("Information about: " + infos[0]); builder.setIcon(m.getResources().getDrawable( m.getResources().getIdentifier(mOverlays.get(0).getTitle(), "drawable", "net.learn2develop.GoogleMaps"))); builder.setMessage("age: " + infos[1] + "\njob: " + infos[2] + "\ninstitute: " + infos[3]); builder.setPositiveButton("ok", null); builder.show(); } catch (Exception e) { Log.d("3'lt", "lihh ya wdi3", e); } return true; } } -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to android-developers@googlegroups.com To unsubscribe from this group, send email to android-developers+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-developers?hl=en