Microsoft Bing Maps

Best Self Hosted Alternatives to Microsoft Bing Maps

A curated collection of the 4 best self hosted alternatives to Microsoft Bing Maps.

Cloud mapping platform providing maps, geocoding, routing, traffic and imagery via APIs and SDKs for web and mobile applications. Includes map tiles, place search, routing, traffic feeds, geofencing and spatial data services.

Alternatives List

#1
Open Source Routing Machine (OSRM)

Open Source Routing Machine (OSRM)

OSRM is a high-performance routing engine for OpenStreetMap data, providing an HTTP API for routing, map matching, distance tables, and more.

Open Source Routing Machine (OSRM) screenshot

Open Source Routing Machine (OSRM) is a high-performance routing engine written in C++ that computes routes on OpenStreetMap data. It provides a production-oriented HTTP API and can also be used as a C++ library or via Node.js bindings.

Key Features

  • Fast route computation optimized for large road networks
  • HTTP API services for routing, nearest-point lookup, and distance/duration matrices
  • Map matching for snapping noisy GPS traces to the road network
  • Trip optimization endpoint using a traveling-salesman-style heuristic
  • Generates vector tiles containing internal routing metadata
  • Customizable routing profiles (e.g., car, bicycle, walking)

Use Cases

  • Powering turn-by-turn navigation and routing in web or mobile applications
  • Batch travel-time or distance matrix generation for logistics and dispatch
  • Cleaning and matching GPS tracks to roads for analytics or data processing

Limitations and Considerations

  • Requires an offline preprocessing pipeline (e.g., MLD or CH) on OSM extracts before serving requests
  • Custom behavior depends on maintaining Lua-based profiles and understanding OSM tagging

OSRM is a strong choice when you need low-latency routing on OpenStreetMap data with a well-established API surface. It is especially suited to backend routing services and GIS workflows that require fast, repeatable computations at scale.

7.4kstars
3.8kforks
#2
GraphHopper

GraphHopper

GraphHopper is an open source routing engine for OpenStreetMap, providing fast route calculation, turn-by-turn instructions, isochrones, and map matching via Java or HTTP APIs.

GraphHopper is a fast, memory-efficient routing engine for road networks, primarily using OpenStreetMap data. It can be embedded as a Java library or run as a standalone server that exposes HTTP endpoints for routing and related geospatial calculations.

Key Features

  • Multi-profile routing (e.g., car, bike, walking) with support for custom routing profiles
  • Turn-by-turn instructions plus distance/time calculation and road attribute handling
  • Isochrone generation for travel-time or travel-distance reachability analysis
  • Map matching (“snap to road”) for aligning noisy GPS tracks to the road network
  • Optional public transit support using GTFS data
  • Designed for high performance on large datasets through preprocessing and efficient graph storage

Use Cases

  • Self-hosted routing backend for web or mobile navigation applications
  • Logistics, fleet, and field-service systems that need fast route and ETA computation
  • Geospatial analytics such as service-area and accessibility analysis using isochrones

Limitations and Considerations

  • Importing and preprocessing large OpenStreetMap extracts can require significant RAM, CPU, and disk
  • Offline mobile usage is not officially supported in newer versions (though it may still work)

GraphHopper is well-suited for teams that want control over routing behavior and data sources while keeping performance high. It fits both embedded Java use and service-oriented deployments that need reliable, customizable routing at scale.

6.2kstars
1.9kforks
#3
Nominatim

Nominatim

Nominatim provides geocoding (name/address → coordinates) and reverse geocoding (coordinates → address) powered by OpenStreetMap, with import tooling and a public API.

Nominatim screenshot

Nominatim is an open-source geocoding engine that searches OpenStreetMap (OSM) data by name and address and generates addresses from OSM objects (reverse geocoding). It provides both a REST API and a Python library surface for embedding search functionality and supports structured queries and configurable result ranking.

Key Features

  • Forward geocoding (free-form and structured queries) and reverse geocoding for latitude/longitude pairs
  • REST API and Python library for programmatic use, plus a web UI for manual lookups
  • Import and update tooling for OSM data (osm2pgsql-based workflows and minutely/osc updates)
  • Configurable tokenizers, ranking, and importance scoring (supports external data like TIGER/Wikidata for ranking)
  • Scalable installs: from single-city setups to full-planet imports with tuned PostgreSQL/PostGIS databases
  • Customization hooks for import styles, address handling, and API result formatting

Use Cases

  • Powering a site or app search box to resolve user-entered addresses and place names
  • Reverse-geocoding GPS traces to human-readable addresses for mapping or logging
  • Bulk-geocoding address lists as part of data integrations or ETL pipelines

Limitations and Considerations

  • Full-planet imports are resource-intensive (large RAM/disk requirements and long import times); adequate hardware and PostgreSQL tuning are required
  • Relies on PostgreSQL/PostGIS and external import tools; version compatibility (PostgreSQL/PostGIS/osm2pgsql) should be verified before install
  • Public instance enforces usage policy and rate limits; high-volume use requires a self-hosted instance or commercial provider

Nominatim is a mature, OSM-native geocoder used by the OpenStreetMap project itself. It is suitable for projects that need control over geocoding data, custom ranking, or on-premises operation, provided the deployer accounts for its operational requirements.

4kstars
794forks
#4
OpenTripPlanner

OpenTripPlanner

OpenTripPlanner (OTP) is an open source multimodal routing engine that builds networks from GTFS and OpenStreetMap to produce itineraries and real-time transit trip plans via APIs.

OpenTripPlanner screenshot

OpenTripPlanner (OTP) is an open source multimodal trip planning and transportation network analysis service. It builds a routable network from open transit and map data and produces itineraries that combine public transport with walking, biking, and car segments.

Key Features

  • Multimodal routing focused on scheduled public transportation, with walking and cycling integration
  • Imports open-standard data sources, primarily GTFS (transit schedules) and OpenStreetMap (street network)
  • Real-time updates and alerts applied to routing results for disruption-aware itineraries
  • API-first architecture with a GraphQL interface for integration with web and mobile clients
  • Server-side Java application runnable on any JVM-supported platform; typically deployed as a service

Use Cases

  • Powering regional or national journey planners for public transport agencies
  • Trip planning for consumer-facing mobility apps combining transit and active travel
  • Transportation network analysis and scenario evaluation based on GTFS and OpenStreetMap data

OTP is widely used in production to provide passenger information and routing services backed by open data. It is best suited for organizations that need a robust, extensible routing engine to integrate into custom trip-planning applications and workflows.

2.5kstars
1.1kforks

Why choose an open source alternative?

  • Data ownership: Keep your data on your own servers
  • No vendor lock-in: Freedom to switch or modify at any time
  • Cost savings: Reduce or eliminate subscription fees
  • Transparency: Audit the code and know exactly what's running