Skip to main content
Google Maps DrawingManager ও বন্ধ হওয়া API: 2026 মাইগ্রেশন গাইড
Guides

Google Maps DrawingManager ও বন্ধ হওয়া API: 2026 মাইগ্রেশন গাইড

Drawing Library ও Heatmap Layer Maps JavaScript API থেকে সরিয়ে ফেলা হয়েছে। DirectionsService ও DistanceMatrixService Legacy অবস্থায় আছে এবং deprecated ঘোষিত। বর্তমান অবস্থা, তারিখ ও বিকল্প।

Brent van der Heidenসর্বশেষ আপডেট 12 min read
#Google Maps API#API মাইগ্রেশন#DrawingManager#DirectionsService#রাউটিং#ডেভেলপার গাইড

গত আঠারো মাসে Google, Maps JavaScript API-র বহুল ব্যবহৃত চারটি অংশকে deprecated ঘোষণা করেছে। এর দুটি, Heatmap Layer ও Drawing Library, মে 2026 থেকে আর পাওয়া যায় না। বাকি দুটি, DirectionsService ও DistanceMatrixService, Legacy ও deprecated, তবে এখনো কাজ করে এবং বন্ধের কোনো তারিখ নেই।

এই গাইডে প্রতিটির বর্তমান অবস্থা Google-এর নিজের পেজের link-সহ দেওয়া হয়েছে এবং কীভাবে বদলাবেন তা দেখানো হয়েছে। যেখানে বিকল্প MapAtlas থেকে আসে, সেখানে code আমাদের আসল endpoint ও response format ব্যবহার করে।

কী deprecated আর কী এখনো চলে

সেবাঅবস্থাগুরুত্বপূর্ণ তারিখGoogle-এর বিকল্প
Heatmap Layerসরানো হয়েছে27 মে 2025-এ deprecated, 3.65.1c সংস্করণে (20 মে 2026) বন্ধdeck.gl-এর মতো third-party library
Drawing Library (DrawingManager)সরানো হয়েছেআগস্ট 2025-এ deprecated, মে 2026 থেকে অনুপলব্ধ (3.65.3b সংস্করণে নিশ্চিত, 4 জুন 2026)Terra Draw-এর মতো third-party library
DirectionsServiceLegacy, deprecated1 মার্চ 2025 থেকে Legacy, 25 ফেব্রুয়ারি 2026 থেকে deprecated (3.64.2b সংস্করণ), বন্ধের তারিখ নেইRoutes library-র Route class
DistanceMatrixServiceLegacy, deprecated1 মার্চ 2025 থেকে Legacy, 25 ফেব্রুয়ারি 2026 থেকে deprecated (3.64.2b সংস্করণ), বন্ধের তারিখ নেইRoutes library-র RouteMatrix class

উৎস: Google Maps Platform deprecations পেজ, Maps JavaScript API release notes এবং Legacy products পেজ।

Legacy-র একটি নির্দিষ্ট অর্থ আছে। Google-এর মতে Legacy সেবায় নতুন feature যোগ হয় না এবং নতুন Cloud project-এ এটি চালু করা যায় না, তবে বিদ্যমান project-এ support চলতে থাকে। Google এমন সেবা বন্ধ করার অন্তত 12 মাস আগে জানানোর প্রতিশ্রুতি দেয়, আর DirectionsService ও DistanceMatrixService-কে deprecated ঘোষণা করা release note বলে এগুলো বন্ধের পরিকল্পনা নেই এবং গুরুতর regression ঠিক করা হবে। 1 মার্চ 2025-এর একই Legacy পরিবর্তনে Directions API ও Distance Matrix API web service, Places API এবং JavaScript Places Service-ও ছিল।

কী ভেঙে যায়

এই code এখন Maps JavaScript API-র বর্তমান সংস্করণে fail করে:

// Removed in 2026: these constructors no longer work
const heatmap = new google.maps.visualization.HeatmapLayer({ data: points });
const drawingManager = new google.maps.drawing.DrawingManager();

এই code বিদ্যমান project-এ এখনো চলে, কিন্তু deprecated এবং নতুন Cloud project-এ কাজ করবে না:

// Legacy and deprecated, no shutdown date yet
const directionsService = new google.maps.DirectionsService();
const distanceMatrixService = new google.maps.DistanceMatrixService();

