Actualmente ante la monetización de los servicios de Google, en particular de los relacionados con sus servicios para desarrolladores, cualquier usuario de mapas virtuales debería conocer OpenStreetMap, el mapa del mundo de datos libres y abiertos. Libres porque son gratuitos y abiertos porque cualquiera puede modificarlos y acceder a su descarga, por ejemplo, con Overpass API.

Para generar y ver la estructura de una petición de datos a través de Overpass API y descargar únicamente aquellos datos que sean de nuestro interés debemos seguir este link: https://overpass-turbo.eu/
Antes de entrar en detalle con Overpass API debemos considerar que OSM describe los datos espaciales como puntos (nodes), líneas (ways) y relaciones (relations), siguiendo un extenso sistema de etiquetado (tags). Una carretera principal, por ejemplo, se caracteriza por tener una etiqueta highway con un valor primary. El sistema de etiquetado de OSM permite definir cualquier elemento cartografiable en cualquier lugar del mundo. Se trata, por lo tanto, de un sistema de etiquetado tremendamente exhaustivo. Para más detalles podéis consultar la página del proyecto en https://wiki.openstreetmap.org/wiki/Overpass_turbo/Wizard
Finalmente, para un adecuado y elegante uso de los mapas en tu aplicación, acá están las librerias de Leaflet y React Leaflet para utilizar con el framework de tu elección. Leaflet es una biblioteca de JavaScript de código abierto que se utiliza para crear aplicaciones de mapas web.