# Building hyperlocal GrabMaps

[Grab](https://yomu.fyi/company/grab) · Adriana Lazar · Aug 30, 2023

**Type:** Problem & solution

## Summary

Southeast Asia presents unique mapping challenges, including fast-changing road restrictions, new roads appearing rapidly, and severe traffic congestion. To address these conditions, GrabMaps integrates hyperlocal data derived from local team knowledge, rides and deliveries GPS pings, and KartaView imagery with OpenStreetMap data. The pipeline downloads OpenStreetMap .pbf files for Asia and converts them into Parquet format using a Parquetizer. GrabMaps processes spatial data using Apache Spark and bi-directional graphs divided by geohash to detect complex features such as intersection links based on road parallelism, naming, direction, and shape geometry. Tagging these intersection links enables downstream navigation services like GrabNav to calculate shorter routing alternatives and provide more accurate pricing.

## Context

Operating in Southeast Asia involves navigating fast-changing road restrictions, rapidly appearing new roads, and high traffic congestion that standard mapping data does not fully address.

## Approach / What changed

GrabMaps converts OpenStreetMap .pbf files into Parquet tabular format and uses Apache Spark with geohash-partitioned bi-directional graphs to automate the identification and tagging of hyperlocal features like intersection links.

## Takeaways

- OpenStreetMap binary .pbf data is transformed into Parquet tables using a Parquetizer to enable big data computing across regional road networks.
- GrabMaps detects intersection links by evaluating parallel one-way road segments with identical names, specific shape geometries, and angular intervals on geohash-based bi-directional graphs using Spark.
- Tagging identified road segments as intersection\_links enables GrabNav to provide shorter routing suggestions and more accurate trip pricing.

**Tags:** [Architecture](https://yomu.fyi/topic/architecture), [Data Pipelines](https://yomu.fyi/topic/data-pipelines), [Scalability](https://yomu.fyi/topic/scalability)

[Read original post](https://engineering.grab.com/building-hyperlocal-grabmaps)