আপনার সাইটের কোনো heatmap বা drawing tool যদি মে 2026-এ কাজ করা বন্ধ করে থাকে, কারণ এটাই। আগে সেটি ঠিক করুন। তারপর Google কোনো তারিখ ঘোষণা করার আগেই routing মাইগ্রেশনের পরিকল্পনা করুন।

Google-এর বিকল্প

Routing-এর জন্য Google দুটি পথ দেয়, এবং কোনোটিই logic server-এ সরাতে বাধ্য করে না:

  • Browser-এ: Maps JavaScript API-র Routes library। Route class, DirectionsService-এর জায়গা নেয় এবং RouteMatrix class, DistanceMatrixService-এর।
  • Server-এ: Routes API, Compute Routes ও Compute Route Matrix method-সহ একটি REST সেবা।

Visualisation-এর জন্য Google আর নিজস্ব কোনো বিকল্প দেয় না। এর heatmap পেজ deck.gl-এর দিকে পাঠায়, আর deprecations পেজ drawing-এর জন্য Terra Draw-র নাম দেয়।

মাইগ্রেশন checklist

1. Codebase পরীক্ষা করুন

প্রভাবিত class খুঁজুন:

# Find all files using deprecated Google Maps services
grep -rn "DirectionsService\|DistanceMatrixService\|DirectionsRenderer\|HeatmapLayer\|DrawingManager" \
  --include="*.js" --include="*.ts" --include="*.tsx" --include="*.jsx" src/

যেসব file ও component এগুলো ব্যবহার করে তা লিখে রাখুন, এবং প্রতিটি call browser-এ চলে নাকি server-এ।

2. প্রতিটি সেবার ব্যবহার লিখে রাখুন

প্রতিটি ব্যবহারের জন্য লিখুন:

  • যাতায়াত মাধ্যম (গাড়ি, হাঁটা, সাইকেল, গণপরিবহন)
  • মাঝের যাত্রাবিরতি (সরাসরি A থেকে B, নাকি কয়েকটি stop-সহ route)
  • যে response field পড়েন (দূরত্ব, সময়, polyline, ধাপ, ভাড়া)
  • পরিমাণ (দৈনিক ও মাসিক request, খরচের হিসাবের জন্য)
  • Latency-র প্রয়োজন (ব্যবহারকারীর জন্য real-time, নাকি batch)

3. লক্ষ্য বেছে নিন

বিকল্প A: Google-এর সঙ্গেই থাকুন। Route ও RouteMatrix class বা Routes API-তে যান। যে field ব্যবহার করেন সেগুলো migration guide-এর সঙ্গে মিলিয়ে নিন, কারণ response format Legacy class থেকে আলাদা।

বিকল্প B: provider বদলান। Integration তো আবার লিখতেই হবে, তাই ধাপ 2-এর প্রয়োজনের ভিত্তিতে provider তুলনা করুন।

4. পুরোনো ও নতুন পাশাপাশি চালান

সরাসরি জায়গায় মাইগ্রেট করবেন না। কিছুদিন দুটি implementation পাশাপাশি চালান এবং switch করার আগে নিজের আসল route-এ দূরত্ব, সময় ও latency তুলনা করুন।

5. Error handling আপডেট করুন

Legacy class callback-এর status value দিয়ে error জানাত। REST বিকল্প HTTP status code ও error body ফেরত দেয়, তাই error handling-ও বদলাতে হবে।

প্রতিটি সেবা MapAtlas দিয়ে বদলানো

MapAtlas-এর routing endpoint হলো gateway.mapmetrics-atlas.net-এ চলা REST সেবা, যার বিবরণ MapAtlas API docs-এ আছে। এগুলো token-কে query parameter হিসেবে নেয়, তাই নিজের backend থেকে call করুন।

DirectionsService থেকে MapAtlas Directions API

আগে (Google, Legacy):

const directionsService = new google.maps.DirectionsService();

directionsService.route(
  {
    origin: { lat: 52.52, lng: 13.405 },
    destination: { lat: 48.8566, lng: 2.3522 },
    travelMode: google.maps.TravelMode.DRIVING,
    waypoints: [
      { location: { lat: 50.9375, lng: 6.9603 }, stopover: true }
    ],
  },
  (result, status) => {
    if (status === "OK") {
      const route = result.routes[0];
      console.log("Distance:", route.legs[0].distance.text);
      console.log("Duration:", route.legs[0].duration.text);
    }
  }
);

পরে (MapAtlas Directions API):

