একটি রুট পরিকল্পনা করুন

কখনও কখনও, আপনি আপনার অ্যাপ ব্যবহারকারীদের যে রুট প্রদান করে তা পরিকল্পনা করতে চাইতে পারেন। Routes API, Routes Preferred API, বা Route Optimization API থেকে একটি রুট টোকেন ব্যবহার করে আপনার পরিকল্পিত রুটের জন্য দুটি জিনিস নির্দিষ্ট করতে সাহায্য করতে পারে:

  • রুটের জন্য একটি পলিলাইন

  • আপনার রুট উদ্দেশ্য

উদাহরণস্বরূপ, এখানে আপনার রাউটিং উদ্দেশ্যগুলির কিছু উদাহরণ রয়েছে:

  • ডেলিভারির সময় কম করুন : খাবার সরবরাহকারী একটি ব্যবসা খাবার সরবরাহ করতে যে সময় নেয় তা কমিয়ে আনতে চাইতে পারে।

  • ভ্রমণের সময় বা জ্বালানী খরচ কম করুন : একটি লজিস্টিক ব্যবসা তাদের ড্রাইভারদের দক্ষতা উন্নত করতে এবং তাদের জ্বালানী খরচ কমাতে চায়।

  • গন্তব্যে যাওয়ার সময় কম করুন : একটি পরিষেবা প্রেরণ অপারেশন একটি কাজের অনুরোধে অপারেটরদের পেতে সময় কমিয়ে আনতে চাইতে পারে।

  • কম খরচ এবং নিরাপত্তা উন্নত করুন : একটি রাইড শেয়ারিং ব্যবসা এমন একটি রুট খুঁজতে চাইতে পারে যা রাইডারদের জন্য কম খরচ করে এবং নিরাপত্তার কারণে নির্দিষ্ট এলাকা এড়িয়ে যায়।

একটি রুট টোকেন ব্যবহার করে একটি রুট পরিকল্পনা সম্পর্কে আরও তথ্যের জন্য, রুট এপিআই এবং ট্রানজিশন পলিলাইন এবং রুট অপ্টিমাইজেশান এপিআই-এ রুট টোকেনের অনুরোধ দেখুন।

কেন রুট উদ্দেশ্য জন্য একটি রুট টোকেন ব্যবহার করুন

Routes API, Routes Preferred API, বা Route Optimization API থেকে একটি রুট টোকেন সহ, প্রদত্ত রুটের উপর আপনার আরও নিয়ন্ত্রণ রয়েছে:

  • সম্ভব হলে নেভিগেশন SDK ব্যবহার করার জন্য আগে থেকেই একটি রুট পরিকল্পনা করুন

  • নেভিগেশন SDK ব্যবহারের জন্য সর্বোত্তম রুট বেছে নিন । আপনি যদি রুট এপিআই-এ রুট তৈরি করার সময় রুট টোকেন অনুরোধ করেন, আপনি প্রতিটি জেনারেট করা রুটের জন্য একটি রুট টোকেন পাবেন। তারপর আপনি যে রুটটি ব্যবহার করতে চান তার জন্য টোকেনটি বেছে নিতে পারেন যখন আপনি এটিকে নেভিগেশন SDK-এ পাস করবেন।

  • ETA এবং দূরত্বের অনুমান সহ মূল্য অগ্রিম অনুমান করুন । যদিও প্রকৃত খরচ এবং সময় পরিবর্তিত হতে পারে, এই অনুমানটি প্রত্যাশিত এবং প্রকৃত রুটের খরচের মধ্যে ব্যবধান কমিয়ে দেয়।

  • আরও উন্নত রুট উদ্দেশ্য নির্দিষ্ট করুন , যেমন ইকো রাউটিং বা সংক্ষিপ্ততম রুট।

রুট টোকেন কিভাবে কাজ করে

আপনি রুট উদ্দেশ্য ব্যবহার করে একটি রুট পরিকল্পনা করতে Routes API, Routes Preferred API, বা Route Optimization API ব্যবহার করতে পারেন। আপনি এই APIগুলির যেকোনো একটি থেকে নেভিগেশন SDK-তে ফেরত আসা একটি রুট টোকেন পাস করতে পারেন যাতে এটি আপনার গাড়িকে কীভাবে রুট করে তা নির্দেশ করতে পারে।

