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

Reply via email to