const response = await fetch(
  `https://gateway.mapmetrics-atlas.net/directions/?token=${process.env.MAPATLAS_API_KEY}`,
  {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      // Ordered stops: origin, waypoints, destination
      locations: [
        { lat: 52.52, lon: 13.405 },
        { lat: 50.9375, lon: 6.9603 },
        { lat: 48.8566, lon: 2.3522 },
      ],
      costing: "auto", // auto, bicycle, pedestrian, bus, truck, taxi, motor_scooter
      units: "kilometers",
    }),
  }
);

const { trip } = await response.json();
console.log("Distance (km):", trip.summary.length);
console.log("Duration (s):", trip.summary.time);
// Each leg carries its geometry as an encoded polyline (precision 6)
const shapes = trip.legs.map((leg) => leg.shape);

মূল পার্থক্য:

  • JavaScript class-এর বদলে REST call, যা আপনার backend থেকে হয়।
  • মাঝের যাত্রাবিরতি হলো locations-এর মাঝের entry।
  • Response-এর গঠন আলাদা। মোট হিসাব trip.summary-তে থাকে, আর প্রতিটি অংশের shape-এ একটি encoded polyline থাকে। Route আঁকার আগে সেটি decode করুন (নিচের backend উদাহরণ দেখুন)।

DistanceMatrixService থেকে MapAtlas Matrix API

MapAtlas Matrix API একটি call-এ প্রতিটি origin ও destination জোড়ার যাত্রার সময় ও দূরত্ব ফেরত দেয়। আমাদের endpoint প্রতিটি জোড়াকে 400 km route দূরত্বে সীমিত রাখে, তাই উদাহরণে বার্লিনের আশপাশের জায়গা ব্যবহার করা হয়েছে।

আগে (Google, Legacy):

const service = new google.maps.DistanceMatrixService();

service.getDistanceMatrix(
  {
    origins: [
      { lat: 52.52, lng: 13.405 },
      { lat: 52.3906, lng: 13.0645 },
    ],
    destinations: [
      { lat: 51.3397, lng: 12.3731 },
      { lat: 51.0504, lng: 13.7373 },
    ],
    travelMode: google.maps.TravelMode.DRIVING,
  },
  (response, status) => {
    if (status === "OK") {
      response.rows.forEach((row, i) => {
        row.elements.forEach((element, j) => {
          console.log(`Origin ${i} -> Dest ${j}:`,
            element.distance.text, element.duration.text);
        });
      });
    }
  }
);

পরে (MapAtlas Matrix API):

const response = await fetch(
  `https://gateway.mapmetrics-atlas.net/matrix/?token=${process.env.MAPATLAS_API_KEY}`,
  {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      sources: [
        { lat: 52.52, lon: 13.405 },
        { lat: 52.3906, lon: 13.0645 },
      ],
      targets: [
        { lat: 51.3397, lon: 12.3731 },
        { lat: 51.0504, lon: 13.7373 },
      ],
      costing: "auto",
      units: "kilometers",
    }),
  }
);

const data = await response.json();

// One row per source, one cell per target
data.sources_to_targets.forEach((row: any[], i: number) => {
  row.forEach((cell, j) => {
    console.log(`Origin ${i} -> Dest ${j}:`, cell.distance, "km", cell.time, "s");
  });
});

এই grid Google-এর rows ও elements-এর মতোই। দূরত্ব আপনার চাওয়া এককে সংখ্যা হিসেবে এবং সময় সেকেন্ডে আসে, তাই formatting নিজেকেই করতে হবে।

Heatmap Layer-এর বিকল্প

বিকল্প 1: MapLibre GL JS-এ heatmap layer (open source)

import maplibregl from "maplibre-gl";

const map = new maplibregl.Map({
  container: "map",
  style: "https://gateway.mapmetrics-atlas.net/styles/?fileName=YOUR_ACCOUNT_ID/mapstyle.json&token=YOUR_API_KEY",
  center: [13.405, 52.52],
  zoom: 10,
});

map.on("load", () => {
  map.addSource("heat-data", {
    type: "geojson",
    data: {
      type: "FeatureCollection",
      features: heatmapPoints.map((point) => ({
        type: "Feature",
        geometry: { type: "Point", coordinates: [point.lng, point.lat] },
        properties: { weight: point.weight },
      })),
    },
  });

  map.addLayer({
    id: "heatmap-layer",
    type: "heatmap",
    source: "heat-data",
    paint: {
      "heatmap-weight": ["get", "weight"],
      "heatmap-intensity": 1,
      "heatmap-radius": 20,
      "heatmap-opacity": 0.7,
    },
  });
});