আপনি যখন একটি রুট টোকেন অনুরোধ করেন এবং ব্যবহার করেন তখন কী হয় তা এখানে রয়েছে:

  1. Routes API, Routes Preferred API, বা Route Optimization API একটি এনক্রিপ্ট করা রুট টোকেন প্রদান করে যাতে রুট পলিলাইন এবং রুট উদ্দেশ্য অন্তর্ভুক্ত থাকে।

  2. আপনি নেভিগেশন SDK রুট টোকেন পাস.

  3. নেভিগেশন SDK রুটটি পুনরুদ্ধার করে, অথবা পরিবর্তনের কারণে রুটটি উপলব্ধ না হলে, এটি সেরা মিলিত রুটটি পুনরুদ্ধার করে।

  4. রুট চালানোর সময়, যদি ট্র্যাফিক বা অন্যান্য রাস্তার অবস্থার পরিবর্তন হয়, বা যদি একটি যান পরিকল্পিত রুট থেকে বিচ্যুত হয়, পরিবর্তিত রুটগুলি ক্রমাগত টোকেনে রুটের উদ্দেশ্যগুলির উপর ভিত্তি করে সর্বোত্তম রুটের সাথে মেলানোর চেষ্টা করে।

এই প্রক্রিয়াটি আপনার পরিকল্পিত রুটের প্রকৃত রুট কতটা কাছাকাছি তা সর্বাধিক করে।

কেন একটি পরিকল্পিত রুট ঠিক অনুসরণ করা হতে পারে না

আপনার পরিকল্পিত রুট এবং পথের উদ্দেশ্যগুলিকে অনুসরণ করার নির্দেশিকা হিসাবে ভাবুন: এগুলি নির্দেশমূলক নয়। আপনি আপনার পরিকল্পিত রুট এবং রাস্তার অবস্থা, শুরুর অবস্থান বা আপনার পরিকল্পিত রুট তৈরি করার পর থেকে পরিবর্তিত অন্যান্য পরামিতিগুলির পার্থক্যের কারণে নির্দেশিত নেভিগেশন দ্বারা প্রদত্ত রুটের মধ্যে পার্থক্য দেখতে পারেন। এই পার্থক্যের ফলে অন্যান্য গুরুত্বপূর্ণ ট্রিপের গুণাবলীর মধ্যে দূরত্ব এবং ETA এর জন্য আপনার পরিকল্পিত এবং প্রকৃত লক্ষ্যগুলির মধ্যে অমিল হতে পারে।

একটি রুট টোকেন ব্যবহার করে একটি রুট পরিকল্পনা করুন

আপনি একটি রুট টোকেন তৈরি করে এবং তারপর এটিকে নেভিগেশন SDK-তে পাস করার মাধ্যমে একটি রুট পরিকল্পনা করতে পারেন, যেমনটি নিম্নলিখিত ধাপে বর্ণনা করা হয়েছে:

ধাপ 1: রুট API, রুট পছন্দের API, বা রুট অপ্টিমাইজেশান API ব্যবহার করে একটি রুট টোকেন তৈরি করুন

  1. নিম্নলিখিত পদ্ধতিগুলির মধ্যে একটি দিয়ে একটি রুট টোকেন অনুরোধ করুন :

  2. একটি রুট টোকেন ব্যবহার করার জন্য প্রয়োজনীয়তা পূরণ করতে আপনার রুট API বা রুট পছন্দের API অনুরোধ সেট আপ করুন :

    • DRIVING বা TWO_WHEELERtravel_mode সেট করুন
    • TRAFFIC_AWARE বা TRAFFIC_AWARE_OPTIMALrouting_preference সেট করুন
    • ওয়েপয়েন্টের Via ব্যবহার করবেন না

ধাপ 2: নেভিগেশন SDK-এ রুট টোকেন পাস করুন

  1. রুট টোকেন সংরক্ষণ করুন : নেভিগেশন SDK-এ, রুট টোকেন সংরক্ষণ করতে একটি স্ট্রিং সেট আপ করুন। যেমন:

    let routeToken = "route token returned by Routes API"

    ফিরে আসা রুট টোকেনের উদাহরণ:

    {
    // Other fields
    "routeToken": "CqMBCjoKCJQOor5DHcwiEhBon3XpHXFnVvDeWMwd9PpAGgz6wtnFDKIBrAHTARpCApUDSggAAAAACjcrP3gBEAQaTApKChgKDQoCCAERAAAAAACAZkAR3SQGgZUXdUASEggAEAMQBhATEBIYAkIEGgIIBSIYChZ2VEJiWlBPSkk1aU5wUVRzNTV5d0FRKAEiFQBcJuds-Efh-2QZhOMTtUCCxEVL_g",
    }
    
  2. mapView.navigator setDestinations পদ্ধতি ব্যবহার করে ন্যাভিগেশন SDK-এ রুট টোকেনটি পাস করুন , রুট টোকেন তৈরি করার সময় আপনি যে গন্তব্যের ওয়েপয়েন্ট ব্যবহার করেছিলেন তা উল্লেখ করে:

    mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})

Navigator.setDestinations পদ্ধতি অনুরোধের স্থিতি প্রদান করে। যদি ব্যবহারকারীর অবস্থান থেকে প্রদত্ত গন্তব্যে একটি রুট পাওয়া যায় তবে এটি RouteStatus.OK ফেরত দেয়।

এই পদ্ধতি সম্পর্কে আরও তথ্যের জন্য, Navigator.setDestinations দেখুন।

উদাহরণ

নিম্নলিখিত কোড উদাহরণগুলি কীভাবে একটি পরিকল্পিত রুট পুনরুদ্ধার করতে হয় তা প্রদর্শন করে৷

সুইফট

let location = CLLocationCoordinate2D(latitude: 47.67, longitude: -122.20)
let waypoint1 = GMSNavigationWaypoint(location: location, title: "waypoint from location")!
let waypoint2 = GMSNavigationWaypoint(placeID: "samplePlaceID", title: "waypoint from Place ID")!

let routeToken = "route token returned by Routes API"
mapView.navigator?.setDestinations([waypoint1, waypoint2], routeToken: routeToken, callback: {...})

উদ্দেশ্য-C

CLLocationCoordinate2D location = CLLocationCoordinate2DMake(47.67, -122.20);
GMSNavigationWaypoint *waypoint1 = [[GMSNavigationWaypoint alloc] initWithLocation:coordinate title:@"waypoint from location"];
GMSNavigationWaypoint *waypoint2 = [[GMSNavigationWaypoint alloc] initWithPlaceID:@"samplePlaceID"
                                                                            title:@"waypoint from Place ID"];
NSString *routeToken = @"route token returned by Routes API";

[mapView.navigator setDestinations:@[waypoint1, waypoint2]
                         routeToken:routeToken
                           callback:^(GMSRouteStatus routeStatus){...}];

রুট টোকেন এবং নেভিগেশন SDK কিভাবে ইন্টারঅ্যাক্ট করে

ন্যাভিগেশন SDK দ্বারা উত্পন্ন রুট এবং রুট টোকেনের পরিকল্পিত রুট কীভাবে ইন্টারঅ্যাক্ট করে তা এখানে রয়েছে:

  • পূর্বে সেট করা যেকোনো গন্তব্যকে ওভাররাইড করে

  • গাড়ির শুরুর অবস্থান ব্যবহার করে

  • রাস্তা এবং ট্রাফিক অবস্থার জন্য সামঞ্জস্য . দেখুন কেন একটি পরিকল্পিত রুট সঠিকভাবে অনুসরণ করা হয় না

  • নিম্নলিখিত রাউটিং-সম্পর্কিত বিকল্পগুলিকে অপ্রয়োজনীয় হিসাবে উপেক্ষা করে :

    • avoidsHighways
    • avoidsTolls
    • avoidsFerries
    • licensePlateRestriction
  • অনুসরণ করে :

    • ওয়েপয়েন্ট-সম্পর্কিত বিকল্পগুলি , যেমন রাস্তার পাশের পছন্দ।

    • রুট উদ্দেশ্য . যদি নেভিগেশন SDK-কে প্রত্যাবর্তিত রুট সামঞ্জস্য করতে হয়, তবে এটি রুট টোকেন অনুরোধ করার সময় আপনার নির্দিষ্ট করা রুট উদ্দেশ্যগুলি ব্যবহার করে। এই কারণে, আপনি একই ওয়েপয়েন্ট-সম্পর্কিত বিকল্পগুলি ব্যবহার করা উচিত যা আপনি Routes API এ নির্দিষ্ট করেছেন।