Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package es.exitae.mapasv2.noviembre;
- import java.io.IOException;
- import java.io.UnsupportedEncodingException;
- import java.util.ArrayList;
- import java.util.List;
- import org.apache.http.client.ClientProtocolException;
- import org.apache.http.client.HttpClient;
- import org.apache.http.client.ResponseHandler;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.impl.client.BasicResponseHandler;
- import org.apache.http.impl.client.DefaultHttpClient;
- import android.app.AlertDialog;
- import android.graphics.Color;
- import android.location.Location;
- import android.os.AsyncTask;
- import android.os.Bundle;
- import android.support.v4.app.FragmentActivity;
- import android.widget.Toast;
- import com.google.android.gms.maps.CameraUpdateFactory;
- import com.google.android.gms.maps.GoogleMap;
- import com.google.android.gms.maps.GoogleMap.OnMapClickListener;
- import com.google.android.gms.maps.GoogleMap.OnMarkerClickListener;
- import com.google.android.gms.maps.GoogleMap.OnMyLocationChangeListener;
- import com.google.android.gms.maps.SupportMapFragment;
- import com.google.android.gms.maps.model.BitmapDescriptorFactory;
- import com.google.android.gms.maps.model.LatLng;
- import com.google.android.gms.maps.model.Marker;
- import com.google.android.gms.maps.model.MarkerOptions;
- import com.google.android.gms.maps.model.PolylineOptions;
- public class MapaActivity extends FragmentActivity implements OnMapClickListener,
- OnMarkerClickListener, OnMyLocationChangeListener {
- private GoogleMap map;
- public class Personas {
- private String nombre;
- private String tel;
- public String getNombre(){
- return nombre;
- }
- public void setNombre(String nombre){
- this.nombre = nombre;
- }
- public String getTelefono(){
- return tel;
- }
- public void setTelefono(String telefono){
- this.tel = tel;
- }
- }
- private int posicion=0;
- private List<Personas> listaPersonas;
- //Obtiene los datos del servidor en forma de String
- private String mostrar(){
- String resquest="";
- HttpClient httpclient;
- HttpPost httppost;
- httpclient=new DefaultHttpClient();
- httppost= new HttpPost("http://192.168.0.4/conexionandroid/consulta.php?id=1502"); // Url del Servidor
- try {
- //Ejecutamos y obtenemos la respuestaa del servidor
- ResponseHandler<String> responseHandler = new BasicResponseHandler();
- resquest = httpclient.execute(httppost, responseHandler);
- } catch (UnsupportedEncodingException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (ClientProtocolException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- } catch (IOException e) {
- // TODO Auto-generated catch block
- e.printStackTrace();
- }
- return resquest;
- }
- private boolean filtrarDatos(){
- listaPersonas.clear();
- if(!mostrar().equalsIgnoreCase("")){
- String [] cargarDatos=mostrar().split("/");
- for (int i = 0; i < cargarDatos.length; i++) {
- String datosPersona[]=cargarDatos[i].split("<br>");
- Personas personas=new Personas();
- personas.setNombre(datosPersona[0]);
- personas.setTelefono(datosPersona[1]);
- listaPersonas.add(personas);
- }
- return true;
- }
- return false;
- }
- //Muestra la persona almacenada como objeto en nuestro ArrayList
- private void mostrarPersona(final int posicion){
- runOnUiThread(new Runnable(){
- @Override
- public void run() {
- // TODO Auto-generated method stub
- Personas personas=listaPersonas.get(posicion);
- Toast nombre = null;
- nombre.setText(personas.getNombre());
- Toast tel = null;
- tel.setText(personas.getTelefono());
- }
- });
- }
- //AsyncTask para mostrar Personas
- class Mostrar extends AsyncTask<String,String,String>{
- @Override
- protected String doInBackground(String... params) {
- // TODO Auto-generated method stub
- if(filtrarDatos())mostrarPersona(posicion);
- return null;
- }
- }
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.mapa);
- listaPersonas=new ArrayList();
- map = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map))
- .getMap();
- LatLng zaragoza = new LatLng(-27.366667, -70.316667);
- map.moveCamera(CameraUpdateFactory.newLatLngZoom(zaragoza, 13));
- MarkerOptions marcador = new MarkerOptions();
- marcador.title("Zaragoza");
- marcador.snippet("Central de MasterD y Exitae");
- marcador.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher));
- marcador.position(zaragoza);
- map.addMarker(marcador);
- map.setMapType(GoogleMap.MAP_TYPE_HYBRID);
- PolylineOptions trazo = new PolylineOptions().geodesic(true)
- .add(new LatLng(-33.866, 151.195)) // Sydney
- .add(new LatLng(-18.142, 178.431)) // Fiji
- .add(new LatLng(21.291, -157.821)) // Hawaii
- .add(new LatLng(37.423, -122.091)); // Mountain View
- trazo.color(Color.WHITE);
- trazo.width(30.0f);
- map.addPolyline(trazo);
- map.setOnMapClickListener(this);
- map.setOnMarkerClickListener(this);
- map.setMyLocationEnabled(true);
- map.setOnMyLocationChangeListener(this);
- }
- @Override
- public void onMapClick(LatLng coords) {
- Toast.makeText(this, coords.latitude + " - " + coords.longitude, Toast.LENGTH_SHORT).show();
- }
- @Override
- public boolean onMarkerClick(Marker marker) {
- Toast.makeText(this, marker.getTitle() + " - " + marker.getSnippet(), Toast.LENGTH_SHORT)
- .show();
- return true;
- }
- @Override
- public void onMyLocationChange(Location loc) {
- LatLng posicion = new LatLng(loc.getLatitude(), loc.getLongitude());
- // map.moveCamera(CameraUpdateFactory.newLatLngZoom(posicion, 7));
- map.animateCamera(CameraUpdateFactory.newLatLngZoom(posicion, 7));
- map.setOnMyLocationChangeListener(null);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement