DEV Community

Cover image for Geo Crash Course

Geo Crash Course

Elena on January 11, 2019

What do you need to know when starting in Geo as a developer? Read on to know! For a very long time I planned to write this guide on starting in G...
Collapse
 
jordonr profile image
Jordon Replogle • Edited

Thanks for the great slide deck. I've been thinking of doing a personal project that would rely on spatial data. On your slide 77, you mentioned relational databases and I was wondering if you had any experience/opinions on using NoSQL databases like MongoDB or ArangoDB?

Personally siding with PostGIS at the moment, but I haven't been able to decide.

Collapse
 
desgrangeremi profile image
Rémi Desgrange

I'll talk about my experience but I think it's biased. I think that for most geospatial stuff postgis is the tool. You benefits from all the awesome postgresql ecosystem + geospatial. Since postgresql is a "industry standard" (this is not my word but Paul Ramsey' ) you also have a lot of ressource on the web and a lot answer on stack overflow.

With Mongodb you'll be on you're own and you'll need to implement everything on the app, in this case, turf.js can help).

With Postgis, you have everything you need (did I say I was biased ? :-)) for exemple with this query you can select data directly in geojson:

SELECT st_asgeojson(the_geom) FROM my_geom_table;
Collapse
 
turnerj profile image
James Turner

While I don't know if it is remotely the same level of functionality as Postgis, MongoDB does have built-in geospatial support.

Collapse
 
ice_lenor profile image
Elena

Thank you for your question, Jordon!

Unfortunately, I haven't used mongodb or any other nosql databases for geo stuff, except for Elasticsearch (Lucene), which I mention on the next slide.

Personally, I would opt for a relational database, like PostGIS or MsSQL, because I know they're working well with geodata. Geo is a rather niche topic, and it definitely will be lower priority for database developers, plus it can be difficult to implement properly. This is why many databases don't have geo support. By using a database with not very well developed geo support, I feel like I would put my product at risk. So I'd have to weigh it very carefully.

Collapse
 
desgrangeremi profile image
Rémi Desgrange • Edited

This is a really great post and slides. Thank you !

May I say that you should maybe add redis along with elasticsearch since it has (limited) spatial support. Also, I think that "us", gis people, need to spread the word about geopackage and shapefile death.

Collapse
 
ice_lenor profile image
Elena

Unfortunately I haven't used Redis myself (yet). But thanks a lot for the tip!

Collapse
 
rhymes profile image
rhymes

Great presentation Elena!

A couple of questions:

  • how much more "computationally intensive" is Vincenty? I've only known and used the haversine to calculate distance between coordinates stored in databases.

  • have your heard of the AuthaGraph projection? What do you think?

Thank you!

Collapse
 
ianturton profile image
Ian Turton

Very good slides.

Collapse
 
renatosuero profile image
Renato Suero

Thanks Elena,
I always wanted to know more about geo, your presentation is great

Collapse
 
odoenet profile image
Rene Rubalcava

Great detailed presentation!

Collapse
 
diegocrzt profile image
Diego Ramírez

Super Cool! thanks!

Collapse
 
c0derr0r profile image
Irkan Hadi

Very informative, as someone with dev background and who is working with GIS team, this would have been a great first-day presentation.