Commit 234e3caf by Pedro Rolon

se agregaron archivos necesarios para el proyecto

parents
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/jdk1.8.0_191">
<attributes>
<attribute name="owner.project.facets" value="java"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.server.core.container/org.eclipse.jst.server.tomcat.runtimeTarget/Apache Tomcat v8.0">
<attributes>
<attribute name="owner.project.facets" value="jst.web"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.web.container"/>
<classpathentry kind="con" path="org.eclipse.jst.j2ee.internal.module.container"/>
<classpathentry kind="output" path="build/classes"/>
</classpath>
<?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>
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry excluding="**/bower_components/*|**/node_modules/*|**/*.min.js" kind="src" path="WebContent"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.WebProject">
<attributes>
<attribute name="hide" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.wst.jsdt.launching.baseBrowserLibrary"/>
<classpathentry kind="output" path=""/>
</classpath>
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
org.eclipse.jdt.core.compiler.compliance=1.8
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.8
<?xml version="1.0" encoding="UTF-8"?><project-modules id="moduleCoreId" project-version="1.5.0">
<wb-module deploy-name="Api-e004">
<wb-resource deploy-path="/" source-path="/WebContent" tag="defaultRootSource"/>
<wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
<property name="context-root" value="Api-e004"/>
<property name="java-output-path" value="/Api-e004/build/classes"/>
</wb-module>
</project-modules>
<?xml version="1.0" encoding="UTF-8"?>
<faceted-project>
<runtime name="Apache Tomcat v8.0"/>
<fixed facet="jst.web"/>
<fixed facet="java"/>
<fixed facet="wst.jsdt.web"/>
<installed facet="java" version="1.8"/>
<installed facet="jst.web" version="3.1"/>
<installed facet="wst.jsdt.web" version="1.0"/>
</faceted-project>
org.eclipse.wst.jsdt.launching.baseBrowserLibrary
\ No newline at end of file
Manifest-Version: 1.0
Class-Path:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
<display-name>Api-e004</display-name>
<welcome-file-list>
<welcome-file>index.html</welcome-file>
<welcome-file>index.htm</welcome-file>
<welcome-file>index.jsp</welcome-file>
<welcome-file>default.html</welcome-file>
<welcome-file>default.htm</welcome-file>
<welcome-file>default.jsp</welcome-file>
</welcome-file-list>
<resource-ref>
<description>Pool conexiones MySQL</description>
<res-ref-name>jdbc/postgresql/Geo</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Menú Principal</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="vista/bootstrap3/css/bootstrap.min.css">
<style type="text/css">
h1{
font-size: 50px;
text-align: center;
}
li{
padding-top: 10px;
font-size: 20px;
}
</style>
</head>
<body class="container" >
<h1>Menú Principal</h1>
<hr>
<ul>
<li><a href="vista/html/GuardarPunto.html">Guardar Punto Geográfico</a></li>
<li><a href="vista/html/BorrarPunto.html">Borrar Punto Geográfico</a></li>
<li><a href="vista/html/BuscarPuntosCercanos.html">Buscar Puntos Cercanos</a></li>
<li><a href="vista/html/BuscarPunto.html">Buscar Punto</a></li>
</ul>
</body>
</html>
\ No newline at end of file
--Script para creación de las tablas de la base de datos
CREATE TABLE puntosGeograficos(
nroPuntoGeografico SMALLINT GENERATED ALWAYS AS IDENTITY PRIMARY KEY,
Latitud FLOAT NOT NULL,
Longitud FLOAT NOT NULL,
Nombre VARCHAR(255)
);
\ No newline at end of file
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
// This file is autogenerated via the `commonjs` Grunt task. You can require() this file in a CommonJS environment.
require('../../js/transition.js')
require('../../js/alert.js')
require('../../js/button.js')
require('../../js/carousel.js')
require('../../js/collapse.js')
require('../../js/dropdown.js')
require('../../js/modal.js')
require('../../js/tooltip.js')
require('../../js/popover.js')
require('../../js/scrollspy.js')
require('../../js/tab.js')
require('../../js/affix.js')
\ No newline at end of file
<!DOCTYPE html>
<html>
<head>
<title>Borrar Punto</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../bootstrap3/css/bootstrap.min.css">
<style type="text/css">
h1{
text-align: center;
}
form{
border: dotted;
border-radius: 25px;
background-color: #e1eae5;
padding: 20px;
vertical-align: middle;
width: 80%;
margin: auto;
}
input{
}
div .form-group{
margin:20px;
}
</style>
</head>
<body>
<h1>Borrar Punto Geográfico</h1>
<hr>
<form class="col-md-12" method="post" action="/api-e004/borrar">
<!-- <input type="" name=""> -->
<div class="form-group">
<div class="col-md-4">
<label>ID Punto</label>
</div>
<div class="col-md-8">
<input type="text" name="idBaja" id="idBaja" class="form-control" placeholder="Id punto">
</div>
</div>
<div class="text-center">
<input type="submit" name="botonBorrarPunto" value="Borrar!">
</div>
</form>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Consultar Punto</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../bootstrap3/css/bootstrap.min.css">
<style type="text/css">
h1{
text-align: center;
}
form{
border: dotted;
border-radius: 25px;
background-color: #e1eae5;
padding: 20px;
vertical-align: middle;
width: 80%;
margin: auto;
}
input{
}
div .form-group{
margin:20px;
}
</style>
</head>
<body>
<h1>Consultar Punto</h1>
<hr>
<form class="col-md-12" method="get" id="form" action="/api-e004/prueba">
<div class="form-group">
<div class="col-md-4">
<label>Id Punto</label>
</div>
<div class="col-md-8">
<input type="text" name="idConsulta" id="idConsulta" class="form-control" placeholder="ID Punto">
</div>
</div>
<div class="text-center">
<input type="submit" name="botonBuscarPunto" value="Buscar!">
</div>
</form>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Buscar Puntos Cercanos</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../bootstrap3/css/bootstrap.min.css">
<style type="text/css">
h1{
text-align: center;
}
form{
border: dotted;
border-radius: 25px;
background-color: #e1eae5;
padding: 20px;
vertical-align: middle;
width: 80%;
margin: auto;
}
input{
}
div .form-group{
margin:20px;
}
</style>
</head>
<body>
<h1>Buscar Puntos Cercanos</h1>
<hr>
<form class="col-md-12" method="post" id="form" action="/api-e004/punto">
<div class="form-group">
<div class="col-md-4">
<label>Latitud</label>
</div>
<div class="col-md-8">
<input type="text" name="latitudConsulta" id="latitudConsulta" class="form-control" placeholder="Latitud">
</div>
</div>
<div class="form-group">
<div class="col-md-4">
<label>Longitud</label>
</div>
<div class="col-md-8">
<input type="text" name="longitudConsulta" id="longitudConsulta" class="form-control" placeholder="Longitud">
</div>
</div>
<div class="text-center">
<input type="submit" name="botonBuscarPunto" value="Consultar!">
</div>
</form>
</body>
</html>
<!DOCTYPE html>
<html>
<head>
<title>Guardar Punto</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="../bootstrap3/css/bootstrap.min.css">
<style type="text/css">
body{
margin-left: auto;
margin-right: auto:
padding: 10px;
display: block;
}
h1{
text-align: center;
}
form{
border: dotted;
border-radius: 25px;
background-color: #e1eae5;
padding: 20px;
vertical-align: middle;
width: 80%;
margin: auto;
}
input{
}
div .form-group{
margin:20px;
}
</style>
</head>
<body>
<h1>Guardar Punto Geográfico</h1>
<hr>
<form class="col-md-12" method="post" action="/api-e004/guardar">
<div class="form-group">
<div class="col-md-4">
<label>Nombre</label>
</div>
<div class="col-md-8">
<input type="text" name="nombreAlta" id="nombredAlta" class="form-control" placeholder="Nombre">
</div>
</div>
<div class="form-group">
<div class="col-md-4">
<label>Latitud</label>
</div>
<div class="col-md-8">
<input type="text" name="latitudAlta" id="latitudAlta" class="form-control" placeholder="Latitud">
</div>
</div>
<div class="form-group">
<div class="col-md-4">
<label>Longitud</label>
</div>
<div class="col-md-8">
<input type="text" name="longitudAlta" id="longitudAlta" class="form-control" placeholder="Longitud">
</div>
</div>
<div class="text-center">
<input type="submit" name="botonAgregarPunto" value="Agregar!">
</div>
</form>
</body>
</html>
package controlador;
/**
* @author pedro rolón
*/
import java.util.ArrayList;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import javax.naming.Context;
import javax.naming.InitialContext;
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 javax.sql.DataSource;
import modelo.PuntoGeografico;
public class GeoConexion {
Context initContext;
Connection con = null;
PreparedStatement statement = null;
ResultSet result = null;
String name = "java:/comp/env/jdbc/postgresql/Geo"; //Nombre del resource para el pool de conexiones
/**
*
* @param longitud
* @param latitud
* @param nombre
* @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) {
int identificador = -1;
try{
initContext = new InitialContext();
DataSource ds = (DataSource) initContext.lookup(name);
con = ds.getConnection();
String sql = "INSERT INTO PuntosGeograficos (longitud, latitud, nombre) values (?,?,?)";
//El segundo parámetro, en este caso el 1, le indica al driver
//si tiene que retornar o no las primary key generadas
PreparedStatement statement = con.prepareStatement(sql,1);
statement.setFloat(1, longitud);
statement.setFloat(2, latitud);
statement.setString(3, nombre);
statement.executeUpdate();
//Obtiene el identificador del valor insertado
statement.getGeneratedKeys().next();
identificador = statement.getGeneratedKeys().getInt(1);
System.out.println("id: "+identificador);
System.out.println("Se agregó correctamente el punto");
}
catch(Exception e){
System.out.println(e.getMessage());
System.out.println("Error al agregarPunto");
identificador = -1;
}
finally{
if(result != null){
try{
result.close();
}
catch(Exception e){
System.out.println(e.getMessage());
System.out.println("Error al cerrar result en agregarPunto");
identificador = -1;
}
}
if(statement != null){
try{
statement.close();
}
catch(Exception e){
System.out.println(e.getMessage());
System.out.print("Error al cerrar statement en agregarPunto");
identificador = -1;
}
}
if(con != null){
try{
con.close();
}
catch(Exception e){
System.out.println(e.getMessage());
System.out.println("Error al cerrar con en agregarPunto");
identificador = -1;
}
}
}
return identificador;
}
//Elimina un registro de la base de datos
public boolean borrarPunto(int nroPuntoGeografico){
boolean logrado;
try{
initContext = new InitialContext();
DataSource ds = (DataSource) initContext.lookup(name);
con = ds.getConnection();
String sql = "DELETE FROM PuntosGeograficos where ";
PreparedStatement statement = con.prepareStatement(sql);
int rowAffecteds = statement.executeUpdate();
if(rowAffecteds>0) {
logrado = true;
System.out.println("Se han eliminado "+ rowAffecteds+" registros.");
}
else {
System.out.println("No se ha eliminado ningún registro");
logrado=false;
}
logrado = true;
}
catch(Exception e){
System.out.println(e.getMessage());
System.out.println("error en borrarPunto");
logrado = false;
}
finally{
if(result != null){
try{
result.close();
}
catch(Exception e){
System.out.println(e.getMessage());
System.out.println("Error al cerrar result en borrarPunto");
logrado = false;
}
}
if(statement != null){
try{
statement.close();
}
catch(Exception e){
System.out.println(e.getMessage());
System.out.print("Error al cerrar statement en borrarPunto");
logrado = false;
}
}
if(con != null){
try{
con.close();
}
catch(Exception e){
System.out.println(e.getMessage());
System.out.println("Error al cerrar con en borrarPunto");
logrado = false;
}
}
}
return logrado;
}
//Busca en la base de datos por id del punto geografico
//Retorna un objeto del tipo PuntoGeografico
public PuntoGeografico buscarPunto(int nroPuntoGeografico){
PuntoGeografico punto = new PuntoGeografico();
try{
initContext = new InitialContext();
DataSource ds = (DataSource) initContext.lookup(name);
con = ds.getConnection();
String sql = "SELECT nroPuntoGeografico, latitud, longitud, nombre from PuntosGeograficos where nroPuntoGeografico=?";
PreparedStatement statement = con.prepareStatement(sql);
statement.setInt(1, nroPuntoGeografico);
result = statement.executeQuery();
if(result.next()){
int id = result.getInt(1);
float latitud = result.getFloat(2);
float longitud = result.getFloat(3);
String nombre = result.getString(4);
punto.setId(id);
punto.setLatitud(latitud);
punto.setLongitud(longitud);
punto.setNombre(nombre);
}else{
System.out.println("no se encontró");
}
}
catch(Exception e){
}
finally{
if(result != null){
try{
result.close();
}
catch(Exception e){
System.out.println(e.getMessage());
System.out.println("Error al cerrar result en buscarPunto");
}
}
if(statement != null){
try{
statement.close();
}
catch(Exception e){
System.out.println(e.getMessage());
System.out.print("Error al cerrar statement en buscarPunto");
}
}
if(con != null){
try{
con.close();
}
catch(Exception e){
System.out.println(e.getMessage());
System.out.println("Error al cerrar con en buscarPunto");
}
}
}
return punto;
}
//Retorna un array con todos los puntos en la base de datos con la distancia
//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
//está vacía
public PuntoGeografico[] buscarPuntosCercanos(float parametroLongitud, float parametroLatitud){
//Para instanciar nomás
PuntoGeografico[] puntos;
try{
initContext = new InitialContext();
DataSource ds = (DataSource) initContext.lookup(name);
con = ds.getConnection();
String sql = "SELECT nroPuntoGeografico, latitud, longitud, nombre from puntosGeograficos";
PreparedStatement statement = con.prepareStatement(sql);
result = statement.executeQuery();
//Para saber la cantidad de filas que retorna el query
int rowcount = 0;
if(result.last()){
rowcount = result.getRow();
result.beforeFirst();//Establece el cursor al comienzo otra vez
}
puntos = new PuntoGeografico[rowcount];
int i=0;
while(result.next()){
int id = result.getInt(1);
float latitud = result.getFloat(2);
float longitud = result.getFloat(3);
String nombre = result.getString(4);
double distancia = distancia(parametroLatitud, parametroLongitud, latitud, longitud);
puntos[i] = new PuntoGeografico(id, longitud, latitud, nombre, distancia);
System.out.println("id: "+id+"\tlatitud: "+latitud+"\tlongitud: "+longitud+"\nombre: "+nombre+"\tdistancia: "+distancia);
i++;
}
System.out.println("Se realizó la consulta");
}
catch(Exception e){
System.out.println(e.getMessage());
puntos = new PuntoGeografico[0];
}
finally{
if(result != null){
try{
result.close();
}
catch(Exception e){
System.out.println(e.getMessage());
System.out.println("Error al cerrar result en buscarPuntosCercanos");
}
}
if(statement != null){
try{
statement.close();
}
catch(Exception e){
System.out.println(e.getMessage());
System.out.print("Error al cerrar statement en buscarPuntosCercanos");
}
}
if(con != null){
try{
con.close();
}
catch(Exception e){
System.out.println(e.getMessage());
System.out.println("Error al cerrar con en buscarPuntosCeranos");
}
}
}
return puntos;
}
private double distancia(double lat1, double lng1, double lat2, double lng2) {
double radioTierra = 6371;
double dLat = Math.toRadians(lat2 - lat1);
double dLng = Math.toRadians(lng2 - lng1);
double sindLat = Math.sin(dLat / 2);
double sindLng = Math.sin(dLng / 2);
double va1 = Math.pow(sindLat, 2) + Math.pow(sindLng, 2)
* Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2));
double va2 = 2 * Math.atan2(Math.sqrt(va1), Math.sqrt(1 - va1));
double distancia = radioTierra * va2;
return distancia;
}
}
package controlador;
import java.io.IOException;
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 modelo.PuntoGeografico;
import controlador.GeoConexion;
/**
* Servlet implementation class Prueba
*/
@WebServlet({ "/Prueba", "/prueba" })
public class Prueba extends HttpServlet {
private static final long serialVersionUID = 1L;
/**
* @see HttpServlet#HttpServlet()
*/
public Prueba() {
super();
// TODO Auto-generated constructor stub
}
/**
* @see HttpServlet#doGet(HttpServletRequest request, HttpServletResponse response)
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
response.getWriter().append("Served at: ").append(request.getContextPath());
GeoConexion con = new GeoConexion();
float latitud=-25.2820216f;
float longitud=-57.6130814f;
String nombre="Cancha de tenis Herminio Gimenez";
//con.borrarPunto(2);
}
/**
* @see HttpServlet#doPost(HttpServletRequest request, HttpServletResponse response)
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// TODO Auto-generated method stub
doGet(request, response);
}
}
package modelo;
public class PuntoGeografico {
private int id;
private float longitud;
private float latitud;
private String nombre;
private double distancia;
public PuntoGeografico(int id,float longitud, float latitud, String nombre){
this.id = id;
this.longitud = longitud;
this.latitud = latitud;
this.nombre = nombre;
}
public PuntoGeografico(int id,float longitud, float latitud, String nombre, double distancia){
this.id = id;
this.longitud = longitud;
this.latitud = latitud;
this.nombre = nombre;
this.distancia = distancia;
}
public PuntoGeografico(){
}
public int getId(){
return id;
}
public void setId(int id){
this.id = id;
}
public float getLongitud() {
return longitud;
}
public void setLongitud(float longitud) {
this.longitud = longitud;
}
public float getLatitud() {
return latitud;
}
public void setLatitud(float latitud) {
this.latitud = latitud;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public double getDistancia(){
return distancia;
}
public void setDistancia(double distancia){
this.distancia = distancia;
}
}
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