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 Geo. In this guide, I will:
- Tell you that Earth is not flat (SHOCK!) and why that's very inconvenient;
- Define common terms (What's projection? There's also a coordinate system?.. OGC, OSM, WKT, WGS, ESPG?);
- Teach you All Things You Need To Know™ to become a geo-developer and build things for Geo or using Geo;
- Explain popular caveats - Dos and Don'ts - when working with Geo;
- Give you an overview of geo-technologies, industry standards, databases, libraries;
- Give you references for further reading.
I ran this workshop for my colleagues who are interested in Geo, and it was a great success! I hope you enjoy it as well.
Good luck with your journey around the globe!
Top comments (12)
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.
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:
While I don't know if it is remotely the same level of functionality as Postgis, MongoDB does have built-in geospatial support.
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.
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.
Unfortunately I haven't used Redis myself (yet). But thanks a lot for the tip!
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!
Very good slides.
Thanks Elena,
I always wanted to know more about geo, your presentation is great
Great detailed presentation!
Super Cool! thanks!
Very informative, as someone with dev background and who is working with GIS team, this would have been a great first-day presentation.