Heatmap map library নিজেই render করে, কোনো বাড়তি সেবা লাগে না।

বিকল্প 2: deck.gl-এর HeatmapLayer, যা Google-এর documentation সুপারিশ করে:

import { HeatmapLayer } from "@deck.gl/aggregation-layers";

const heatmapLayer = new HeatmapLayer({
  data: heatmapPoints,
  getPosition: (d) => [d.lng, d.lat],
  getWeight: (d) => d.weight,
  radiusPixels: 30,
});

দুটিই কাজ করে। MapLibre GL JS সরাসরি MapAtlas style পড়ে, আর deck.gl যেকোনো base map-এর ওপর বসানো যায়।

Drawing Library-র বিকল্প

DrawingManager দিয়ে ব্যবহারকারীরা map-এ marker, line, circle ও polygon আঁকতে পারতেন। Google-এর deprecations পেজ যে library-র নাম দেয়, সেই Terra Draw একই mode দেয় এবং Google Maps ও MapLibre GL JS-সহ কয়েকটি map library-র জন্য adapter রাখে। আঁকা আকারগুলো GeoJSON হিসেবে ফেরত আসে, যা আপনি হুবহু সংরক্ষণ করতে বা geofencing বা isochrone সেবায় পাঠাতে পারেন।

খরচের তুলনা

Routing-এর Legacy SKU আর সেগুলোর জায়গায় আসা Essentials SKU-র জন্য Google-এর list price একই। নিচের সব দাম Google Maps Platform pricing পেজ ও MapAtlas pricing পেজ থেকে নেওয়া, দুটিই 26 সেপ্টেম্বর 2026-এ যাচাই করা।

সেবাGoogle, মাসে বিনামূল্যেGoogle, তারপর প্রতি 1,000 (প্রথম স্তর)MapAtlas, মাসে বিনামূল্যেMapAtlas, তারপর প্রতি 1,000 (প্রথম স্তর)
Directions (Legacy) বা Compute Routes Essentials10,000$5.00100,000 navigation request€1.53
Directions Advanced (Legacy) বা Compute Routes Pro5,000$10.00একই navigation স্তর€1.53
Distance Matrix (Legacy) বা Compute Route Matrix Essentials10,000 element$5.00Pricing পেজ দেখুনPricing পেজ দেখুন
Geocoding10,000$5.0025,000€3.90

Google মার্কিন ডলারে আর MapAtlas ইউরোতে বিল করে, তাই তুলনার আগে মুদ্রা রূপান্তর করুন। দুজনেই বেশি পরিমাণে কম দর নেয়। মাসে 500,000 route request-এর একটি উদাহরণ:

  • Google Compute Routes Essentials: 10,000 বিনামূল্যে, 90,000 প্রতি হাজার $5.00 এবং 400,000 প্রতি হাজার $4.00, মোট $2,050।
  • MapAtlas navigation: 100,000 বিনামূল্যে এবং 400,000 প্রতি হাজার €1.53, মোট প্রায় €610।

পূর্ণ উদাহরণ: backend route ও map

এই পদ্ধতিতে API key server-এ থাকে এবং browser-এ শুধু route-এর geometry পাঠানো হয়।

Backend API route (Next.js)

// app/api/directions/route.ts
import { NextRequest, NextResponse } from "next/server";

// Decode an encoded polyline with precision 6 into [lon, lat] pairs
function decodePolyline6(str: string): [number, number][] {
  const coords: [number, number][] = [];
  let index = 0, lat = 0, lng = 0;
  while (index < str.length) {
    for (const axis of [0, 1]) {
      let result = 0, shift = 0, byte: number;
      do {
        byte = str.charCodeAt(index++) - 63;
        result |= (byte & 0x1f) << shift;
        shift += 5;
      } while (byte >= 0x20);
      const delta = result & 1 ? ~(result >> 1) : result >> 1;
      if (axis === 0) lat += delta; else lng += delta;
    }
    coords.push([lng / 1e6, lat / 1e6]);
  }
  return coords;
}

