Skip to main content

Choosing the Best Geographic Information System (GIS) for Trek

· 5 min read
Matthew Kang
Developer
note

This blogpost is a modified version of an internal Trek document. You can view the internal document here.

Integrating Google Maps was our original plan at Trek until we realized that the cost of integrating Google Maps would be outside our budget, as well as the budget of anyone deploying Trek.

Although Google provides its customers with a $200 credit for the use of their APIs, including the Google Maps Platform APIs, once customers exceed the $200 limit, they are faced with potentially thousands of dollars in billing statements.

The truth is, Google holds a monopoly over high-quality geographical information, especially their Places API, which provides the best up-to-date Points of Interest (POI) data. Using Google would be the best move if we could afford to lose the money. Unfortunately, we are not one of those companies that can lose money for a decade before making a profit.

Furthermore, Google does not allow its customers to cache or store any of its data (with the exception of place IDs), which means that every time we want to display a place name for the user, we have to call Google's API—something we cannot afford.

This blog post goes through the GIS alternatives to Google Maps that we have explored in the process of designing and building Trek.

What is a GIS?

A Geographic Information System (GIS) is a powerful tool that allows users to visualize, analyze, and interpret spatial and geographic data. In the context of Trek, a GIS is essential for enhancing the user experience by providing detailed and interactive maps, route planning, and information on places of interest. It integrates various data sources to create a comprehensive view of the trip and the world.

A Geographic Information System (GIS) for Trek should offer the following features or services:

Maps - Various visual dynamic maps imagery. Displays maps for ‘Map View’ and location markers, ‘Pins’ within the map, and geographic information (longitude and latitude) to provide context when searching for places.

Routes - Provides routing information in ‘driving’, ‘transiting’, ‘cycling’, or ‘walking’. Find best routes from place to place in different transportation methods.

Places of Interest (POI) - Provides information on places and ability to search for places. Gathers and provides place information including place ID (identifiers), name, location, description, address, photo, and reviews.

What makes a GIS Good (for Trek)?

GIS can be used in many different applications and use cases. The goal of GIS in Trek is to help meet its functional and non-functional requirements, including scalability and future-oriented design. The goal is to explore different GIS options Trek can integrate, while considering the following:

Compliance — “Are we complying with GIS’ Terms of Service? Are we stealing data and potentially committing academic misconduct?”

UI/UX — “Does the UI Look Good?”

Usability — “Does it provide good usability with sufficient information of places and provide quality search and personalization?”

Sustainability — “Will the system be financially sustainable with the integration costs? Can costs be lowered by caching or storing data?”

Maintainability — “Is the information easily manageable and does not require frequent extensive maintenance on Trek’s end?”

Dependency — “Can we manage our own information without relying on the GIS? Are we able to migrate from this GIS to another system easily”

Comparison of GIS API Integrations

Some GIS services do not provide all three packages (Maps, Routing, POI). Some GIS services do not allow caching or storage of data. Some GIS services are outside our budget.

Summary

APIMaps & RoutingPlaces of InterestsCaching & StoringPricingDescription
Google Maps PlatformBestPhotos, ReviewsRestrictiveHighBest up-to-date POI information
FourSquareN/A (POI only)Photos, ReviewsRestrictiveMediumProvides decent POI and places ‘personalization’; best for tourist POI
MapboxGoodIntegrates FourSquareRestrictive (non-enterprise)Medium/LowAlternative to Google Maps. Good UI. OSM-based. Second most popular
LocationIQNo transit routingOnly GeoCodingAllowedLowFully OSM Data packaged as API. Comes with only Geocoding data (no POI)
MapTilerGoodBasicClient-sideLow
HEREGoodBasic30 days or Response HeaderLowNo permanent storage of location IDs
MapQuestNo transit routingBasicRestrictive (non-paid)Low

POI Data: Image, Description, and Reviews Data

Apart from Google Maps Platform and ForeSquare, OSM-based GIS APIs only provide basic POI data. Some GIS APIs do not provide contact information or opening hours. We can integrate the following technologies to provide end-users with these data:

  • Image – For landmarks, well-known businesses (e.g. McDonalds), and attractions, use Wikipedia API to fetch images that are shareable for commercial purposes.
  • Description – For landmarks, well-known businesses (e.g. McDonalds), and attractions, use AI generated descriptions.
  • Contact, Hours, and Reviews – Use TripAdvisor or Yelp API to link review data, open hours, and contact information. Only load review data if the user clicks on it to limit unnecessary API calls. Yelp allows caching up to 24 hours but has no free tier.
  • In-House User-Contributed POI Data System – Support an in-house user-contributed POI Data system, where users can upload images, description, and reviews to a place.