8 votos

Agregando base de datos PostgreSQL al mapa web

Estoy interesado en aprender cómo agregar una base de datos PostgreSQL a un mapa web para poder realizar funciones como seleccionar por atributos o ubicaciones. Estoy utilizando la API de Leaflet para crear el mapa web.

¿Cuáles son los pasos necesarios para integrar una base de datos PostgreSQL en Leaflet?

0 votos

Por favor especifica qué base de datos. Postgres, Oracle, MS SQL Server, MySQL.....

0 votos

¡Bienvenido a GIS SE! Como nuevo usuario, por favor toma el tour para aprender sobre nuestro formato de preguntas y respuestas enfocado. ¿A qué base de datos y a qué mapa web te estás refiriendo? Sin detalles específicos, tu pregunta es demasiado amplia para este formato. Por favor, edita tu pregunta para incluir información más específica sobre el software que estás utilizando, lo que has intentado y dónde te has quedado atascado.

8voto

Ricardo Reyes Puntos 3428

No se puede hablar directamente desde un navegador web a una base de datos, porque un navegador ejecuta código en la computadora del cliente, y eso no (y no debería) conectarse directamente a tu base de datos.

Lo que necesitas es un middleware que convierta una solicitud desde tu código a una consulta de PostgreSQL, y devuelva datos que Leaflet pueda entender.

Dependiendo de la complejidad de tus datos y de lo que sepas escribir en código, podrías escribir algo básico en un lenguaje de programación de servidor, como Python o JavaScript, y ejecutarlo en un framework ligero, como Flask o Feathers.

O puedes optar por algo más grande, como GeoServer, que ya tiene su API desarrollada (se llama WFS y es un estándar abierto) y sabe cómo hablar con PostGIS, incluyendo la realización de consultas parametrizadas y vistas.

2voto

geomajor56 Puntos 1089

Aquí tienes un script útil de Bryan McBride. Es un script de PHP que devuelve geojson de una base de datos de PostgreSQL-PostGIS.

También, echa un vistazo a su plantilla bootleaf.

0voto

TodK Puntos 979

Acabo de crear un servidor de API que consulta la base de datos (PostgreSQL o MySQL) y devuelve GeoJSON al instante. He probado con la API Fetch y Axios que se pueden utilizar para OBTENER el GeoJSON (desde una URL como localhost:5000/postgres/api/ y agregarlo como una capa a Leaflet.

Puedes clonar el repositorio desde Github y configurar algunas variables en server.js para iniciar el servidor. La URL cambia a localhost:5000/mysql/api/?fields=,...y así sucesivamente si decides usar MySQL.

También puedes filtrar por atributos al especificar por cuáles atributos filtrar y la palabra clave de filtro (por ejemplo, localhost:5000/postgres/api/test?fields=nombre&filter=ABC siempre que tengas una tabla existente con el nombre de tabla test y tengas el atributo nombre en la tabla y una característica con el atributo nombre igual a ABC.

La demo está alojada en https://sql2geojson.herokuapp.com/

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X