Hacker News new | ask | show | jobs
by billfruit 1843 days ago
PostGIS is popular and fine, but is there a front end framework available designed to work with it, so that one can fully avoid the proprietary ESRI stack?
10 comments

PostGIS is now basically the "industry standard", so most third party tools work with it, even Esri! Here's some open source parts:

Desktop: https://qgis.org

Middleware: https://mapserver.org, https://geoserver.org, https://mapnik.org, https://github.com/crunchydata/pg_tileserv, https://github.com/crunchydata/pg_featureserv

Web UI: https://openlayers.org, https://leaflet.org, https://www.mapbox.com/mapbox-gljs

much to some grumpiness from the home office, we even used postgis at esri's Portland R&D center.

it was a pleasure to use, and pramsey is definitely a stand up person.

Mapbox is the probably the best GL based mapping client but it is no longer free on the latest version. Although, its not designed to work with PostGIS explicitly you definitely can. (i.e. querying mvts, map tiles, through PostGIS)

Leaflet as others have said is another good option, but is really made for old slipply map tiles.

Most of the ESRI based web clients I think look and feel terrible IMO. Rendering just looks off. What features are you looking for in a mapping client?

Esri's JavaScript API 3 has poor performance, but I've been very happy with version 4.
If you are doing analysis and exploration, or creating offline reports, QGIS is worth learning. It can connect to and query a PostGIS backend directly, and doesn't need to do any sort of intermediate translation and storage that I've seen other packages require. It's scriptable, and extremely flexible -- I've used it to create reports and artifacts to share externally. Overall a solid example of spectacular open source software.
While QGIS is ok, for many applications including analysis and making reports. It is not particularly suited if you want to embed a map view in another application, or to build a full custom front end to render map views.
There's https://www.qgis.org/en/site/ but when I've worked with web based projects we've used Django and made a custom UI for it. It depends on what type of data you want to display though, for us it was map data so we just used https://leafletjs.com/
PostGIS can write to GeoJSON so you can have a simple flask or bottlepy webserver to query the db. Then use leaflet GeoJSON layer to pull down the data and render it on map.

There is of course the newer vector tiles which is a better solution in many situations but a bit more complicated to get going. Crunchy Data have made some good examples and a nice tile server for this.

QGIS or Geoserver, or GDAL for lower level stuff.
For quick stuff at work our default is geopandas + Plotly.
Leafletjs was the only oss frontend option back in 2015-2016 when we ditched Esri and created our own in-house app, based on Electron. Apart from Mapbox, which was freemium.
Did you consider OpenLayers?

It's been around for a long time and is really powerful when compared to other open source web-based mapping/GIS options - unfortunately I never really need the advanced features in the projects I tend to work on.

https://openlayers.org/

Edit, my favourite from their list of examples: https://openlayers.org/en/latest/examples/sea-level.html

I think OpenLayers had come up as an option back then, but Leaflet was just easy to adopt, I guess.
I recently built a prototype with GeoDjango & it seems productive.

Queries & plots are relatively straightforward. Creating custom forms to edit map data is harder to figure out. The tutorials I found focus on the Django admin, but don’t explain how to create user-facing forms for site visitors.

Anyone know of good GeoDjango tutorials (or well documented examples) for forms?

- update the location of a point with drag and drop

- add waypoints to a line

there are plural resources, not one winner-take-all right?