display json output on googlemapn android
I have a main activity which parses the JSON data from my mysql (table tracking:Lattitude and longitude) Now I want to pass this data in to my MapActivity and display on google maps. Any help is highly appreciated. Thanks!

this my JSONactivity

      public class JSONActivity extends Activity{
      private JSONObject jObject;

      private String xResult ="";
      //Seusuaikan url dengan nama domain 
      private String url = "http://10.0.2.2/labiltrack/daftartracking.php";

      @Override
     public void onCreate(Bundle savedInstanceState){
      super.onCreate(savedInstanceState);
      setContentView(R.layout.daftartrack);
      TextView txtResult = (TextView)findViewById(R.id.TextViewResult);
      //url += "?lattitude=" + UserData.getEmail();
      xResult = getRequest(url);
       try {
            parse(txtResult);
        } catch (Exception e) {
            e.printStackTrace();
        }
      }

     private void parse(TextView txtResult) throws Exception {
     // TODO Auto-generated method stub
     jObject = new JSONObject(xResult);
     JSONArray menuitemArray = jObject.getJSONArray("joel");
     String sret="";
     //int j = 0;
     for (int i = 0; i < menuitemArray.length(); i++) {
        sret +=menuitemArray.getJSONObject(i).
                getString("lattitude").toString()+" : ";
        System.out.println(menuitemArray.getJSONObject(i)
                .getString("lattitude").toString());
        System.out.println(menuitemArray.getJSONObject(i).getString(
        "longitude").toString());
        sret +=menuitemArray.getJSONObject(i).getString(
        "lattitude").toString()+"\n";   
        //j=i;
      }txtResult.setText(sret);

     }
     /**
    * Method untuk Mengirimkan data keserver
     * event by button login diklik
     *
     * @param view
     */
     private String getRequest(String url) {
     // TODO Auto-generated method stub
     String sret="";
     HttpClient client = new DefaultHttpClient();
     HttpGet request = new HttpGet(url);
     try{
       HttpResponse response = client.execute(request);
       sret =request(response);

      }catch(Exception ex){
        Toast.makeText(this,"jo "+sret, Toast.LENGTH_SHORT).show();
      }
      return sret;
     }

       /**
      * Method untuk Menenrima data dari server
      * @param response
     * @return
      */
    private String request(HttpResponse response) {
      // TODO Auto-generated method stub

      String result = "";
      try{
          InputStream in = response.getEntity().getContent();
          BufferedReader reader = new BufferedReader(new InputStreamReader(in));
          StringBuilder str = new StringBuilder();
          String line = null;
          while((line = reader.readLine()) != null){
            str.append(line + "\n");
         }
         in.close();
         result = str.toString();
      }catch(Exception ex){
         result = "Error";
      }
      return result;
      }
      }


and this my mapActivity 

    public class mapactivity extends MapActivity {
    private MapView mapView;
     MapController mc;
    GeoPoint p;
    //private MyLocationOverlay me = null;

     class MapOverlays extends com.google.android.maps.Overlay
    {

      @Override
      public boolean draw (Canvas canvas, MapView mapView, boolean shadow, long when)
        {
        super.draw(canvas, mapView, shadow);

        //translate the geopoint to screen pixels
        Point screenPts = new Point();
        mapView.getProjection().toPixels(p, screenPts);

        //tambah marker
        Bitmap bmp = BitmapFactory.decodeResource(getResources (), R.drawable.pin_red);
        canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);
        //mapView.setSatellite(true);       

        return true;
      }  

       @Override
       public boolean onTouchEvent(MotionEvent event, MapView mapView) 
       {   
         //---when user lifts his finger---
         if (event.getAction() == 1) {                
             GeoPoint p = mapView.getProjection().fromPixels(
                 (int) event.getX(),
                 (int) event.getY());

             Toast.makeText(getBaseContext(), 
                     p.getLatitudeE6() / 1E6 + "," + 
                     p.getLongitudeE6() /1E6 , 
                     Toast.LENGTH_SHORT).show();
             mc.animateTo(p);

                //geocoding 
             Geocoder geoCoder = new Geocoder(
                 getBaseContext(), Locale.getDefault());
             try {
                 List<Address> addresses = geoCoder.getFromLocation(
                     p.getLatitudeE6()  / 1E6, 
                     p.getLongitudeE6() / 1E6, 1);

                 String add = "";
                 if (addresses.size() > 0) 
                 {
                     for (int i=0; i<addresses.get(0).getMaxAddressLineIndex(); 
                          i++)
                        add += addresses.get(0).getAddressLine(i) + "\n";
                 }

                 Toast.makeText(getBaseContext(), add, Toast.LENGTH_SHORT).show();
             }
             catch (IOException e) {                
                 e.printStackTrace();
             }   
             return true;
         }
          else                
             return false;
         }      }         

       /** Called when the activity is first created. */
       @SuppressWarnings("deprecation")
     @Override
     public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.mapview1);

     //utk mnampilkan zoom
     mapView = (MapView) findViewById(R.id.mapView);
     LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);  
     View zoomView = mapView.getZoomControls(); 

        zoomLayout.addView(zoomView, 
            new LinearLayout.LayoutParams(
            LayoutParams.FILL_PARENT, 
            LayoutParams.FILL_PARENT)); 
        mapView.displayZoomControls(true);       

        //menampilkan default peta banda aceh 
        mc = mapView.getController();
        String coordinates[] = {"5.550381", "95.318699"};
        double lat = Double.parseDouble(coordinates[0]);
        double lng = Double.parseDouble(coordinates[1]);

            p = new GeoPoint(
            (int) (lat * 1E6), 
            (int) (lng * 1E6));

            mc.animateTo(p);
            mc.setZoom(14); 
            mapView.invalidate();

            //tambah marker
            MapOverlays mapOverlay = new MapOverlays();
            List<Overlay> listOfOverlays = mapView.getOverlays();
            listOfOverlays.clear();
            listOfOverlays.add(mapOverlay);        

            mapView.invalidate();
            }


       public void btnSatelitClick(View v){
      mapView.setSatellite(true);
      mapView.setStreetView(false);

     }

     public void btnjalanClick (View v){
      mapView.setSatellite(false);
      mapView.setStreetView(true);
      }

              protected boolean isRouteDisplayed() 
              {
                  //auto generate method
                  return false;
             }

        }


my jsonactivity is get data from mysql (field "lattitude" and "longitude") into listview, but now I want to display that data (lattitude and longitude) on google map, How Could I do this ?
please help me, thanks in advance !



display json output on googlemapn android
===

I have a main activity which parses the JSON data from my mysql (table tracking:Lattitude and longitude) Now I want to pass this data in to my MapActivity and display on google maps. Any help is highly appreciated. Thanks!

this my JSONactivity

      public class JSONActivity extends Activity{
      private JSONObject jObject;

      private String xResult ="";
      //Seusuaikan url dengan nama domain 
      private String url = "http://10.0.2.2/labiltrack/daftartracking.php";

      @Override
     public void onCreate(Bundle savedInstanceState){
      super.onCreate(savedInstanceState);
      setContentView(R.layout.daftartrack);
      TextView txtResult = (TextView)findViewById(R.id.TextViewResult);
      //url += "?lattitude=" + UserData.getEmail();
      xResult = getRequest(url);
       try {
            parse(txtResult);
        } catch (Exception e) {
            e.printStackTrace();
        }
      }

     private void parse(TextView txtResult) throws Exception {
     // TODO Auto-generated method stub
     jObject = new JSONObject(xResult);
     JSONArray menuitemArray = jObject.getJSONArray("joel");
     String sret="";
     //int j = 0;
     for (int i = 0; i < menuitemArray.length(); i++) {
        sret +=menuitemArray.getJSONObject(i).
                getString("lattitude").toString()+" : ";
        System.out.println(menuitemArray.getJSONObject(i)
                .getString("lattitude").toString());
        System.out.println(menuitemArray.getJSONObject(i).getString(
        "longitude").toString());
        sret +=menuitemArray.getJSONObject(i).getString(
        "lattitude").toString()+"\n";   
        //j=i;
      }txtResult.setText(sret);

     }
     /**
    * Method untuk Mengirimkan data keserver
     * event by button login diklik
     *
     * @param view
     */
     private String getRequest(String url) {
     // TODO Auto-generated method stub
     String sret="";
     HttpClient client = new DefaultHttpClient();
     HttpGet request = new HttpGet(url);
     try{
       HttpResponse response = client.execute(request);
       sret =request(response);

      }catch(Exception ex){
        Toast.makeText(this,"jo "+sret, Toast.LENGTH_SHORT).show();
      }
      return sret;
     }

       /**
      * Method untuk Menenrima data dari server
      * @param response
     * @return
      */
    private String request(HttpResponse response) {
      // TODO Auto-generated method stub

      String result = "";
      try{
          InputStream in = response.getEntity().getContent();
          BufferedReader reader = new BufferedReader(new InputStreamReader(in));
          StringBuilder str = new StringBuilder();
          String line = null;
          while((line = reader.readLine()) != null){
            str.append(line + "\n");
         }
         in.close();
         result = str.toString();
      }catch(Exception ex){
         result = "Error";
      }
      return result;
      }
      }


and this my mapActivity 

    public class mapactivity extends MapActivity {
    private MapView mapView;
     MapController mc;
    GeoPoint p;
    //private MyLocationOverlay me = null;

     class MapOverlays extends com.google.android.maps.Overlay
    {

      @Override
      public boolean draw (Canvas canvas, MapView mapView, boolean shadow, long when)
        {
        super.draw(canvas, mapView, shadow);

        //translate the geopoint to screen pixels
        Point screenPts = new Point();
        mapView.getProjection().toPixels(p, screenPts);

        //tambah marker
        Bitmap bmp = BitmapFactory.decodeResource(getResources (), R.drawable.pin_red);
        canvas.drawBitmap(bmp, screenPts.x, screenPts.y-50, null);
        //mapView.setSatellite(true);       

        return true;
      }  

       @Override
       public boolean onTouchEvent(MotionEvent event, MapView mapView) 
       {   
         //---when user lifts his finger---
         if (event.getAction() == 1) {                
             GeoPoint p = mapView.getProjection().fromPixels(
                 (int) event.getX(),
                 (int) event.getY());

             Toast.makeText(getBaseContext(), 
                     p.getLatitudeE6() / 1E6 + "," + 
                     p.getLongitudeE6() /1E6 , 
                     Toast.LENGTH_SHORT).show();
             mc.animateTo(p);

                //geocoding 
             Geocoder geoCoder = new Geocoder(
                 getBaseContext(), Locale.getDefault());
             try {
                 List<Address> addresses = geoCoder.getFromLocation(
                     p.getLatitudeE6()  / 1E6, 
                     p.getLongitudeE6() / 1E6, 1);

                 String add = "";
                 if (addresses.size() > 0) 
                 {
                     for (int i=0; i<addresses.get(0).getMaxAddressLineIndex(); 
                          i++)
                        add += addresses.get(0).getAddressLine(i) + "\n";
                 }

                 Toast.makeText(getBaseContext(), add, Toast.LENGTH_SHORT).show();
             }
             catch (IOException e) {                
                 e.printStackTrace();
             }   
             return true;
         }
          else                
             return false;
         }      }         

       /** Called when the activity is first created. */
       @SuppressWarnings("deprecation")
     @Override
     public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.mapview1);

     //utk mnampilkan zoom
     mapView = (MapView) findViewById(R.id.mapView);
     LinearLayout zoomLayout = (LinearLayout)findViewById(R.id.zoom);  
     View zoomView = mapView.getZoomControls(); 

        zoomLayout.addView(zoomView, 
            new LinearLayout.LayoutParams(
            LayoutParams.FILL_PARENT, 
            LayoutParams.FILL_PARENT)); 
        mapView.displayZoomControls(true);       

        //menampilkan default peta banda aceh 
        mc = mapView.getController();
        String coordinates[] = {"5.550381", "95.318699"};
        double lat = Double.parseDouble(coordinates[0]);
        double lng = Double.parseDouble(coordinates[1]);

            p = new GeoPoint(
            (int) (lat * 1E6), 
            (int) (lng * 1E6));

            mc.animateTo(p);
            mc.setZoom(14); 
            mapView.invalidate();

            //tambah marker
            MapOverlays mapOverlay = new MapOverlays();
            List<Overlay> listOfOverlays = mapView.getOverlays();
            listOfOverlays.clear();
            listOfOverlays.add(mapOverlay);        

            mapView.invalidate();
            }


       public void btnSatelitClick(View v){
      mapView.setSatellite(true);
      mapView.setStreetView(false);

     }

     public void btnjalanClick (View v){
      mapView.setSatellite(false);
      mapView.setStreetView(true);
      }

              protected boolean isRouteDisplayed() 
              {
                  //auto generate method
                  return false;
             }

        }


my jsonactivity is get data from mysql (field "lattitude" and "longitude") into listview, but now I want to display that data (lattitude and longitude) on google map, How Could I do this ?
please help me, thanks in advance !


