Advertisement
Guest User

Juan2

a guest
Nov 23rd, 2014
140
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.84 KB | None | 0 0
  1. package es.exitae.mapasv2.noviembre;
  2.  
  3. import java.io.IOException;
  4. import java.io.UnsupportedEncodingException;
  5. import java.util.ArrayList;
  6. import java.util.List;
  7.  
  8. import org.apache.http.client.ClientProtocolException;
  9. import org.apache.http.client.HttpClient;
  10. import org.apache.http.client.ResponseHandler;
  11. import org.apache.http.client.methods.HttpPost;
  12. import org.apache.http.impl.client.BasicResponseHandler;
  13. import org.apache.http.impl.client.DefaultHttpClient;
  14.  
  15. import android.app.AlertDialog;
  16. import android.graphics.Color;
  17. import android.location.Location;
  18. import android.os.AsyncTask;
  19. import android.os.Bundle;
  20. import android.support.v4.app.FragmentActivity;
  21. import android.widget.Toast;
  22.  
  23. import com.google.android.gms.maps.CameraUpdateFactory;
  24. import com.google.android.gms.maps.GoogleMap;
  25. import com.google.android.gms.maps.GoogleMap.OnMapClickListener;
  26. import com.google.android.gms.maps.GoogleMap.OnMarkerClickListener;
  27. import com.google.android.gms.maps.GoogleMap.OnMyLocationChangeListener;
  28. import com.google.android.gms.maps.SupportMapFragment;
  29. import com.google.android.gms.maps.model.BitmapDescriptorFactory;
  30. import com.google.android.gms.maps.model.LatLng;
  31. import com.google.android.gms.maps.model.Marker;
  32. import com.google.android.gms.maps.model.MarkerOptions;
  33. import com.google.android.gms.maps.model.PolylineOptions;
  34.  
  35. public class MapaActivity extends FragmentActivity implements OnMapClickListener,
  36.         OnMarkerClickListener, OnMyLocationChangeListener {
  37.  
  38.    
  39.     private GoogleMap map;
  40.    
  41.     public class Personas {
  42.        
  43.     private String nombre;
  44.     private String tel;
  45.    
  46.     public String getNombre(){
  47.         return nombre;
  48.     }
  49.     public void setNombre(String nombre){
  50.         this.nombre = nombre;
  51.     }
  52.     public String getTelefono(){
  53.         return tel;
  54.     }
  55.     public void setTelefono(String telefono){
  56.         this.tel = tel;
  57.     }
  58.     }
  59.    
  60.     private int posicion=0;
  61.     private List<Personas> listaPersonas;
  62.    
  63.    
  64.     //Obtiene los datos del servidor en forma de String
  65.     private String mostrar(){
  66.             String resquest="";      
  67.             HttpClient httpclient;
  68.             HttpPost httppost;
  69.             httpclient=new DefaultHttpClient();
  70.             httppost= new HttpPost("http://192.168.0.4/conexionandroid/consulta.php?id=1502"); // Url del Servidor
  71.             try {
  72.                 //Ejecutamos y obtenemos la respuestaa del servidor
  73.                 ResponseHandler<String> responseHandler = new BasicResponseHandler();
  74.                 resquest = httpclient.execute(httppost, responseHandler);
  75.             } catch (UnsupportedEncodingException e) {
  76.                 // TODO Auto-generated catch block
  77.                 e.printStackTrace();
  78.             } catch (ClientProtocolException e) {
  79.                 // TODO Auto-generated catch block
  80.                 e.printStackTrace();
  81.             } catch (IOException e) {
  82.                 // TODO Auto-generated catch block
  83.                 e.printStackTrace();
  84.             }
  85.             return resquest;       
  86.     }
  87.     private boolean filtrarDatos(){
  88.         listaPersonas.clear();
  89.         if(!mostrar().equalsIgnoreCase("")){
  90.             String [] cargarDatos=mostrar().split("/");
  91.             for (int i = 0; i < cargarDatos.length; i++) {
  92.                 String datosPersona[]=cargarDatos[i].split("<br>");
  93.                 Personas personas=new Personas();
  94.                 personas.setNombre(datosPersona[0]);
  95.                 personas.setTelefono(datosPersona[1]);
  96.                 listaPersonas.add(personas);
  97.             }
  98.             return true;
  99.         }
  100.         return false;
  101.     }
  102.    
  103.     //Muestra la persona almacenada como objeto en nuestro ArrayList
  104.     private void mostrarPersona(final int posicion){
  105.         runOnUiThread(new Runnable(){
  106.             @Override
  107.             public void run() {
  108.                 // TODO Auto-generated method stub
  109.                 Personas personas=listaPersonas.get(posicion);
  110.                 Toast nombre = null;
  111.                 nombre.setText(personas.getNombre());
  112.                 Toast tel = null;
  113.                 tel.setText(personas.getTelefono());   
  114.                
  115.             }          
  116.         });
  117.     }
  118.     //AsyncTask para mostrar Personas
  119.     class Mostrar extends AsyncTask<String,String,String>{
  120.         @Override
  121.         protected String doInBackground(String... params) {
  122.             // TODO Auto-generated method stub
  123.             if(filtrarDatos())mostrarPersona(posicion);
  124.             return null;
  125.         }          
  126.     }
  127.    
  128.     @Override
  129.     protected void onCreate(Bundle savedInstanceState) {
  130.         super.onCreate(savedInstanceState);
  131.         setContentView(R.layout.mapa);
  132.         listaPersonas=new ArrayList();
  133.        
  134.    
  135.        
  136.         map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
  137.                 .getMap();
  138.  
  139.         LatLng zaragoza = new LatLng(-27.366667, -70.316667);
  140.  
  141.         map.moveCamera(CameraUpdateFactory.newLatLngZoom(zaragoza, 13));
  142.  
  143.         MarkerOptions marcador = new MarkerOptions();
  144.         marcador.title("Zaragoza");
  145.         marcador.snippet("Central de MasterD y Exitae");
  146.         marcador.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher));
  147.         marcador.position(zaragoza);
  148.  
  149.         map.addMarker(marcador);
  150.  
  151.         map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
  152.  
  153.         PolylineOptions trazo = new PolylineOptions().geodesic(true)
  154.                 .add(new LatLng(-33.866, 151.195)) // Sydney
  155.                 .add(new LatLng(-18.142, 178.431)) // Fiji
  156.                 .add(new LatLng(21.291, -157.821)) // Hawaii
  157.                 .add(new LatLng(37.423, -122.091)); // Mountain View
  158.  
  159.         trazo.color(Color.WHITE);
  160.         trazo.width(30.0f);
  161.  
  162.         map.addPolyline(trazo);
  163.  
  164.         map.setOnMapClickListener(this);
  165.         map.setOnMarkerClickListener(this);
  166.  
  167.         map.setMyLocationEnabled(true);
  168.  
  169.         map.setOnMyLocationChangeListener(this);
  170.        
  171.        
  172.     }
  173.  
  174.     @Override
  175.     public void onMapClick(LatLng coords) {
  176.         Toast.makeText(this, coords.latitude + " - " + coords.longitude, Toast.LENGTH_SHORT).show();
  177.     }
  178.  
  179.     @Override
  180.     public boolean onMarkerClick(Marker marker) {
  181.         Toast.makeText(this, marker.getTitle() + " - " + marker.getSnippet(), Toast.LENGTH_SHORT)
  182.                 .show();
  183.  
  184.         return true;
  185.     }
  186.    
  187.    
  188.  
  189.  
  190.     @Override
  191.     public void onMyLocationChange(Location loc) {
  192.         LatLng posicion = new LatLng(loc.getLatitude(), loc.getLongitude());
  193.         // map.moveCamera(CameraUpdateFactory.newLatLngZoom(posicion, 7));
  194.         map.animateCamera(CameraUpdateFactory.newLatLngZoom(posicion, 7));
  195.  
  196.         map.setOnMyLocationChangeListener(null);
  197.     }
  198. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement