Let's build a Google Maps clone with React, Leaflet, and OneSDK

This page summarizes the projects mentioned and recommended in the original post on dev.to

Our great sponsors
  • SurveyJS - Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • create-react-app

    Set up a modern web app by running one command.

  • Let’s start by creating an empty React project (using create-react-app):

  • OneSDK

    1️⃣ One Node.js SDK for all the APIs you want to integrate with

  • We will use React and React Leaflet on the frontend, and Node.js, Express.js, and Superface OneSDK on the backend.

  • SurveyJS

    Open-Source JSON Form Builder to Create Dynamic Forms Right in Your App. With SurveyJS form UI libraries, you can build and style forms in a fully-integrated drag & drop form builder, render them in your JS app, and store form submission data in any backend, inc. PHP, ASP.NET Core, and Node.js.

    SurveyJS logo
  • google-maps-clone

    Let's build a basic Google Maps clone! Complementary code to the tutorial.

  • In this tutorial, we have learned how to create a Google Maps-like application using Leaflet and React. We've utilized Geolocation API to identify location coordinates and place markers, as well as creating a route between two different locations. You can find the final project on GitHub.

  • leaflet-defaulticon-compatibility

    Retrieve all Leaflet Default Icon options from CSS, in particular all icon images URL's, to improve compatibility with bundlers and frameworks that modify URL's in CSS.

  • First install leaflet, react-leaflet and leaflet-defaulticon-compatibility. The last package fixes compatibility with Webpack bundler (used by create-react-app) to correctly load images from Leaflet's package.

  • leaflet-routing-machine

    Control for routing in Leaflet

  • There are many plugins that we can use. I will go with Leaflet Routing Machine.

  • Openstreetmap

    The Rails application that powers OpenStreetMap

  • To add a map component, you have many options, like Google Maps or Mapbox, but these are not free. We will use Leaflet, an open-source JavaScript library. With Leaflet, you can easily create interactive maps and add markers, pop-ups, and other types of data visualizations. Leaflet support various providers for map assets, but we will stick with the default, OpenStreetMap.

  • react-leaflet

    React components for Leaflet maps

  • Leaflet has many official and third party plugins and wrappers. Since we’re using React, we can use React Leaflet which provides components for rendering Leaflet maps in React.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • React

    The library for web and native user interfaces.

  • React with Create React App

  • Nominatim

    Open Source search based on OpenStreetMap data

  • Then implement a use case. We are going to use Geocoding use case with Nominatim provider. But you can, of course, use a different provider. Copy the example code into your server.js file and make a few changes, so we can send the information we will receive from the user:

  • Leaflet

    🍃 JavaScript library for mobile-friendly interactive maps 🇺🇦

  • To add a map component, you have many options, like Google Maps or Mapbox, but these are not free. We will use Leaflet, an open-source JavaScript library. With Leaflet, you can easily create interactive maps and add markers, pop-ups, and other types of data visualizations. Leaflet support various providers for map assets, but we will stick with the default, OpenStreetMap.

  • Font-Awesome

    The iconic SVG, font, and CSS toolkit

  • Additionally, I am going to use Font Awesome to add icons to our project. This will make it visually appealing and add to its overall design:

  • Express

    Fast, unopinionated, minimalist web framework for node.

  • Express for backend

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts