Publicado el 3 de Noviembre del 2018
526 visualizaciones desde el 3 de Noviembre del 2018
965,0 KB
12 paginas
Creado hace 11a (26/07/2012)
Guía N° 2 Universidad de El Salvador
Universidad de El Salvador
Facultad de Ingeniería y Arquitectura
Escuela de Ingeniería en Sistemas
Programación en Dispositivos Móviles
Utilización de coordenadas espaciales para establecer la geo-
localización de un POI
Responsable
Ing. César Augusto González Rodríguez
Colaboradores
Bryan Josué Rodríguez Parada
Alexandra María Cañas Tovar
José Antonio Sánchez Delgado
Luis Alejandro González
Taller
Sistema de geo localización de espacios físicos de la FIA
Requisitos de los participantes
Conocimientos básicos de JAVA y XML.
Preferiblemente un móvil (smartphone) con gps, Sistema operativo Android 2.2 o
superior.
Duración del taller
2 horas
2012
Página 1
Comienzo del taller
Guía N° 2 Universidad de El Salvador
En la sesión anterior realizamos la activity que permitía capturar una foto y al mismo tiempo
recuperarla a la activity principal. Por lo cual ahora desarrollaremos la activity que permita
extraer las coordenadas georeferenciales de un POI (Punto de Interés Especifico) y permita
mandarlas al servidor asignado. Por lo cual debemos acoplar al proyecto el siguiente código.
a) Visualización del XML
La interfaz de tu Activity se vera de la siguiente manera:
b) Complementar la Activity SendImageActivity
Luego pasaremos a complementar la activity SendImageActivity, añadiendo el código que se
presente a continuación al código que ya se tenía dentro de dicha Activity, según como se
indique:
Dentro de la clase, usted observara ciertos comentarios en donde se indica que deberá
agregar cierto código que se coloca correlativamente como código uno, código dos, código
tres, etc.
2012
Página 2
Guía N° 2 Universidad de El Salvador
1. Código uno: Agregar las librerías iniciales
import java.util.ArrayList;
import java.util.List
import com.gtworldmobile.classes.Uploader;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.SharedPreferences;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.os.AsyncTask;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.CheckBox;
import android.widget.EditText;
2. Código 2: URL conexión con el servidor y creación de variables
private String URL = "";
private static String CREARPOI_SERVICES="GTWorld/CrearPoi";
public String ip_cargada= "";
String nombrePref = "preferencias";
List<String> parametros;
Button guardar;
Button obtenerDir;
Spinner tipo_poi;
TextView dirPath;
CheckBox checkbox_poi;
EditText nombre_poi;
EditText descripcion_poi;
EditText latitud_poi;
EditText longitud_poi;
EditText altitud_poi;
EditText url_poi;
TextView direccion_poi;
LocationManager locationManager;
private ProgressDialog progress;
private Activity crearPoi;
Uploader ups;
2012
Página 3
3. Código 3: Obtención desde el SharedPreferences la ip utilizada para conexión
Guía N° 2 Universidad de El Salvador
SharedPreferences prefs =
getSharedPreferences("preferencias",Context.MODE_PRIVATE);
ip_cargada= prefs.getString("ip", "");
URL=ip_cargada.concat(CREARPOI_SERVICES);
4. Código 4: Agregar el servicio de localización y uso de los componentes
crearPoi = this;
locationManager = (LocationManager) this
.getSystemService(Context.LOCATION_SERVICE);
guardar = (Button) findViewById(R.id.boton_guardar_poi);
obtenerDir = (Button) findViewById(R.id.obtener_dir);
tipo_poi = (Spinner) findViewById(R.id.tipoPoi);
nombre_poi = (EditText) findViewById(R.id.nombre_poi);
url_poi = (EditText) findViewById(R.id.url_poi);
descripcion_poi = (EditText) findViewById(R.id.descripcion_poi);
checkbox_poi = (CheckBox) findViewById(R.id.checkbox_poi);
latitud_poi = (EditText) findViewById(R.id.latitud_poi);
longitud_poi = (EditText) findViewById(R.id.longitud_poi);
altitud_poi = (EditText) findViewById(R.id.altitud_poi);
direccion_poi = (TextView) findViewById(R.id.direccion_poi);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
this, R.array.tipo_pois, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
tipo_poi.setAdapter(adapter);
obtenerDir.setOnClickListener(onClickGenerico);
guardar.setOnClickListener(onClickGenerico);
5. Código 5: Colocar la funcionalidad a los botones
2012
Página 4
Guía N° 2 Universidad de El Salvador
if (v.getId()==R.id.obtener_dir){
//Si el click lo dio el boton de guardar
poi....ejecutamos este codigo
Geocoder g = new Geocoder(getApplicationContext());
List<Address> ad = null;
try {
ad = g.getFromLocation(
Double.valueOf(latitud_poi.getText().toString()),
Double.valueOf(longitud_poi.getText().toString()), 1);
} catch (Exception e) {
e.printStackTrace();
}
if (ad != null && ad.isEmpty() == false) {
direccion_poi.setText(ad.get(0).getThoroughfare() +
","
+ ad.get(0).getSubAdminArea() + ","
+ ad.get(0).getCountryName());
}
//hasta aqui el codigo del clic a la obtencion de
direccion
}
if (v.getId()==R.id.boton_guardar_poi){
parametros = new ArrayList<String>();
// ----- VALIDAR CAMPOS----------------------------------
----
boolean valido = true;
if (nombre_poi.getText().toString().length() > 1)
parametros.add(nombre_poi.getText().toString());
else
valido = false;
parametros.add(descripcion_poi.getText().toString());
if (checkbox_poi.isChecked())
parametros.add("1");
else
parametros.add("0");
parametros.add(url_poi.getText().toString());
if (latitud_poi.getText().toString().length() > 0)
parametros.add(latitud_poi.getText().toString());
else
valido = false;
if (longitud_poi.getText().toString().length() > 0)
parametros.add(longitud_poi.getText().toString());
else
valido = false;
if (altitud_poi.getText().toString().length() > 0)
parametros.add(altitud_poi.getText().toString());
else
valido = false;
2012
Página 5
Guía N° 2 Universidad de El Salvador
// Obtener idUser de shared preferences
SharedPreferences prefs =
getSharedPreferences(nombrePref,
MODE_PRIVATE);
parametros.add(prefs.getString("id", ""));
//
...........................................................
parametros.add(String.valueOf((tipo_poi
.getSelectedItemPosition() + 1)));
if (direccion_poi.getText().toString().length() > 0)
parametros.add(direccion_poi.getText().toString());
else
parametros.add("No especificada");
if (valido) {
new EnviarDatos().execute();
} else {
Toast.makeText(SendImageActivity.this, "Campos no
validos",
Toast.LENGTH_LONG).show();
}
}
6. Código 6: Método de obtención de las coordenadas georeferenciales
LocationListener locationListener = new LocationListener() {
public void onLocationChanged(Location location) {
latitud_poi.setText(String.valueOf(location.getLatitude()));
longitud_poi.setText(String.valueOf(location.getLongitude()));
altitud_poi.setText(String.valueOf(location.getAltitude()));
}
public void onProviderDisabled(String provider) {
}
public void onProviderEnabled(String provider) {
}
public void onStatusChanged(String provider, int status,
Bundle extras) {
}
};
2012
Página 6
7. Código 7: Método de onPause y onResume
Guía N° 2 Universidad de El Salvador
@Override
public void onPause() {
super.onPause();
locationManager.removeUpdates(locationListener);
}
@Override
public void onResume() {
super.onResume();
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0,
0, locationListener);
locationManager.requestLocationUpdates(
LocationManager.NETWORK_PROVIDER, 0, 0,
locationListener);
}
8. Código 8: Método de subida de datos
public class EnviarDatos extends AsyncTask<Void, Void, Void> {
List<String> estatus = new ArrayList<String>();
Comentarios de: Utilización de coordenadas espaciales para establecer la geolocalización de un POI (0)
No hay comentarios