People often get surprised to learn that we build our own parking maps at SpotAngels. How can a small startup build a map that Google Maps have not already built? Here’s a short story of how we got to this point, and what enabled us to scale our parking maps to hundreds of cities.
We started building SpotAngels the day we got our car towed in San Francisco. We had to pay $579 to get it back, which was the price of the car.
The first version of SpotAngels was a simple app that would save the car location when the phone disconnects from the car bluetooth speaker. It would then send us reminders when we needed to move the car.
To make it work magically, we needed to get the street parking rules information for each street in the city. We tried to use the city open data but it was not accurate. So we thought about crowdsourcing parking signs, similar to what Waze and Open Street Map (OSM) did for roads and road names.
To jumpstart the process we took the first parking sign pictures ourselves and started building the street parking map of San Francisco. We made the app public on the App Store, shared it with a few friends and to our surprise, we started receiving parking sign pictures. SpotAngels was born.
At its core, a map is a list of objects with coordinates. As an example, you can think of Yelp’s restaurant map as a list of restaurants with their location.
To build a map, you generally need:
The base map generally contains roads and points of interests. We wanted to fully control our base map, so we decided to use Open Street Map (OSM). It is an open source and fully editable base map. Mapbox made it easy to integrate and customize the OSM base map thanks to their developer-friendly apis and styling tools.
We started using an editing tool called QGIS. It was open source and fairly easy to use. Nevertheless we quickly realized that we needed to customize it to streamline the mapping process, so we built the SpotAngels Map Editor. The automation we put in place helped us scale from 10,000 spots added a month to 63,000 spots added a month for the same amount of mapping hours.
The crowdsourced parking sign pictures were great to extract parking rules but were not sufficient to localize the parking spots. We needed street level and satellite imagery. We used the satellite imagery offered by Mapbox and open street level imagery offered by various providers like Mapillary.
The last part was to create a community of map makers to build the maps. We had the choice between 2 systems:
In the case of SpotAngels, the data we were inputting had to be accurate. Any error could lead to a $579 fine, we knew it all too well 😅. So we started with a closed mapping system building the maps ourselves. We spent 6 months building parking maps in the main US cities to jumpstart the process and then hired map makers to help us out. The closed model worked but was rigid, not easy to scale and did not allow us to involve to the broader SpotAngels community.
This made us design a new mapping system that is open to all and based on monetary incentives to ensure data quality.
We needed an open mapping system because SpotAngels is a community at its core and everybody willing to help needs to be able to contribute. We believe that local communities are the ones who can fix parking at the city level and that our mission is to provide them with the tools to do so.
Contributors are the ones bringing value to the community. We wanted to design a system where they got rewarded for their efforts. For this reason we created a subscription in the SpotAngels app for premium features and allocated 50% of this money to a community pool that rewards contributors. More about this here https://www.spotangels.com/blog/annoucing-spotangels-plus/
We needed a review process to guarantee accurate maps.
To do so, we designed a system to grant rewards for valid contributions and penalties for wrong contributions. The system also computes a reputation score for each participant and grants them special roles.
Here is a simplified version of how it works:
When designing a mapping system, one of the big things to balance is speed and cost versus perfection. One needs to understand what is important to the use case tackled by the maps. For example, building a parking map does not require centimeter level accuracy but it does require extremely precise parking rules.
A more robust approach to build the map would have been to have all the contributions reviewed and use a consensus-based approach to review contributions. For example, have several reviewers review the same contribution and pick the decision with the most votes. Nevertheless, the cost of such a review process would have been too high for our use case.
For our use case, we chose to pick samples and use the reputation system described above to review them. This, along checks and balances like the appeal process, proved to be a great solution.
We are excited to share the mapping system that enabled us to rapidly scale SpotAngels to hundreds of cities. This is an important step for us in finally solving the problem that we set out to solve the day we got that $579 fine – to help people all around the world find parking, avoid fines and minimise pollution when looking for parking.
We hope it will help other teams build maps faster and make the world a better place, one mapping contribution at a time 🙂
Thanks to Jonah Jones, Aboud Jardaneh, Mehdi Sqalli, Eric Sauvegrain and Alexis Svinartchouk for providing early feedback on this post
 “The Book of OSM”, Steve Coast https://www.amazon.com/Book-OSM-Steve-Coast-ebook/dp/B017J93QPK
”Apple Has ~7,000 Fewer People Working On Maps Than Google”, Nicholas Carlson, Business Insider, 2012. https://www.businessinsider.com/apple-has-7000-fewer-people-working-on-maps-than-google-2012-9