আপনার রুট ওয়েপয়েন্ট অপ্টিমাইজ করুন

ওয়েপয়েন্ট অপ্টিমাইজেশান হল একটি রুট পছন্দের বৈশিষ্ট্য যা ComputeRoutes প্রসারিত করে। এটি একটি ভ্রমণকারীর রুটে মধ্যবর্তী ওয়েপয়েন্টের ক্রমকে অপ্টিমাইজ করে, নিশ্চিত করে যে তারা সম্ভাব্য সবচেয়ে কার্যকর রুটে ভ্রমণ করে। ওয়েপয়েন্ট অপ্টিমাইজেশানের ComputeRoutes বাস্তবায়ন নিম্নলিখিত ভ্রমণ মোড সমর্থন করে:

  • ড্রাইভিং
  • মোটরচালিত টু-হুইলিং
  • সাইক্লিং
  • হাঁটা

কেন ওয়েপয়েন্ট অপ্টিমাইজেশান ব্যবহার করবেন?

একটি অ্যাপ তৈরি করার সময় যা ব্যবহারকারীদের গন্তব্যে যাওয়ার পথে বেশ কয়েকটি ওয়েপয়েন্টের মাধ্যমে গাইড করে, এটি গুরুত্বপূর্ণ যে ভ্রমণকারী সর্বোত্তম ক্রমে ওয়েপয়েন্টগুলি অতিক্রম করে। এটি নিশ্চিত করে যে ভ্রমণকারী সর্বনিম্ন সময়ের মধ্যে প্রতিটি ওয়েপয়েন্টে পৌঁছান।

এটা কিভাবে কাজ করে

ডিফল্টরূপে, ComputeRoutes তার ওয়েপয়েন্টের মাধ্যমে একটি রুট গণনা করে, যে ক্রমে সেগুলি মূলত প্রদান করা হয়েছিল। ইন্টারমিডিয়েট ওয়েপয়েন্টগুলিকে আরও দক্ষ ক্রমে পুনর্বিন্যাস করে রুটটি অপ্টিমাইজ করার জন্য আপনি ComputeRoutes পেতে পারেন। আপনি অপ্টিমাইজ ওয়েপয়েন্ট সহ একটি রুট পাবেন যদি আপনি অনুরোধের বডিতে optimizeWaypointOrder ক্ষেত্রটিকে true সেট করেন।

দ্রষ্টব্য : ওয়েপয়েন্ট অপ্টিমাইজেশান গণনা প্রাথমিকভাবে ভ্রমণের সময়ের উপর ভিত্তি করে, তবে বৈশিষ্ট্যটি অন্যান্য বিষয়গুলিকেও বিবেচনা করে, যেমন দূরত্ব এবং বাঁকের সংখ্যা।

ওয়েপয়েন্টগুলি পুনরায় সাজানো পান

পুনরায় সাজানো ওয়েপয়েন্ট সহ একটি রুট পেতে, ComputeRoutes এ আপনার অনুরোধের মূল অংশে বুলিয়ান ক্ষেত্র optimizeWaypointOrder true হিসাবে সেট করুন। এছাড়াও, ফিল্ড মাস্কে ক্ষেত্র optimizedIntermediateWaypointIndex অন্তর্ভুক্ত করুন। প্রতিক্রিয়া বডিতে optimizedIntermediateWaypointIndex ক্ষেত্রে অপ্টিমাইজ করা ওয়েপয়েন্ট অর্ডার রয়েছে।

দ্রষ্টব্য : optimizedIntermediateWaypointIndex ক্ষেত্রটি শূন্য-ভিত্তিক মান প্রদান করে।

উদাহরণ অনুরোধ

নিম্নলিখিত উদাহরণ অনুরোধ স্ট্যানফোর্ড বিশ্ববিদ্যালয় ক্যাম্পাসের কাছাকাছি একটি রুট সরবরাহ করে। অনুরোধে ক্রমানুসারে রুট ওয়েপয়েন্ট সরবরাহ করা হয়েছে। অনুরোধে দুটি মধ্যবর্তী পথপয়েন্ট সহ একটি উত্স এবং একটি গন্তব্য রয়েছে৷

POST /v1alpha:computeRoutes
Host: routespreferred.googleapis.com
Content-Type: application/json
X-Server-Timeout: 10
X-Goog-Api-Key: YOUR_API_KEY
X-Goog-FieldMask: routes.optimizedIntermediateWaypointIndex,routes.duration,routes.distanceMeters,routes.polyline.encodedPolyline
{
  "origin":{
    "location":{
      "latLng":{
        "latitude": 37.418956,
        "longitude": -122.160815
      }
    }
  },
  "intermediates": [
    {
      "location":{
        "latLng":{
          "latitude": 37.4176423,
          "longitude":-122.1102246
        }
      }
    },
    {
      "location":{
        "latLng":{
          "latitude": 37.407689,
          "longitude": -122.1360597
        }
      }
    }
  ],
  "destination":{
    "location":{
      "latLng":{
        "latitude": 37.4032137,
        "longitude": -122.0349119
      }
    }
  },
  "travelMode": "DRIVE",
  "optimizeWaypointOrder": true,
  "routingPreference": "TRAFFIC_AWARE"}

