Geospatial
Geohash, quadtree, H3 and location search.
All topics · 3 lessons · 10 resources
Learn Geospatial on System Design Atlas
- 01Design a nearby-places service (Yelp)Find restaurants within a few kilometres: geohashes, quadtrees and how to query a map efficiently.Real-World Systems · 10 min read · start here
- 02Nearby search with Redis GEOHow Redis stores locations in a sorted set using geohash scores, how GEOSEARCH finds nearby members, how to expire stale entries, and when to move to a spatial database.Search, Analytics and Geo · 10 min read
- 03Geofencing: is this point inside that area?How to test a location against a polygon with ray casting, why a bounding box and a spatial index come first, and how to turn position pings into reliable enter and exit events.Search, Analytics and Geo · 11 min read
Related topics
These share a lesson with Geospatial.
Curated Geospatial resources
Blogs
- Grab EngineeringSuper-app scale: ride matching, payments and platform engineering in Southeast Asia.Grab
- Location Intelligence Resources | Blog & GuidesThe Foursquare blog: an index of its posts, to pick the ones on the topic you are studying.Foursquare
- MapTiler Engineering BlogDigital maps, satellite imagery, geodata processing, APIs & SDKs for developers, and other news from the MapTiler platform.MapTiler
Case Studies
- H3: Uber's Hexagonal Hierarchical Spatial IndexWhy Uber divides the world into hexagonal cells for pricing, matching and analysis.Uber
- Optimizing CAL Report Hadoop MapReduce Jobs at eBayeBay's Central Application Logging system (CAL) collects log data from all kinds of applications. The summary reports for log data are created using Hadoop MapReduce jobs. This article discusses our experiences optimizing these jobs.eBay
Documentation
- Point in polygon (Wikipedia)Ray casting and winding number methods and their edge cases.Wikipedia
- PostGIS documentationSpatial types, R-tree indexes and geographic queries inside PostgreSQL.PostGIS
- Redis GEOSEARCH commandSearching members by radius or box around a point, with sorting and limits.Redis
- Redis geospatial data typeStoring and querying locations in Redis sorted sets.Redis
- S2 GeometryGoogle's library for cells, covers and spatial indexing on the sphere.S2 Geometry