Opciones para mostrar vectores de PostGIS en OpenLayers

22

Soy muy nuevo en el mapeo web, por lo que esta pregunta puede ser un poco errónea.

Quiero tener una interfaz web muy simple con OpenLayers (o incluso con Google Maps, si es más fácil) que puede mostrar varias tablas de puntos y polígonos que se encuentran actualmente en PostGIS.

Quiero que esto sea lo más simple (y con el menor mantenimiento posible):

  • No quiero tener que crear mosaicos (a menos que haya una buena razón), o tener una capa masiva y compleja de middleware.
  • El rendimiento no necesita ser fenomenal, ya que es para uso interno y, por lo tanto, no necesita escalar más allá de un par de usuarios concurrentes.
  • El estilo de las capas vectoriales es de mínima importancia.
  • Las herramientas de código abierto son mucho más preferidas ya que casi no tengo presupuesto para esto.

¿Cuál es el enfoque recomendado para esto?

    
pregunta fmark 15.08.2010 - 09:16

7 respuestas

14

La forma más fácil de configurar un mapa en línea desde las fuentes de PostGIS es usar Geoserver. El Manual del usuario de Geoserver contiene una buena introducción para usar PostGIS como fuente de datos . Básicamente, agrega un almacén de datos que contiene la información de conexión y luego puede publicar cualquier tabla que contenga geometrías. Además de PostGIS, también puede utilizar muchas otras fuentes de datos:

Desde la interfaz web de Geoserver, también puede previsualizar las capas en una página web de OpenLayers. Puede usar la fuente de esta página de vista previa para crear su propia aplicación OpenLayers.

Geoserver ofrece muchas opciones de estilo para datos vectoriales y ráster. Para empezar, puede que estés contento con solo personalizar algunos de los estilos prefabricados que vienen con la instalación.

De forma predeterminada, Geoserver no se agrupa y OpenLayers no solicita mosaicos. Si no necesita un alto rendimiento, no necesita molestarse con los mosaicos de todas formas.

Personalmente, creo que OpenLayers es más fácil de usar que la API de Google Maps y serás independiente de Google. Si necesita un mapa de fondo, es posible que desee buscar en OpenStreetMap en su lugar.

    
respondido por el underdark 15.08.2010 - 14:40
8

Si realmente no quieres una gran capa de middleware, puedes usar TinyOWS ( enlace ): nunca lo he probado, pero Afirma ser pequeño y rápido. Además, utiliza los estándares OGC, por lo que si decide publicar para una audiencia más amplia y no puede continuar cambiando a GeoServer o MapServer le permitirá seguir usando el mismo código de cliente sin cambios.

    
respondido por el Ian Turton 15.08.2010 - 18:40
6

Puedes usar cualquier aplicación que pueda servir el protocolo WFS. Con Openlayers puedes usar fácilmente los datos de PostGIS a través del protocolo WFS. Hay pocas aplicaciones FLOSS que pueden hacer esto. Por ejemplo, FeatureServer , Geoserver , MapServer ... Si eres nuevo en el mapeo web, recomendaría Geoserver porque es muy fácil comenzar.

Vea este Ejemplo de Openlayers con WFS .

    
respondido por el Mario Miler 15.08.2010 - 10:20
4

Openlayers admite una gran cantidad de formatos de datos vectoriales (GeoJSON, GML, KML ..), que se pueden visualizar y diseñar con la capa vectorial de OpenLayers.

Tal vez el middleware más simple podría ser FeatureServer que puede proporcionar datos de PostGIS a la mayoría de los formatos compatibles con OL. Es fácil de configurar y es compatible con consultas espaciales / de atributos simples.

Pero, si necesita algo más potente, Geoserver podría ser una solución viable.

    
respondido por el dodobas 15.08.2010 - 10:24
4

Puede alimentar json, kml amd wkt desde postgis como st_asgeojson (), st_asKML () para el script del servidor PHP o JSP y luego usar la clase ajax de openlayers para conectar la fuente de datos desde su servidor

    
respondido por el chaipat 21.08.2010 - 05:19
2

Podrías hacer esto fácilmente usando Geomajas que leería tus datos de la base de datos usando Hibernate o Geotools. Esto es todo Java, lo que puede ser un problema si prefieres otros idiomas.

    
respondido por el Joachim Van der Auwera 24.09.2010 - 16:06
1

Bueno, lo que puedes hacer es usar la biblioteca de OpenLayers y un lenguaje de servidor para insertar todos los tipos de geometría de Postgis en Openlayers. Vas a necesitar:

  • Openlayers.Layer.Vector para crear una capa a datos vectoriales
  • Openlayers OpenLayers.Protocol.HTTP para leer datos del servidor de Postgis
  • OpenLayers.Strategy.Fixed opcional
  • OpenLayers.Feature.Vector: todos los vectores se encuentran en esta clase en el cliente
  • OpenLayers.Format.GeoJSON o OpenLayers.Format.JSON
  • Un lenguaje del lado del servidor para realizar una solicitud a Postgis y bombear geometrías al cliente
  • Un analizador JSON en el servidor y el cliente para transportar datos en este formato

Con esto, puedes visualizarlos muy fácilmente sin más middleware.

    
respondido por el cavila 20.12.2012 - 20:28

Lea otras preguntas en las etiquetas