উদাহরণ প্রতিক্রিয়া

আপনি রেসপন্স বডিতে রুট অবজেক্টের মধ্যে optimizedIntermediateWaypointIndex ইন্টারমিডিয়েট ওয়েপয়েন্ট ইনডেক্স ফিল্ডে পুনরায় সাজানো ইন্টারমিডিয়েট ওয়েপয়েন্ট ইনডেক্স খুঁজে পেতে পারেন। এনকোড করা পলিলাইন দিকনির্দেশ API এবং ComputeRoutes এর মতোই।

routes {
  distance_meters: 17647
  duration {
    seconds: 1866
  }
  polyline {
    encoded_polyline: "wkkcFvorhVU{@Ec@C}CG}@Mm@[}@i@y@[[g@_@Tk@BSjCgGfF|D\\Pv@Lj@@XaCTeC\\aCTs@`ByD`@k@h@e@x@Yh@GtADhBF|@G`AWpAs@lAsAdA{A`BmDr@cBmUqQoS}OyGmFiBsAgEwD}CaCU_@Og@@e@Hy@nGkO~@sBr@cBlDqIlByEp@}AjIfGnBbBHLLd@^p@~ErDfNrKrA~@DIhEeBTQ~AqDlE{KjBgE|FnEh@aAi@`A}FoE~AmD`A}BcAm@mHwFwD}CkLwIsDqCgF_EG[GKnCsDrA_BrC_CnCoBpEkD`EyClCsBcBeBIAkGkH]k@eJmKQKsAuA_@g@wCoDGQmEmFmIqROKaDuHvBkBxAgANCRH^f@v@dBHDD?`AUiBqEhBpEaATMCQYm@wAY]SIOByAfAwBjB_ByDaAwBiCeIA[c@aBqEuNOm@IQbA{c@p@aZFmCTuBLg@Tc@BUAKxOeV~Vy_@nBoDv@_BvAcDzA_EdG{RdC{HtIsY|B{Hx@mDbAuFdBsMbKsv@TaBf@}AdF{Sn@_DJq@Lo@aE`@]GUQmAmAQk@@g@RK`Ce@d@UDEPc@f@cCrAyGJs@X{AbIem@bA{JD_AIaAMg@o@{A_Ad@y@NaCLCsCK_FGI"
  }
  optimizedIntermediateWaypointIndex: 1
  optimizedIntermediateWaypointIndex: 0
}

এই উদাহরণে, লক্ষ্য করুন যে ওয়েপয়েন্টগুলি অপ্টিমাইজ করা তাদের আসল ক্রমকে বিপরীত করে।

অপ্টিমাইজড ওয়েপয়েন্ট সহ একটি অনুরোধ একটি সাধারণ রাউটিং অনুরোধের চেয়ে প্রক্রিয়া করতে বেশি সময় নেয়। যেমন, আমরা সুপারিশ করছি যে আপনি X-Server-Timeout অনুরোধ শিরোনামের জন্য কমপক্ষে দশ সেকেন্ডের জন্য একটি মান সেট করে মেথড কলে একটি উচ্চ সময়সীমা সেট করুন। আপনি যদি টাইমআউট ত্রুটিগুলি পেতে থাকেন তবে আপনি আরেকটি সেকেন্ড যোগ করতে পারেন এবং তারপর আবার চেষ্টা করুন৷

ব্যবহারের সীমাবদ্ধতা

ওয়েপয়েন্ট অপ্টিমাইজেশান ব্যবহার করতে, আপনাকে অবশ্যই এই ব্যবহারের সীমাবদ্ধতা এবং শর্তাবলী অনুসরণ করতে হবে:

  • আপনি আপনার রুটের মধ্যবর্তী ওয়েপয়েন্টগুলির জন্য ব্যবহারের সীমা পর্যন্ত নির্দিষ্ট করতে পারেন:

    • শুধুমাত্র অক্ষাংশ এবং দ্রাঘিমাংশ স্থানাঙ্ক ব্যবহার করে 98টি পর্যন্ত ওয়েপয়েন্ট।
    • আপনি যদি স্থান আইডি ব্যবহার করে কোনো ওয়েপয়েন্ট উল্লেখ করেন তাহলে 25টি পর্যন্ত ওয়েপয়েন্ট।
  • আপনার সমস্ত ওয়েপয়েন্ট অবশ্যই স্টপওভারের হতে হবে। আপনার কোনো পথপয়েন্ট এর মাধ্যমে টাইপের হতে পারে না।

  • ফিল্ড মাস্কে আপনাকে অবশ্যই routes.optimizedIntermediateWaypointIndex যোগ করতে হবে।

  • যদি আপনার অনুরোধে 25 বা তার বেশি মধ্যবর্তী পথপয়েন্ট থাকে, তবে এটি অবশ্যই নিম্নলিখিত শর্তগুলি মেনে চলতে হবে:

    • সমস্ত ওয়েপয়েন্টের মধ্যে জমে থাকা সরল-রেখার দূরত্ব অবশ্যই 1,000 কিলোমিটারের কম হতে হবে। এই দূরত্বের মধ্যে উৎপত্তি এবং গন্তব্য উভয়ই অন্তর্ভুক্ত।

    • ভ্রমণ মোড ড্রাইভ হতে হবে.