export async function GET(request: NextRequest) {
  const { searchParams } = new URL(request.url);
  const [oLat, oLon] = searchParams.get("origin")!.split(",").map(Number);
  const [dLat, dLon] = searchParams.get("destination")!.split(",").map(Number);

  const response = await fetch(
    `https://gateway.mapmetrics-atlas.net/directions/?token=${process.env.MAPATLAS_API_KEY}`,
    {
      method: "POST",
      headers: { "Content-Type": "application/json" },
      body: JSON.stringify({
        locations: [{ lat: oLat, lon: oLon }, { lat: dLat, lon: dLon }],
        costing: "auto",
        units: "kilometers",
      }),
    }
  );
  if (!response.ok) {
    return NextResponse.json({ error: "routing failed" }, { status: 502 });
  }

  const { trip } = await response.json();
  const coordinates = trip.legs.flatMap((leg: { shape: string }) => decodePolyline6(leg.shape));
  return NextResponse.json({
    coordinates,
    distanceKm: trip.summary.length,
    durationS: trip.summary.time,
  });
}

Map component (React ও MapLibre GL JS)

import { useEffect, useRef } from "react";
import maplibregl from "maplibre-gl";

function DirectionsMap({ origin, destination }: {
  origin: { lat: number; lng: number };
  destination: { lat: number; lng: number };
}) {
  const mapRef = useRef<HTMLDivElement>(null);

  useEffect(() => {
    const map = new maplibregl.Map({
      container: mapRef.current!,
      style: "https://gateway.mapmetrics-atlas.net/styles/?fileName=YOUR_ACCOUNT_ID/mapstyle.json&token=YOUR_API_KEY",
      center: [origin.lng, origin.lat],
      zoom: 7,
    });

    map.on("load", async () => {
      const res = await fetch(
        "/api/directions?" +
          new URLSearchParams({
            origin: `${origin.lat},${origin.lng}`,
            destination: `${destination.lat},${destination.lng}`,
          })
      );
      if (!res.ok) return;
      const { coordinates } = await res.json();

      map.addSource("route", {
        type: "geojson",
        data: {
          type: "Feature",
          geometry: { type: "LineString", coordinates },
          properties: {},
        },
      });

      map.addLayer({
        id: "route-line",
        type: "line",
        source: "route",
        paint: { "line-color": "#4A90D9", "line-width": 5 },
      });

      const bounds = coordinates.reduce(
        (b: maplibregl.LngLatBounds, coord: [number, number]) => b.extend(coord),
        new maplibregl.LngLatBounds(coordinates[0], coordinates[0])
      );
      map.fitBounds(bounds, { padding: 50 });
    });

    return () => map.remove();
  }, [origin, destination]);

  return <div ref={mapRef} style={{ width: "100%", height: "400px" }} />;
}

মাইগ্রেশন কীভাবে পরীক্ষা করবেন

ধাপ 1: দুটি implementation তুলনা করুন

পরীক্ষার সময় একই request দিয়ে পুরোনো ও নতুন দুটি সেবাই call করুন। দুটির দূরত্ব ও সময় log করুন এবং নিজের আসল route-এ পার্থক্য দেখুন, বিশেষ করে ফেরি, টোল ও সীমাবদ্ধ রাস্তায়।

ধাপ 2: feature flag ব্যবহার করুন

Provider-কে একটি flag-এর পেছনে রাখুন, যাতে deploy ছাড়াই ফিরে যেতে পারেন:

const useMapAtlasDirections = process.env.FEATURE_MAPATLAS_DIRECTIONS === "true";

const directions = useMapAtlasDirections
  ? await fetchMapAtlasDirections(origin, destination)
  : await fetchGoogleDirections(origin, destination);

ধাপ 3: error-এর হার নজরে রাখুন

Switch-এর পরে নজর রাখুন:

  • নতুন API থেকে HTTP 4xx ও 5xx-এর হার
  • Latency-র পরিবর্তন
  • আপনার UI যা পড়ে এমন হারানো field
  • ফেরি, টোল রাস্তা ও সীমাবদ্ধ এলাকার মতো বিশেষ ক্ষেত্রে route-এর পার্থক্য

ধাপ 4: চালুর আগে load test

আপনার traffic-এ যদি peak থাকে, যেমন কোনো logistics platform-এ সকালের dispatch-এর সময়, তাহলে নতুন API-র ওপর নির্ভর করার আগে peak volume-এর দ্বিগুণে load test করুন।

