Commit 98fde58f by Pedro Rolon

Se agregó interfaz gráfica para probar el API.

parent 234e3caf
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>api-e004</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.common.project.facet.core.builder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.wst.validation.validationbuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.wst.common.modulecore.ModuleCoreNature</nature>
<nature>org.eclipse.wst.common.project.facet.core.nature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.wst.jsdt.core.jsNature</nature>
</natures>
</projectDescription>
...@@ -9,7 +9,6 @@ ...@@ -9,7 +9,6 @@
<welcome-file>default.htm</welcome-file> <welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file> <welcome-file>default.jsp</welcome-file>
</welcome-file-list> </welcome-file-list>
<resource-ref> <resource-ref>
<description>Pool conexiones MySQL</description> <description>Pool conexiones MySQL</description>
<res-ref-name>jdbc/postgresql/Geo</res-ref-name> <res-ref-name>jdbc/postgresql/Geo</res-ref-name>
......
<!DOCTYPE html>
<html>
<head>
<title>Prueba</title>
<meta charset="utf-8">
<script
src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<style type="text/css">
form{
padding: 20px;
border: dotted;
}
</style>
</head>
<body>
<br>
<div style="border:dotted; background-color:red;">
<h3>Guardar Punto</h3>
<input type="text" placeholder="latitud" id="latitudAlta">
<input type="text" placeholder="longitud" id="longitudAlta">
<input type="text" placeholder="nombre" id="nombreAlta">
<button id="botonGuardar">Guardar</button>
</div>
<br>
<div style="border:dotted; background-color:yellow;">
<h3>Eliminar Punto</h3>
<input type="text" placeholder="id punto geografico" id="idBaja">
<button id="botonEliminar">Eliminar</button>
</div>
<br>
<div style="border:dotted; background-color:blue;">
<h3>Buscar Cercanos</h3>
<input type="text" placeholder="latitud" id="latitudCercana">
<input type="text" placeholder="longitud" id="longitudCercana">
<button id="botonBuscarCercanos">Buscar</button>
</div>
<br>
<div style="border:dotted; background-color:green;">
<h3>Buscar Punto</h3>
<input type="text" placeholder="id" id="idBuscar">
<button id="botonBuscarPunto">Buscar</button>
</div>
<script type="text/javascript" src="joda.js"></script>
</body>
</html>
/*jQuery(function($){
console.log("hola");
console.log("hola");
});*/
//Función para guardar!
$("#botonGuardar").on("click", function(){
$.ajax({
//url: 'http://192.168.67.126:8095/ApiGeolocalizacion/punto/81', //URL de Albaro
url: 'http://localhost:8080/Api-e004/guardar',
type: "POST",
//dataType:"json",
data:{
"lat": $("#latitudAlta").val(),//-25.2820464,
"lon": $("#longitudAlta").val(),//-57.6129376,
"nombre": $("#nombreAlta").val()//'Roshka'
},
success: function(result, textStatus, jqXHR) {
//En result se guarda lo que retorna el servlet
//Se guarda en result, porque es el primer argumento de la función
console.log(result);
//Se puede acceder a sus atributos pues en este
//caso se trata de un objeto tipo JSON
console.log(result.identificador);
},
error: function(e){
console.log(e);
console.log("error");
}
});
});
//Función para eliminar!
$("#botonEliminar").on("click", function(){
$.ajax({
//url: 'http://192.168.67.126:8095/ApiGeolocalizacion/punto/81', //URL de Albaro
url: 'http://localhost:8080/Api-e004/punto/'+$("#idBaja").val(),
type: "DELETE",
//dataType:"json",
success: function(result, textStatus, jqXHR) {
//En result se guarda lo que retorna el servlet
//Se guarda en result, porque es el primer argumento de la función
console.log(result);
//Se puede acceder a sus atributos pues en este
//caso se trata de un objeto tipo JSON
},
error: function(e){
console.log(e);
console.log("error");
},
complete: function(){
console.log($("#idBaja").val());
}
});
});
//función para consultar puntos cercanos
$("#botonBuscarCercanos").on("click", function(){
$.ajax({
url:'http://localhost:8080/Api-e004/buscar_puntos',
type: 'GET',
data:{
"lat": $("#latitudCercana").val(),
"lon": $('#longitudCercana').val()
},
success: function(result){
console.log(result);
},
error: function(e){
console.log(e);
console.log("ocurrió un error");
}
});
});
//Función para buscar un punto por id
$("#botonBuscarPunto").on("click", function(){
$.ajax({
url: 'http://localhost:8080/Api-e004/punto/'+$("#idBuscar").val(),
type: 'GET',
success: function(result){
console.log(result);
},
error: function(){
console.log("ocurrió un error");
}
});
});
$("#latitudAlta").val("");
$("#longitudAlta").val("");
$("#nombreAlta").val("");
$("#idBaja").val("");
//$("#latitudCercana").val("");
//$("#longitudCercana").val("");
$("#idBuscar").val("");
--Script para creación de las tablas de la base de datos --Script para creación de las tablas de la base de datos
CREATE TABLE puntosGeograficos( CREATE TABLE puntosGeograficos(
nroPuntoGeografico SMALLINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY, id INT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
Latitud FLOAT NOT NULL, Latitud FLOAT NOT NULL,
Longitud FLOAT NOT NULL, Longitud FLOAT NOT NULL,
Nombre VARCHAR(255) Nombre VARCHAR(255)
......
...@@ -5,12 +5,14 @@ ...@@ -5,12 +5,14 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../bootstrap3/css/bootstrap.min.css"> <link rel="stylesheet" href="../bootstrap3/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="../js/borrarPunto.js"></script>
<style type="text/css"> <style type="text/css">
h1{ h1{
text-align: center; text-align: center;
} }
form{ #form{
border: dotted; border: dotted;
border-radius: 25px; border-radius: 25px;
background-color: #e1eae5; background-color: #e1eae5;
...@@ -33,7 +35,7 @@ ...@@ -33,7 +35,7 @@
<h1>Borrar Punto Geográfico</h1> <h1>Borrar Punto Geográfico</h1>
<hr> <hr>
<form class="col-md-12" method="post" action="/api-e004/borrar"> <div id="form" class="col-md-12">
<!-- <input type="" name=""> --> <!-- <input type="" name=""> -->
<div class="form-group"> <div class="form-group">
<div class="col-md-4"> <div class="col-md-4">
...@@ -45,10 +47,10 @@ ...@@ -45,10 +47,10 @@
</div> </div>
<div class="text-center"> <div class="text-center">
<input type="submit" name="botonBorrarPunto" value="Borrar!"> <input type="submit" name="botonBorrarPunto" value="Borrar!" id="botonEliminar">
</div> </div>
</form> </div>
</body> </body>
</html> </html>
...@@ -5,11 +5,13 @@ ...@@ -5,11 +5,13 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../bootstrap3/css/bootstrap.min.css"> <link rel="stylesheet" href="../bootstrap3/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="../js/buscarPunto.js"></script>
<style type="text/css"> <style type="text/css">
h1{ h1{
text-align: center; text-align: center;
} }
form{ #form{
border: dotted; border: dotted;
border-radius: 25px; border-radius: 25px;
background-color: #e1eae5; background-color: #e1eae5;
...@@ -33,7 +35,7 @@ ...@@ -33,7 +35,7 @@
<h1>Consultar Punto</h1> <h1>Consultar Punto</h1>
<hr> <hr>
<form class="col-md-12" method="get" id="form" action="/api-e004/prueba"> <div id="form" class="col-md-12">
<div class="form-group"> <div class="form-group">
<div class="col-md-4"> <div class="col-md-4">
<label>Id Punto</label> <label>Id Punto</label>
...@@ -45,10 +47,10 @@ ...@@ -45,10 +47,10 @@
<div class="text-center"> <div class="text-center">
<input type="submit" name="botonBuscarPunto" value="Buscar!"> <input type="submit" name="botonBuscarPunto" value="Buscar!" id="botonBuscarPunto">
</div> </div>
</form> </div>
</body> </body>
......
...@@ -6,10 +6,11 @@ ...@@ -6,10 +6,11 @@
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../bootstrap3/css/bootstrap.min.css"> <link rel="stylesheet" href="../bootstrap3/css/bootstrap.min.css">
<style type="text/css"> <style type="text/css">
h1{ h1{
text-align: center; text-align: center;
} }
form{ #form{
border: dotted; border: dotted;
border-radius: 25px; border-radius: 25px;
background-color: #e1eae5; background-color: #e1eae5;
...@@ -26,6 +27,9 @@ ...@@ -26,6 +27,9 @@
margin:20px; margin:20px;
} }
</style> </style>
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="../js/buscarPuntosCercanos.js"></script>
</head> </head>
<body> <body>
...@@ -33,7 +37,7 @@ ...@@ -33,7 +37,7 @@
<h1>Buscar Puntos Cercanos</h1> <h1>Buscar Puntos Cercanos</h1>
<hr> <hr>
<form class="col-md-12" method="post" id="form" action="/api-e004/punto"> <div id="form" class="col-md-12">
<div class="form-group"> <div class="form-group">
<div class="col-md-4"> <div class="col-md-4">
<label>Latitud</label> <label>Latitud</label>
...@@ -53,10 +57,10 @@ ...@@ -53,10 +57,10 @@
<div class="text-center"> <div class="text-center">
<input type="submit" name="botonBuscarPunto" value="Consultar!"> <input type="submit" name="botonBuscarPunto" value="Consultar!" id="botonBuscarCercanos">
</div> </div>
</form> </div>
</body> </body>
......
...@@ -5,18 +5,20 @@ ...@@ -5,18 +5,20 @@
<meta charset="utf-8"> <meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1"> <meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../bootstrap3/css/bootstrap.min.css"> <link rel="stylesheet" href="../bootstrap3/css/bootstrap.min.css">
<script src="https://code.jquery.com/jquery-3.3.1.min.js"></script>
<script src="../js/guardarPunto.js"></script>
<style type="text/css"> <style type="text/css">
body{ body{
margin-left: auto; margin-left: auto;
margin-right: auto: margin-right: auto;
padding: 10px; padding: 10px;
display: block; display: block;
} }
h1{ h1{
text-align: center; text-align: center;
} }
form{ #form{
border: dotted; border: dotted;
border-radius: 25px; border-radius: 25px;
background-color: #e1eae5; background-color: #e1eae5;
...@@ -39,13 +41,13 @@ ...@@ -39,13 +41,13 @@
<h1>Guardar Punto Geográfico</h1> <h1>Guardar Punto Geográfico</h1>
<hr> <hr>
<form class="col-md-12" method="post" action="/api-e004/guardar"> <div id="form" class="col-md-12">
<div class="form-group"> <div class="form-group">
<div class="col-md-4"> <div class="col-md-4">
<label>Nombre</label> <label>Nombre</label>
</div> </div>
<div class="col-md-8"> <div class="col-md-8">
<input type="text" name="nombreAlta" id="nombredAlta" class="form-control" placeholder="Nombre"> <input type="text" name="nombreAlta" id="nombreAlta" class="form-control" placeholder="Nombre">
</div> </div>
</div> </div>
<div class="form-group"> <div class="form-group">
...@@ -67,10 +69,10 @@ ...@@ -67,10 +69,10 @@
<div class="text-center"> <div class="text-center">
<input type="submit" name="botonAgregarPunto" value="Agregar!"> <input type="submit" name="botonAgregarPunto" value="Agregar!" id="botonAgregarPunto">
</div> </div>
</form> </div>
</body> </body>
</html> </html>
jQuery(function($){
//Función para eliminar!
$("#botonEliminar").on("click", function(){
$.ajax({
//url: 'http://192.168.67.126:8095/ApiGeolocalizacion/punto/81', //URL de Albaro
url: 'http://localhost:8080/Api-e004/punto/'+$("#idBaja").val(),
type: "DELETE",
//dataType:"json",
success: function(result, textStatus, jqXHR) {
//En result se guarda lo que retorna el servlet
//Se guarda en result, porque es el primer argumento de la función
console.log(result);
//Se puede acceder a sus atributos pues en este
//caso se trata de un objeto tipo JSON
},
error: function(e){
console.log(e);
console.log("error");
},
complete: function(){
console.log($("#idBaja").val());
}
});
});
console.log("cargado borrar");
});
\ No newline at end of file
jQuery(function($){
//Función para buscar un punto por id
$("#botonBuscarPunto").on("click", function(){
$.ajax({
url: 'http://localhost:8080/Api-e004/punto/'+$("#idConsulta").val(),
type: 'GET',
success: function(result){
console.log(result);
},
error: function(){
console.log("ocurrió un error");
}
});
});
console.log("script cargado: buscarPunto");
});
\ No newline at end of file
jQuery(function($){
//función para consultar puntos cercanos
$("#botonBuscarCercanos").on("click", function(){
$.ajax({
url:'http://localhost:8080/Api-e004/buscar_puntos',
type: 'GET',
data:{
"lat": $("#latitudConsulta").val(),
"lon": $('#longitudConsulta').val()
},
success: function(result){
console.log(result);
},
error: function(e){
console.log(e);
console.log("ocurrió un error");
}
});
});
console.log("script cargado: buscarPuntosCercanos");
})
\ No newline at end of file
jQuery(function($){
//Función para guardar!
$("#botonAgregarPunto").on("click", function(){
$.ajax({
//url: 'http://192.168.67.126:8095/ApiGeolocalizacion/punto/81', //URL de Albaro
url: 'http://localhost:8080/Api-e004/guardar',
type: "POST",
//dataType:"json",
data:{
"lat": $("#latitudAlta").val(),//-25.2820464,
"lon": $("#longitudAlta").val(),//-57.6129376,
"nombre": $("#nombreAlta").val()//'Roshka'
},
success: function(result, textStatus, jqXHR) {
//En result se guarda lo que retorna el servlet
//Se guarda en result, porque es el primer argumento de la función
console.log(result);
//Se puede acceder a sus atributos pues en este
//caso se trata de un objeto tipo JSON
console.log(result.identificador);
},
error: function(e){
console.log(e);
console.log("error");
}
});
});
});
console.log("cargado");
\ No newline at end of file
package api;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import controlador.GeoConexion;
import modelo.PuntoGeografico;
/**
* Servlet implementation class GeoApi
*/
@WebServlet({ "/GeoApi", "/punto/*", "/guardar", "/buscar_puntos" })
public class GeoApi extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public GeoApi() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String url = request.getRequestURI();
String[] partes = url.split("/");
//Si entra por la URL /buscar_puntos
if(partes[2].equals("buscar_puntos")){
double latitud = Double.parseDouble(request.getParameter("lat"));
double longitud = Double.parseDouble(request.getParameter("lon"));
GeoConexion geo = new GeoConexion();
PuntoGeografico[] puntos= geo.buscarPuntosCercanos(latitud, longitud);
if(puntos!=null) {
PrintWriter respuesta = response.getWriter();
/**
* [{"latitud":12,"longitud":12,"nombre":"rami","distancia":151},{"latitud":12,"longitud":12,"nombre":"rami","distancia":151}]
*/
//el String jsonReturn contendrá el json que se va a retornar.
//este se va armando con los datos del array que se obtuvo de
//GeoConexion
String jsonReturn = "";
jsonReturn += "[";
for(int i=0; i<puntos.length; i++) {
jsonReturn += "{";
jsonReturn += "\"latitud\": " + puntos[i].getLatitud() + ",";
jsonReturn += "\"longitud\":" + puntos[i].getLongitud() + ",";
jsonReturn += "\"nombre\":" +"\""+ puntos[i].getNombre() +"\""+ ",";
jsonReturn += " \"distancia\":" + puntos[i].getDistancia();
jsonReturn += "}";
if(i<puntos.length-1) {
jsonReturn += ",";
}
}
jsonReturn += "]";
System.out.println(jsonReturn);
response.setContentType("application/json");
respuesta.print(jsonReturn);
}
}
//Si entra por la URL /punto/*
else if(partes[2].equals("punto")){
//Obtiene los parámetros de más en el url, antecedidos
//por una /
//Se extrae la id, que se encuentra luego de la /
int id =Integer.parseInt(request.getPathInfo().split("/")[1]) ;
GeoConexion geo = new GeoConexion();
PuntoGeografico punto = geo.buscarPunto(id);
/*
* En caso de que no se recupere ningun valor de la base de datos
* el nombre será nulo, entonces se envia un 404
if(punto.getNombre()==null){
response.sendError(404,"No se recuperó nada kp");
}
*/
String jsonReturn = "";
jsonReturn += "{";
jsonReturn += "\"latitud\": " + punto.getLatitud() + ",";
jsonReturn += "\"longitud\":" + punto.getLongitud() + ",";
jsonReturn += "\"nombre\":" +"\""+ punto.getNombre() +"\"";
jsonReturn += "}";
System.out.println(jsonReturn);
response.setContentType("application/json");
PrintWriter respuesta = response.getWriter();
respuesta.print(jsonReturn);
}
else {
response.getWriter().write("usted ha entrado en un lugar sin datos jeje");
}
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.setContentType("application/json");
PrintWriter resp = response.getWriter();
//Extrae los datos que vienen en el request y los guarda en variables
double latitud = Double.parseDouble(request.getParameter("lat"));
double longitud = Double.parseDouble(request.getParameter("lon"));
String nombre = request.getParameter("nombre");
//Se instancia una objeto GeoConexion, que es la clase que posee comunicación con
//la base de datos
GeoConexion gc = new GeoConexion();
//Se agrega el punto, lo que retorna su id de la base de datos;
int identificadorPunto = gc.agregarPunto(latitud, longitud, nombre);
String jsonReturn = "{\"identificador\":"+ identificadorPunto +"}";
/**
* {"latitud":1234,"longitud":1234,"nombre":"roshka"}
*/
System.out.println(jsonReturn);
resp.write(jsonReturn);
System.out.println(identificadorPunto);
System.out.println(request.getParameter("lat"));
System.out.println(request.getParameter("lon"));
System.out.println(request.getParameter("nombre"));
}
/**
* @see HttpServlet#doDelete(HttpServletRequest, HttpServletResponse)
*/
protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
System.out.println("Ejecutando el delete");
//Extrae los parámetros del URL. ya que el url que llama a este servlet es
// /punto/* entonces los parámetros entran por /* que es un wildcard
String pathInfo = request.getPathInfo();
//Con este se quitan las barras y se escoge la segunda posición (1)
//del array, porque en ese lugar queda, en este caso, la información
//que nos interesa, o sea el id
//Se parese a integer porque inicialmente está como String
int id = Integer.parseInt(pathInfo.split("/")[1]);
//Se setea la salida para que sea interpretada como JSON
response.setContentType("application/json");
//Se instancia un objeto de GeoConexion, la clase que contiene
//todos los métodos que se comunica con la base de datos
GeoConexion geo = new GeoConexion();
//el método geo.borrarPunto(id) retorna un booleano
String jsonReturn = "{\"isDelete\":" + geo.borrarPunto(id)+"}";
PrintWriter respuesta = response.getWriter();
respuesta.print(jsonReturn);
}
}
...@@ -41,7 +41,7 @@ public class GeoConexion { ...@@ -41,7 +41,7 @@ public class GeoConexion {
* @return Returns an positive int if the process was success. Returns -1 if the process was failed. * @return Returns an positive int if the process was success. Returns -1 if the process was failed.
* *
*/ */
public int agregarPunto(float latitud, float longitud, String nombre) { public int agregarPunto(double latitud, double longitud, String nombre) {
int identificador = -1; int identificador = -1;
try{ try{
...@@ -55,8 +55,8 @@ public class GeoConexion { ...@@ -55,8 +55,8 @@ public class GeoConexion {
//si tiene que retornar o no las primary key generadas //si tiene que retornar o no las primary key generadas
PreparedStatement statement = con.prepareStatement(sql,1); PreparedStatement statement = con.prepareStatement(sql,1);
statement.setFloat(1, longitud); statement.setDouble(1, longitud);
statement.setFloat(2, latitud); statement.setDouble(2, latitud);
statement.setString(3, nombre); statement.setString(3, nombre);
statement.executeUpdate(); statement.executeUpdate();
...@@ -121,9 +121,11 @@ public class GeoConexion { ...@@ -121,9 +121,11 @@ public class GeoConexion {
DataSource ds = (DataSource) initContext.lookup(name); DataSource ds = (DataSource) initContext.lookup(name);
con = ds.getConnection(); con = ds.getConnection();
String sql = "DELETE FROM PuntosGeograficos where "; String sql = "DELETE FROM PuntosGeograficos where id=?";
PreparedStatement statement = con.prepareStatement(sql); PreparedStatement statement = con.prepareStatement(sql);
statement.setInt(1, nroPuntoGeografico);
int rowAffecteds = statement.executeUpdate(); int rowAffecteds = statement.executeUpdate();
if(rowAffecteds>0) { if(rowAffecteds>0) {
...@@ -135,7 +137,7 @@ public class GeoConexion { ...@@ -135,7 +137,7 @@ public class GeoConexion {
logrado=false; logrado=false;
} }
logrado = true;
} }
catch(Exception e){ catch(Exception e){
System.out.println(e.getMessage()); System.out.println(e.getMessage());
...@@ -182,6 +184,11 @@ public class GeoConexion { ...@@ -182,6 +184,11 @@ public class GeoConexion {
//Busca en la base de datos por id del punto geografico //Busca en la base de datos por id del punto geografico
//Retorna un objeto del tipo PuntoGeografico //Retorna un objeto del tipo PuntoGeografico
/**
*
* @param nroPuntoGeografico
* @return PuntoGeografico
*/
public PuntoGeografico buscarPunto(int nroPuntoGeografico){ public PuntoGeografico buscarPunto(int nroPuntoGeografico){
PuntoGeografico punto = new PuntoGeografico(); PuntoGeografico punto = new PuntoGeografico();
...@@ -191,7 +198,7 @@ public class GeoConexion { ...@@ -191,7 +198,7 @@ public class GeoConexion {
con = ds.getConnection(); con = ds.getConnection();
String sql = "SELECT nroPuntoGeografico, latitud, longitud, nombre from PuntosGeograficos where nroPuntoGeografico=?"; String sql = "SELECT id, latitud, longitud, nombre from PuntosGeograficos where id=?";
PreparedStatement statement = con.prepareStatement(sql); PreparedStatement statement = con.prepareStatement(sql);
...@@ -201,8 +208,8 @@ public class GeoConexion { ...@@ -201,8 +208,8 @@ public class GeoConexion {
if(result.next()){ if(result.next()){
int id = result.getInt(1); int id = result.getInt(1);
float latitud = result.getFloat(2); double latitud = result.getDouble(2);
float longitud = result.getFloat(3); double longitud = result.getDouble(3);
String nombre = result.getString(4); String nombre = result.getString(4);
punto.setId(id); punto.setId(id);
...@@ -260,7 +267,13 @@ public class GeoConexion { ...@@ -260,7 +267,13 @@ public class GeoConexion {
//correspondiente a la distancia al punto dado como //correspondiente a la distancia al punto dado como
//Si el size del array retornado es 0, entonces ocurrió algún error o la base de datos //Si el size del array retornado es 0, entonces ocurrió algún error o la base de datos
//está vacía //está vacía
public PuntoGeografico[] buscarPuntosCercanos(float parametroLongitud, float parametroLatitud){ /**
*
* @param parametroLatitud
* @param parametroLongitud
* @return
*/
public PuntoGeografico[] buscarPuntosCercanos(double parametroLatitud, double parametroLongitud){
//Para instanciar nomás //Para instanciar nomás
...@@ -272,9 +285,12 @@ public class GeoConexion { ...@@ -272,9 +285,12 @@ public class GeoConexion {
con = ds.getConnection(); con = ds.getConnection();
String sql = "SELECT nroPuntoGeografico, latitud, longitud, nombre from puntosGeograficos"; String sql = "SELECT id, latitud, longitud, nombre from puntosGeograficos";
PreparedStatement statement = con.prepareStatement(sql);
//This way you can move forward and backward, so less things to worry about
PreparedStatement statement = con.prepareStatement(sql,ResultSet.TYPE_SCROLL_SENSITIVE,
ResultSet.CONCUR_UPDATABLE);
result = statement.executeQuery(); result = statement.executeQuery();
...@@ -284,27 +300,34 @@ public class GeoConexion { ...@@ -284,27 +300,34 @@ public class GeoConexion {
rowcount = result.getRow(); rowcount = result.getRow();
result.beforeFirst();//Establece el cursor al comienzo otra vez result.beforeFirst();//Establece el cursor al comienzo otra vez
} }
if(rowcount==0) {
puntos = null;
System.out.println("No se encontró ningún dato");
}else {
puntos = new PuntoGeografico[rowcount]; puntos = new PuntoGeografico[rowcount];
int i=0; int i=0;
while(result.next()){ while(result.next()){
int id = result.getInt(1); int id = result.getInt(1);
float latitud = result.getFloat(2); double latitud = result.getFloat(2);
float longitud = result.getFloat(3); double longitud = result.getFloat(3);
String nombre = result.getString(4); String nombre = result.getString(4);
double distancia = distancia(parametroLatitud, parametroLongitud, latitud, longitud); double distancia = distancia(parametroLatitud, parametroLongitud, latitud, longitud);
puntos[i] = new PuntoGeografico(id, longitud, latitud, nombre, distancia); puntos[i] = new PuntoGeografico(id, longitud, latitud, nombre, distancia);
System.out.println("id: "+id+"\tlatitud: "+latitud+"\tlongitud: "+longitud+"\nombre: "+nombre+"\tdistancia: "+distancia); System.out.println("id: "+id+"\tlatitud: "+latitud+"\tlongitud: "+longitud+"\tnombre: "+nombre+"\tdistancia: "+distancia);
i++; i++;
} }
System.out.println("Se realizó la consulta"); System.out.println("Se realizó la consulta");
}
} }
catch(Exception e){ catch(Exception e){
System.out.println(e.getMessage()); System.out.println(e.getMessage());
puntos = new PuntoGeografico[0]; puntos = null;
} }
finally{ finally{
if(result != null){ if(result != null){
...@@ -314,6 +337,7 @@ public class GeoConexion { ...@@ -314,6 +337,7 @@ public class GeoConexion {
catch(Exception e){ catch(Exception e){
System.out.println(e.getMessage()); System.out.println(e.getMessage());
System.out.println("Error al cerrar result en buscarPuntosCercanos"); System.out.println("Error al cerrar result en buscarPuntosCercanos");
puntos = null;
} }
} }
...@@ -325,7 +349,7 @@ public class GeoConexion { ...@@ -325,7 +349,7 @@ public class GeoConexion {
catch(Exception e){ catch(Exception e){
System.out.println(e.getMessage()); System.out.println(e.getMessage());
System.out.print("Error al cerrar statement en buscarPuntosCercanos"); System.out.print("Error al cerrar statement en buscarPuntosCercanos");
puntos = null;
} }
} }
...@@ -336,7 +360,7 @@ public class GeoConexion { ...@@ -336,7 +360,7 @@ public class GeoConexion {
catch(Exception e){ catch(Exception e){
System.out.println(e.getMessage()); System.out.println(e.getMessage());
System.out.println("Error al cerrar con en buscarPuntosCeranos"); System.out.println("Error al cerrar con en buscarPuntosCeranos");
puntos = null;
} }
} }
...@@ -346,7 +370,7 @@ public class GeoConexion { ...@@ -346,7 +370,7 @@ public class GeoConexion {
//Calcula la distancia entre dos puntos, basándose en sus coordenadas
private double distancia(double lat1, double lng1, double lat2, double lng2) { private double distancia(double lat1, double lng1, double lat2, double lng2) {
double radioTierra = 6371; double radioTierra = 6371;
double dLat = Math.toRadians(lat2 - lat1); double dLat = Math.toRadians(lat2 - lat1);
......
...@@ -12,7 +12,7 @@ import controlador.GeoConexion; ...@@ -12,7 +12,7 @@ import controlador.GeoConexion;
/** /**
* Servlet implementation class Prueba * Servlet implementation class Prueba
*/ */
@WebServlet({ "/Prueba", "/prueba" }) @WebServlet({ "/Prueba", "/prueba","/prueba/*" })
public class Prueba extends HttpServlet { public class Prueba extends HttpServlet {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
...@@ -37,7 +37,15 @@ public class Prueba extends HttpServlet { ...@@ -37,7 +37,15 @@ public class Prueba extends HttpServlet {
float longitud=-57.6130814f; float longitud=-57.6130814f;
String nombre="Cancha de tenis Herminio Gimenez"; String nombre="Cancha de tenis Herminio Gimenez";
//con.borrarPunto(2);
String url = request.getRequestURL().toString();
String method = request.getMethod();
//System.out.println(request.getPathInfo().toString());
System.out.println(method);
System.out.println(url);
//hola
} }
......
...@@ -3,19 +3,19 @@ package modelo; ...@@ -3,19 +3,19 @@ package modelo;
public class PuntoGeografico { public class PuntoGeografico {
private int id; private int id;
private float longitud; private double longitud;
private float latitud; private double latitud;
private String nombre; private String nombre;
private double distancia; private double distancia;
public PuntoGeografico(int id,float longitud, float latitud, String nombre){ public PuntoGeografico(int id, double longitud, double latitud, String nombre){
this.id = id; this.id = id;
this.longitud = longitud; this.longitud = longitud;
this.latitud = latitud; this.latitud = latitud;
this.nombre = nombre; this.nombre = nombre;
} }
public PuntoGeografico(int id,float longitud, float latitud, String nombre, double distancia){ public PuntoGeografico(int id, double longitud, double latitud, String nombre, double distancia){
this.id = id; this.id = id;
this.longitud = longitud; this.longitud = longitud;
this.latitud = latitud; this.latitud = latitud;
...@@ -35,19 +35,19 @@ public class PuntoGeografico { ...@@ -35,19 +35,19 @@ public class PuntoGeografico {
this.id = id; this.id = id;
} }
public float getLongitud() { public double getLongitud() {
return longitud; return longitud;
} }
public void setLongitud(float longitud) { public void setLongitud(double longitud) {
this.longitud = longitud; this.longitud = longitud;
} }
public float getLatitud() { public double getLatitud() {
return latitud; return latitud;
} }
public void setLatitud(float latitud) { public void setLatitud(double latitud) {
this.latitud = latitud; this.latitud = latitud;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment