Relaxing app background

Mapbox API Integration

3m 38s

TypeScript
React
NextJS
Chakra-UI
API
Interface
Full-Stack

Building a Dynamic Route Planner with MapBox API

Introduction

In today's fast-paced world, efficient route planning is more important than ever, especially for businesses in logistics and delivery services. We undertook a fascinating project to develop a Dynamic Route Planner using the MapBox Optimization API v2. This project aims to optimize delivery routes in real-time, considering factors like traffic, time windows, and vehicle capacity.

Project Overview

Our Dynamic Route Planner is a web application built using React and Next.js. It integrates the MapBox API to create optimized routes for a fleet of delivery vehicles. We focused on providing real-time updates and adjustments to the routes based on changing conditions and constraints.

Key Features

  • Real-Time Route Optimization: Utilizing MapBox's powerful Optimization API, our application recalculates routes as new orders come in or conditions change.
  • Interactive Map Interface: A user-friendly interface displaying routes and vehicle locations in real-time.
  • Customizable Constraints: Users can set various constraints like vehicle capacity, delivery time windows, and preferred roads.

How It Works

Here's a simple illustration of how our application works:

  1. Data Input: The user inputs delivery locations, vehicle details, and other constraints.
  2. Route Calculation: Our application sends this data to the MapBox API, which returns an optimized route.
  3. Route Display: The optimized route is displayed on an interactive map.

Interactive Map Example

Let's see a basic example of how the MapBox API can be used to display a map with a marker.

const MapComponent = () => {
    const [viewport, setViewport] = useState({
        latitude: 37.78,
        longitude: -122.41,
        zoom: 8
    });

    return (
        <Map
            initialViewState={viewport}
            style={{width: 600, height: 400}}
            mapStyle="mapbox://styles/mapbox/streets-v11"
            mapboxAccessToken={process.env.NEXT_PUBLIC_MAPBOX_TOKEN}
        >
            <Marker latitude={37.78} longitude={-122.41} />
        </Map>
    );
};