এখন কী করবেন

  1. যদি এখনো Heatmap Layer বা Drawing Library load করেন: আগে এগুলো বদলান। Maps JavaScript API-র বর্তমান সংস্করণে এগুলো আর কাজ করে না।
  2. Routing code পরীক্ষা করুন: DirectionsService, DirectionsRenderer ও DistanceMatrixService-এর প্রতিটি call খুঁজে বের করুন।
  3. বিকল্প বেছে নিন: Route ও RouteMatrix class, Routes API, অথবা অন্য কোনো provider।
  4. একবারে একটি সেবা মাইগ্রেট করুন, feature flag-এর পেছনে, এবং switch-এর আগে ফলাফল তুলনা করুন।
  5. Google-এর deprecations পেজ নজরে রাখুন, যাতে বন্ধের তারিখ এলে জানতে পারেন। Legacy সেবার জন্য Google অন্তত 12 মাস আগে জানানোর প্রতিশ্রুতি দিয়েছে।

MapAtlas-এর routing API চেষ্টা করতে বিনামূল্যে account খুলুন এবং API documentation পড়ুন। মাইগ্রেশনে সাহায্যের জন্য যোগাযোগ পেজ ব্যবহার করুন।

সাধারণ জিজ্ঞাসা

Google Maps-এর Drawing Library কি এখনো পাওয়া যায়?

না। Google DrawingManager-সহ Drawing Library-কে আগস্ট 2025-এ deprecated ঘোষণা করে, এবং deprecations পেজে লেখা আছে এটি মে 2026 থেকে আর পাওয়া যায় না। Maps JavaScript API-র 3.65.3b সংস্করণের (4 জুন 2026) release notes নিশ্চিত করে যে DrawingManager আর পাওয়া যায় না। Google বিকল্প হিসেবে Terra Draw-এর নাম দেয়।

Heatmap Layer কি এখনো পাওয়া যায়?

না। Google 27 মে 2025-এ Heatmap Layer-কে deprecated ঘোষণা করে, এবং 20 মে 2026-এর 3.65.1c সংস্করণে জানানো হয় যে এটি পুরোপুরি বন্ধ। এর বদলে Google deck.gl-এর HeatmapLayer-এর মতো third-party library ব্যবহারের পরামর্শ দেয়।

DirectionsService ও DistanceMatrixService কবে কাজ করা বন্ধ করবে?

Google কোনো তারিখ ঠিক করেনি। দুটিই 1 মার্চ 2025 থেকে Legacy অবস্থায় এবং 25 ফেব্রুয়ারি 2026 থেকে deprecated। Google-এর release notes অনুযায়ী এগুলো বন্ধের কোনো পরিকল্পনা নেই, গুরুতর regression-এর fix আসতে থাকবে, এবং support শেষ হওয়ার অন্তত 12 মাস আগে জানানো হবে। Legacy সেবা নতুন Cloud project-এ পাওয়া যায় না, তাই নতুন project-এর জন্য Route ও RouteMatrix class বা অন্য কোনো provider লাগবে।

ধাপে ধাপে মাইগ্রেট করা যায়, নাকি সব একসঙ্গে বদলাতে হবে?

একবারে একটি সেবা মাইগ্রেট করা যায়। প্রতিটি deprecated class আলাদা। আগে Drawing Library ও Heatmap Layer বদলান, কারণ এগুলো ইতিমধ্যে কাজ করছে না, তারপর নিজের সময়সূচি অনুযায়ী DirectionsService ও DistanceMatrixService বদলান।

MapAtlas কি মাঝের যাত্রাবিরতি আর একাধিক যাতায়াত মাধ্যম সমর্থন করে?

হ্যাঁ। MapAtlas Directions API অবস্থানের একটি ক্রমানুসারী তালিকা নেয়, তাই প্রথম ও শেষের মাঝের প্রতিটি বিন্দু একটি যাত্রাবিরতি। এটি auto, bicycle, pedestrian, bus, truck, taxi ও motor_scooter costing model সমর্থন করে। এটি একটি REST endpoint, তাই API key যাতে client-এ না পৌঁছায় সেজন্য নিজের backend থেকে call করুন।

এটি কি কাজে লাগলো? শেয়ার করুন।

লেখক সম্পর্কে

Brent van der Heiden

লেখক

Brent van der Heiden

Co-Founder & CEO at MapAtlas

Brent built MapAtlas out of a conviction that developers deserve location APIs with fair pricing and genuine end-user privacy. Before that he co-founded MapMetrics, a community mapping and navigation app. He writes about geospatial infrastructure, map data, AI search visibility, and how location data powers the products people rely on every day.

সব নিবন্ধ দেখুন →
ব্লগে ফিরে যান