-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[Feature]: Add code for basic Geocoder using FastAPI
- Loading branch information
Showing
11 changed files
with
1,917 additions
and
0 deletions.
There are no files selected for viewing
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,6 @@ | ||
__pycache__/ | ||
.venv/ | ||
*.pyc | ||
.DS_Store | ||
dist/ | ||
build/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,13 @@ | ||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE | ||
Version 2, December 2004 | ||
|
||
Copyright (C) [tu nombre] [año] | ||
|
||
Everyone is permitted to copy and distribute verbatim or modified | ||
copies of this license document, and changing it is allowed as long | ||
as the name is changed. | ||
|
||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE | ||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION | ||
|
||
0. You just DO WHAT THE FUCK YOU WANT TO. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,54 @@ | ||
# API de Geocodificación | ||
|
||
## Descripción | ||
Esta API de geocodificación proporciona un servicio para convertir direcciones en coordenadas geográficas (latitud y longitud). Basada en FastAPI y SQLite, permite a los usuarios consultar direcciones almacenadas en una base de datos y recibir sus coordenadas correspondientes. | ||
|
||
## Instalación | ||
|
||
### Requisitos Previos | ||
- Python 3.8 o superior | ||
- pip (gestor de paquetes de Python) | ||
|
||
### Configuración del Entorno | ||
Se recomienda usar un entorno virtual para instalar las dependencias. Para crear y activar un entorno virtual, ejecute: | ||
|
||
```bash | ||
python -m venv venv | ||
source venv/bin/activate # En Windows use `venv\Scripts\activate` | ||
``` | ||
|
||
### Instalación de Dependencias | ||
Este proyecto utiliza Poetry para la gestión de dependencias. Instale Poetry y luego las dependencias del proyecto: | ||
|
||
```bash | ||
pip install poetry | ||
poetry install | ||
``` | ||
### Configuración de la Base de Datos | ||
Antes de ejecutar la API, es necesario crear y poblar la base de datos SQLite. Ejecute el siguiente script para hacerlo: | ||
|
||
```bash | ||
python geocoder_api/crear_db.py | ||
``` | ||
|
||
Asegúrese de tener el archivo CSV con los datos de geocodificación en la ruta correcta. | ||
|
||
### Ejecución de la API | ||
|
||
Para iniciar el servidor de la API, ejecute: | ||
|
||
``` | ||
poetry run uvicorn main:app --reload | ||
``` | ||
|
||
La API estará disponible en http://127.0.0.1:8000. | ||
|
||
### Uso de la API | ||
|
||
Para geocodificar una dirección, realice una solicitud GET a /geocodificar/ con el parámetro de dirección. Por ejemplo: | ||
|
||
``` | ||
http://127.0.0.1:8000/geocodificar/?direccion=Tu+Direccion | ||
``` | ||
|
||
O en su defecto ir a la ruta http://127.0.0.1:8000/docs en donde fastAPI dispone una documentación interactiva hecha con swagger. |
Empty file.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,25 @@ | ||
import sqlite3 | ||
import pandas as pd | ||
# Leer el archivo CSV en un DataFrame | ||
df = pd.read_csv('./geocoder_api/db_xample.csv', sep=';') | ||
|
||
# Conectar a la base de datos SQLite (se crea si no existe) | ||
conn = sqlite3.connect('.db') | ||
cursor = conn.cursor() | ||
|
||
# Crear tabla en la base de datos | ||
cursor.execute(''' | ||
CREATE TABLE IF NOT EXISTS geocoding ( | ||
id INTEGER PRIMARY KEY, | ||
direccion TEXT, | ||
latitud REAL, | ||
longitud REAL | ||
) | ||
''') | ||
|
||
# Insertar datos del DataFrame en la tabla | ||
df.to_sql('geocoding', conn, if_exists='replace', index=False) | ||
|
||
# Cerrar la conexión a la base de datos | ||
conn.close() | ||
print("Base de datos creada y poblada con éxito.") |
Oops, something went wrong.