Več

Možnosti za prikaz vektorjev PostGIS v OpenLayers


Zelo sem nov pri kartiranju spletnih strani, zato je to vprašanje morda nekoliko zgrešeno.

Želim imeti zelo preprost spletni vmesnik, ki uporablja OpenLayers (ali celo Google Maps, če bo to lažje), ki lahko prikaže številne tabele točk in mnogokotnikov, ki so trenutno v PostGIS.

Želim, da je to čim bolj preprosto (in čim nižje vzdrževanje):

  • Ne želim ustvarjati ploščic (razen če obstaja zelo dober razlog) ali imeti obsežno zapleteno plast vmesne programske opreme.
  • Učinkovitost ne sme biti izjemna, saj je to za interno uporabo in zato ni treba razširiti več kot nekaj sočasnih uporabnikov.
  • Oblikovanje vektorskih plasti je minimalnega pomena.
  • Odprtokodna orodja so zelo zaželena, saj za to skoraj nimam proračuna.

Kakšen je priporočljiv pristop za to?


Najlažji način za postavitev spletnega zemljevida iz virov PostGIS je uporaba Geoserverja. Uporabniški priročnik Geoserver vsebuje dober uvod za uporabo PostGIS kot podatkovnega vira. V bistvu dodate shrambo podatkov, ki vsebuje informacije o povezavi, nato pa lahko objavite katero koli tabelo, ki vsebuje geometrije. Poleg PostGIS lahko uporabite tudi številne druge vire podatkov:

Znotraj spletnega vmesnika Geoserver si lahko predogledate sloje tudi na spletni strani OpenLayers. Vir te strani za predogled lahko uporabite za izdelavo lastne aplikacije OpenLayers.

Geoserver ponuja številne možnosti oblikovanja tako za vektorske kot za rastrske podatke. Za začetek boste morda dovolj zadovoljni s samo prilagoditvijo nekaterih vnaprej pripravljenih slogov, ki so priloženi namestitvi.

Geoserver privzeto ne ploščic in OpenLayers ne zahteva ploščic. Če ne potrebujete visokozmogljivih izdelkov, se s ploščicami vseeno ne trudite.

Osebno mislim, da je OpenLayers enostavnejši za uporabo kot API za Google Maps in boste neodvisni od Googla. Če potrebujete zemljevid v ozadju, boste morda želeli namesto tega pogledati OpenStreetMap.


Če res ne želite velikega vmesnega sloja, lahko uporabite TinyOWS (http://tinyows.org/trac) - Nikoli ga nisem preizkusil, vendar trdi, da je majhen in hiter. Poleg tega uporablja standarde OGC, tako da, če se odločite za objavo širšemu občinstvu in ne more nadaljevati s preklopom na GeoServer ali pa vam bo MapServer omogočil uporabo iste odjemalske kode brez sprememb.


Uporabite lahko katero koli aplikacijo, ki lahko streži protokol WFS. Z Openlayers lahko enostavno uporabljate podatke PostGIS prek protokola WFS. Le malo aplikacij FLOSS lahko to stori. Na primer, FeatureServer, Geoserver, MapServer ... Če ste novi v spletnem preslikavanju, priporočam Geoserver, ker ga je zelo enostavno začeti.

Oglejte si ta primer Openlayers z WFS.


Openlayers podpira veliko število formatov vektorskih podatkov (GeoJSON, GML, KML ...), ki jih je mogoče prikazati in oblikovati s pomočjo sloja OpenLayers Vector.

Mogoče bi lahko bila najpreprostejša vmesna programska oprema FeatureServer, ki lahko postGIS podatke streže večini formatov, ki jih podpira OL. Enostavna nastavitev in podpora za preproste prostorske / atributne poizvedbe.

Ampak, če potrebujete nekaj močnejšega, bi bil Geoserver lahko izvedljiva rešitev.


Iz postgisa lahko dovajate json, kml in amd wkt, kot so st_asgeojson (), st_asKML () za skript strežnika PHP ali JSP, nato pa uporabite razred odprtih slojev ajax za povezavo vira podatkov s strežnika


To lahko enostavno storite z Geomajami, ki bi podatke prebrali iz zbirke podatkov s pomočjo Hibernate ali Geotools. To je povsem Java, kar lahko predstavlja težavo, če imate raje druge jezike.


No, kar lahko storite, je, da uporabite knjižnico OpenLayers in strežniški jezik, da potisnete vse vrste geometrije postgis v Openlayers. Potrebovali boste:

  • Openlayers.Layer.Vector za ustvarjanje plasti do vektorskih podatkov
  • Openlayers OpenLayers.Protocol.HTTP za branje podatkov s strežnika Postgis
  • OpenLayers.Strategy.Popravljeno neobvezno
  • OpenLayers.Feature.Vector so vsi vektorji iz tega razreda na odjemalcu
  • OpenLayers.Format.GeoJSON ali OpenLayers.Format.JSON
  • Strežniški jezik za pošiljanje zahteve za Postgis in črpanje geometrij odjemalcu
  • Razčlenjevalnik JSON na strežniku in odjemalcu za prenos podatkov v to obliko

S tem jih lahko zelo enostavno prikažete brez vmesne programske opreme.


Poglej si posnetek: Geoserver - Introduction to geoserver (September 2021).