दिशा बताने वाली सेवा

खास जानकारी

आप दिशा-निर्देशों की गणना कर सकते हैं. इसके लिए परिवहन का) DirectionsService का इस्तेमाल करके ऑब्जेक्ट है. यह ऑब्जेक्ट Google Maps API के निर्देशों के साथ कम्यूनिकेट करता है ऐसी सेवा जिसके लिए रास्ते की जानकारी पाने के अनुरोध किए गए हों और एक बेहतर पाथ दिखाया गया हो. यात्रा में लगने वाला समय ऑप्टिमाइज़ करने की मुख्य वजह है. हालांकि, इसमें कुछ अन्य चीज़ें भी शामिल हैं जैसे, दूरी, मोड़ों की संख्या वगैरह को ध्यान में रखा जा सकता है. आप या तो इन दिशा-निर्देशों के परिणामों को खुद प्रबंधित कर सकते हैं या इन्हें रेंडर करने के लिए DirectionsRenderer ऑब्जेक्ट है नतीजे.

निर्देश के अनुरोध में शुरुआत की जगह या मंज़िल के बारे में बताते समय, आप क्वेरी स्ट्रिंग दर्ज कर सकते हैं (उदाहरण के लिए, "शिकागो, IL" या "डारविन, NSW, ऑस्ट्रेलिया"), LatLng वैल्यू या जगह ऑब्जेक्ट.

दिशा-निर्देश सेवा एक सीरीज़ का इस्तेमाल करके कई हिस्सों में दिए गए दिशा-निर्देश दिखा सकती है का विकल्प मिलता है. दिशा-निर्देशों को पॉलीलाइन ड्रॉइंग के तौर पर दिखाया गया है मैप पर रास्ता दिखाया जा सकता है या टेक्स्ट वाली सीरीज़ के तौर पर <div> एलिमेंट में ब्यौरा (उदाहरण के लिए, "विलियमबर्ग ब्रिज के रैंप पर दाएं मुड़ें").

शुरू करना

Maps JavaScript API में दिशा-निर्देश सेवा का इस्तेमाल करने से पहले, पक्का कर लें कि निर्देश एपीआई को Google Cloud Console में चालू किया गया हो. साथ ही, प्रोजेक्ट होता है, जिसे आपने Maps JavaScript API के लिए सेट अप किया होता है.

अपने चालू एपीआई की सूची देखने के लिए:

  1. YouTube Studio के Google Cloud Console.
  2. प्रोजेक्ट चुनें बटन पर क्लिक करें, इसके बाद, वही प्रोजेक्ट चुनें जिसे आपने Maps JavaScript API पर जाएं और खोलें पर क्लिक करें.
  3. डैशबोर्ड पर एपीआई की सूची से, दिशा-निर्देशों से जुड़ा एपीआई.
  4. अगर आपको सूची में एपीआई दिखता है, तो इसका मतलब है कि आपका काम हो गया है. अगर एपीआई सूची में नहीं है, इसे चालू करें:
    1. पेज के सबसे ऊपर, एपीआई चालू करें चुनें, ताकि लाइब्रेरी टैब. इसके अलावा, बाईं ओर दिए गए मेन्यू से, लाइब्रेरी चुनें.
    2. दिशा-निर्देश API खोजें, फिर इसे नतीजों की सूची.
    3. चालू करें को चुनें. प्रोसेस पूरी होने के बाद, दिशा-निर्देश एपीआई, एपीआई की सूची में डैशबोर्ड.

कीमत और नीतियां

कीमत

16 जुलाई, 2018 से, इस्तेमाल के हिसाब से पैसे चुकाने की नई कीमत तय करने की सुविधा मैप, रास्तों, और जगहों की जानकारी देने वाला इफ़ेक्ट. नई कीमतों के बारे में ज़्यादा जानने के लिए और JavaScript दिशा-निर्देश सेवा के आपके उपयोग की सीमाएँ देखें, तो इस्तेमाल और बिलिंग के लिए देखें.

नीतियां

निर्देश सेवा का उपयोग बताई गई नीतियों के बारे में जानकारी निर्देश एपीआई के लिए.

दिशा-निर्देशों के लिए अनुरोध

निर्देश सेवा तक पहुंच एसिंक्रोनस है, क्योंकि तो Google Maps API का इस्तेमाल करने के लिए सर्वर. इस वजह से, आपको कॉलबैक की ज़रूरत होगी अनुरोध पूरा करने का तरीका. यह कॉलबैक का तरीका होने पर, नतीजों को प्रोसेस किया जाना चाहिए. ध्यान दें कि निर्देश देने वाली सेवा, यात्रा की एक से ज़्यादा संभावित योजना दिखा सकती है अलग-अलग routes[] के कलेक्शन के तौर पर.

Maps JavaScript API में निर्देशों का इस्तेमाल करने के लिए, DirectionsService टाइप करें और कॉल करें अनुरोध करने के लिए DirectionsService.route() को दिशा-निर्देश सेवा को देते हुए, इसे DirectionsRequest ऑब्जेक्ट लिटरल इसमें इनपुट टर्म और एक्ज़ीक्यूट करने के लिए कॉलबैक का तरीका शामिल है Google Ads API का इस्तेमाल करें.

DirectionsRequest ऑब्जेक्ट लिटरल में ये फ़ील्ड शामिल होते हैं:

{
  origin: LatLng | String | google.maps.Place,
  destination: LatLng | String | google.maps.Place,
  travelMode: TravelMode,
  transitOptions: TransitOptions,
  drivingOptions: DrivingOptions,
  unitSystem: UnitSystem,
  waypoints[]: DirectionsWaypoint,
  optimizeWaypoints: Boolean,
  provideRouteAlternatives: Boolean,
  avoidFerries: Boolean,
  avoidHighways: Boolean,
  avoidTolls: Boolean,
  region: String
}

इन फ़ील्ड को नीचे समझाया गया है:

  • origin (ज़रूरी है) शुरू होने की जगह की जानकारी देता है इसका इस्तेमाल करके दिशा-निर्देशों का पता लगाया जाता है. इस मान को LatLng के तौर पर, String (उदाहरण के लिए, "शिकागो, IL") वैल्यू या जगह ऑब्जेक्ट के तौर पर दिखेगी. अगर आपको किसी जगह ऑब्जेक्ट डालें, तो आप जगह का आईडी, क्वेरी स्ट्रिंग या LatLng जगह. आप जियोकोडिंग से जगह के आईडी हासिल कर सकते हैं, इसमें खोज और स्थान ऑटोकंप्लीट सेवाएं रखें Maps JavaScript एपीआई. एक उदाहरण के लिए, एक जगह से दूसरी जगह के आईडी का इस्तेमाल करना ऑटोकंप्लीट, देखें जगह ऑटोकंप्लीट की सुविधा और निर्देश.
  • destination (ज़रूरी है) खत्म होने की जगह बताता है जिस तक दिशा-निर्देश का हिसाब लगाना है. विकल्प इसके समान हैं origin फ़ील्ड के बारे में ऊपर बताया गया है.
  • travelMode (ज़रूरी है) क्या बताती है दिशा-निर्देशों का पता लगाते समय इस्तेमाल किया जाने वाला परिवहन का साधन. मान्य वैल्यू ट्रैवल मोड में दी गई हों देखें.
  • transitOptions (ज़रूरी नहीं) बताता है जो सिर्फ़ उन अनुरोधों पर लागू होते हैं जहां travelMode है TRANSIT. मान्य वैल्यू के बारे में बताया गया है नीचे बस, मेट्रो वगैरह के विकल्प में जाएं.
  • drivingOptions (ज़रूरी नहीं) बताता है जो सिर्फ़ उन अनुरोधों पर लागू होते हैं जहां travelMode है DRIVING. मान्य वैल्यू के बारे में बताया गया है ड्राइविंग के विकल्प में जाएं.
  • unitSystem (ज़रूरी नहीं) यह बताता है कि इकाई सिस्टम का इस्तेमाल करें. मान्य मान ये हैं की जानकारी नीचे यूनिट सिस्टम में दी गई है.

  • waypoints[] (ज़रूरी नहीं) बताता है DirectionsWaypoint का कलेक्शन. वेपॉइंट में बदलाव तय की गई जगह(जगहों) से रूट करके रूट को जाता है. वेपॉइंट, फ़ील्ड के साथ लिटरल वैल्यू के तौर पर बताया गया है नीचे दी गई जानकारी देखें:

    • location इसकी जगह की जानकारी देता है वेपॉइंट, LatLng के तौर पर जगह ऑब्जेक्ट या इस तरह से दिखाएं String को जियोकोड किया जाएगा.
    • stopover एक बूलियन है, जो वेपॉइंट, रास्ते का एक स्टॉप है, जिसमें रूट को दो रूट में बांटने का असर.

    (वेपॉइंट के बारे में अधिक जानकारी के लिए, नीचे रास्तों में वेपॉइंट दिए गए हैं.)

  • optimizeWaypoints (ज़रूरी नहीं) से पता चलता है कि दिए गए waypoints का उपयोग करने वाला रास्ता यह हो सकता है वेपॉइंट को ज़्यादा बेहतर क्रम में फिर से व्यवस्थित करके ऑप्टिमाइज़ किया गया हो. अगर true, निर्देश देने वाली सेवा, फिर से क्रम में लगाई गई waypoints दिखाएगी waypoint_order फ़ील्ड में डालें.(ज़्यादा जानकारी के लिए रास्ते में वेपॉइंट का इस्तेमाल करना देखें below.)
  • provideRouteAlternatives (वैकल्पिक) सेट होने पर से true तक यह पता चलता है कि दिशा-निर्देश सेवा जवाब में रास्ते के एक से ज़्यादा विकल्प दें. ध्यान दें कि रास्ते के विकल्प देने से जवाब देने में ज़्यादा समय लग सकता है सर्वर पर जाएं. यह सिर्फ़ उन अनुरोधों के लिए उपलब्ध है जिनके लिए इंटरमीडिएट वेपॉइंट मौजूद नहीं हैं.
  • avoidFerries (ज़रूरी नहीं) पर सेट होने पर true बताता है कि आपके दिए गए रास्तों पर अगर हो सके, तो फ़ेरी न दिखाएं.
  • avoidHighways (ज़रूरी नहीं) पर सेट होने पर true बताता है कि आपके दिए गए रास्तों पर अगर संभव हो, तो प्रमुख हाइवे से बचें.
  • avoidTolls (ज़रूरी नहीं) पर सेट होने पर true बताता है कि आपके दिए गए रास्तों पर अगर संभव हो, तो टोल सड़कों से बचें.
  • region (ज़रूरी नहीं) यह बताता है कि क्षेत्र का कोड, जिसे ccTLD ("टॉप लेवल डोमेन") के तौर पर बताया गया है दो वर्ण वाला मान. (ज़्यादा जानकारी के लिए देखें क्षेत्र का आधार नीचे दिया गया है.)

नीचे DirectionsRequest का एक सैंपल दिया गया है:

{
  origin: 'Chicago, IL',
  destination: 'Los Angeles, CA',
  waypoints: [
    {
      location: 'Joplin, MO',
      stopover: false
    },{
      location: 'Oklahoma City, OK',
      stopover: true
    }],
  provideRouteAlternatives: false,
  travelMode: 'DRIVING',
  drivingOptions: {
    departureTime: new Date(/* now, or future date */),
    trafficModel: 'pessimistic'
  },
  unitSystem: google.maps.UnitSystem.IMPERIAL
}

यात्रा के मोड

जब आप दिशा-निर्देशों की गणना करते हैं, तो आपको कि परिवहन का कौनसा मोड इस्तेमाल करना है. यह यात्रा फ़िलहाल, इन मोड का इस्तेमाल किया जा सकता है:

  • DRIVING (डिफ़ॉल्ट) सड़क नेटवर्क का इस्तेमाल करके मानक ड्राइविंग दिशा-निर्देश बताता है.
  • BICYCLING ने साइकल चलाने का अनुरोध किया है साइकिल पथों से होकर दिशा-निर्देश पसंदीदा सड़कें चुनें.
  • TRANSIT ने इसके ज़रिए निर्देशों का अनुरोध किया है बस, मेट्रो वगैरह के रास्ते.
  • WALKING ने पैदल जाने के लिए दिशा-निर्देश का अनुरोध किया है पैदल रास्तों से और फ़ुटपाथ.

Google Maps Platform के कवरेज की जानकारी देखें ताकि यह पता लगाया जा सके कि कोई देश किस हद तक निर्देश पाने की सुविधा देता है. अगर आप अनुरोध करें उस क्षेत्र के लिए दिशा-निर्देश, जिसमें वह दिशा प्रकार उपलब्ध नहीं है, तो जवाब में DirectionsStatus="ZERO_RESULTS".

ध्यान दें: हो सकता है कि पैदल जाने की जानकारी में साफ़ तौर पर जानकारी न दिखे पैदल चलने के रास्ते दिखाई नहीं देते हैं, तो पैदल जाने के निर्देश DirectionsResult. ये चेतावनियां हमेशा उपयोगकर्ता. अगर आप डिफ़ॉल्ट DirectionsRenderer का उपयोग नहीं करते हैं, तो यह पक्का करना ज़रूरी है कि चेतावनियां दिखाई जाएं.

सार्वजनिक परिवहन के विकल्प

दिशा-निर्देश के अनुरोध के लिए उपलब्ध विकल्प, यात्रा के अलग-अलग साधनों के हिसाब से अलग-अलग होते हैं. सार्वजनिक परिवहन के निर्देशों का अनुरोध करते समय, avoidHighways, avoidTolls, waypoints[], और optimizeWaypoints विकल्पों को अनदेखा कर दिया जाएगा. यह तय किया जा सकता है कि बस, मेट्रो वगैरह के लिए खास रूटिंग विकल्प TransitOptions ऑब्जेक्ट लिटरल.

बस, मेट्रो वगैरह के रास्ते के लिए निर्देश, समय के हिसाब से संवेदनशील होते हैं. दिशा-निर्देश सिर्फ़ इसके लिए दिखाए जाएंगे आने वाले समय में कितनी बार ऐसा हो सकता है.

TransitOptions ऑब्जेक्ट लिटरल में ये शामिल हैं फ़ील्ड:

{
  arrivalTime: Date,
  departureTime: Date,
  modes[]: TransitMode,
  routingPreference: TransitRoutePreference
}

इन फ़ील्ड को नीचे समझाया गया है:

  • arrivalTime (ज़रूरी नहीं) यह तय करता है कि आपको किस तरह की जानकारी चाहिए Date ऑब्जेक्ट के तौर पर पहुंचने का समय. अगर पहुंचने का समय इतना है बताया गया है, तो रवानगी के समय को अनदेखा किया जाता है.
  • departureTime (ज़रूरी नहीं) यह तय करता है कि आपको किस तरह की जानकारी चाहिए Date ऑब्जेक्ट के तौर पर रवानगी का समय. कॉन्टेंट बनाने अगर arrivalTime है, तो departureTime को अनदेखा कर दिया जाएगा बताया गया है. कोई वैल्यू न होने पर, डिफ़ॉल्ट तौर पर अब (यानी कि मौजूदा समय) पर सेट होती है departureTime या के लिए तय arrivalTime.
  • modes[] (ज़रूरी नहीं) एक कलेक्शन है, जिसमें एक या TransitMode ऑब्जेक्ट की लिटरल वैल्यू. यह फ़ील्ड सिर्फ़ अगर अनुरोध में API कुंजी शामिल है, तो शामिल नहीं किया जाता. हर TransitMode ट्रांज़िट के किसी पसंदीदा मोड के बारे में बताता है. ये वैल्यू इस्तेमाल की जा सकती हैं:
    • BUS से पता चलता है कि आपके चुने गए रूट के लिए बस से यात्रा करने का विकल्प चुना जाना चाहिए.
    • RAIL से पता चलता है कि आपके चुने गए रास्ते के आधार पर ट्रेन, ट्राम, लाइट रेल और सबवे.
    • SUBWAY से पता चलता है कि चुने गए रास्ते के लिए सबवे से यात्रा करने को प्राथमिकता दी जानी चाहिए.
    • TRAIN से पता चलता है कि आपके चुने गए रास्ते के आधार पर ट्रेन से यात्रा की जानी चाहिए.
    • TRAM से पता चलता है कि आपके चुने गए रास्ते के आधार पर, ट्राम और लाइट रेल से यात्रा करना सही रहेगा.
  • routingPreference (वैकल्पिक) प्राथमिकताओं को तय करता है बस, मेट्रो वगैरह के रूट के लिए. इस विकल्प का इस्तेमाल करने पर, आपको ध्यान दें कि एपीआई की ओर से चुने गए डिफ़ॉल्ट सबसे अच्छे रास्ते को स्वीकार न करना. यह फ़ील्ड सिर्फ़ तब ही तय किया जा सकता है, जब अनुरोध में एपीआई पासकोड. ये वैल्यू इस्तेमाल की जा सकती हैं:
    • FEWER_TRANSFERS अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है यह बताता है कि दिए गए फ़ॉर्मूला के आधार पर तैयार किए गए रूट में ट्रांसफ़र.
    • LESS_WALKING अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है यह बताता है कि आपके दिए गए रूट के लिए तय किए गए समय में पैदल चलने.

बस, मेट्रो वगैरह के लिए DirectionsRequest का सैंपल नीचे दिखाया गया है:

{
  origin: 'Hoboken NJ',
  destination: 'Carroll Gardens, Brooklyn',
  travelMode: 'TRANSIT',
  transitOptions: {
    departureTime: new Date(1337675679473),
    modes: ['BUS'],
    routingPreference: 'FEWER_TRANSFERS'
  },
  unitSystem: google.maps.UnitSystem.IMPERIAL
}

ड्राइविंग के विकल्प

आप इसके माध्यम से ड्राइविंग दिशानिर्देश के लिए रूटिंग विकल्प तय कर सकते हैं DrivingOptions ऑब्जेक्ट है.

DrivingOptions ऑब्जेक्ट में ये फ़ील्ड शामिल हैं:

{
  departureTime: Date,
  trafficModel: TrafficModel
}

इन फ़ील्ड को नीचे समझाया गया है:

  • departureTime ( drivingOptions ऑब्जेक्ट, लिटरल वैल्यू है) यह बताता है कि Date ऑब्जेक्ट के तौर पर रवानगी का समय. मान वर्तमान समय या भविष्य के किसी समय पर सेट हो. यह इसमें नहीं हो सकता पिछला. (एक जैसा हैंडलिंग पक्का करने के लिए, एपीआई सभी तारीखों को यूटीसी में बदल देता है) भी शामिल हैं.) Google Maps Platform Premium प्लान के ग्राहकों के लिए, अगर अनुरोध में departureTime शामिल करें, तो एपीआई से अनुरोध मिलता है उस समय ट्रैफ़िक की अनुमानित स्थिति के हिसाब से सबसे अच्छा रास्ता, और इसमें ट्रैफ़िक का अनुमानित समय (duration_in_traffic) शामिल है डालें. अगर आप जाने के समय की जानकारी नहीं देते (यानी, अगर अनुरोध में drivingOptions शामिल नहीं है), वापस भेजा गया रास्ता ट्रैफ़िक की स्थितियों को ध्यान में रखे बिना, आम तौर पर एक अच्छा रास्ता है.
  • trafficModel (ज़रूरी नहीं) अनुमान को इसका इस्तेमाल ट्रैफ़िक में लगने वाले समय को कैलकुलेट करने के लिए किया जाता है. इस सेटिंग से वैल्यू पर असर पड़ता है रिस्पॉन्स के तौर पर duration_in_traffic फ़ील्ड में दी गई वैल्यू इसमें पुराने औसत के आधार पर ट्रैफ़िक में अनुमानित समय होता है. डिफ़ॉल्ट तौर पर, यह bestguess पर सेट होता है. ये वैल्यू इस्तेमाल की जा सकती हैं:
    • bestguess (डिफ़ॉल्ट) से पता चलता है कि यात्रा का सबसे अच्छा अनुमान duration_in_traffic होना चाहिए समय के साथ ट्रैफ़िक की पुरानी स्थितियों और लाइव ट्रैफ़िक. लाइव ट्रैफ़िक जितना ज़्यादा ज़रूरी होता जाएगा departureTime को अब करना है.
    • pessimistic से पता चलता है कि duration_in_traffic की अवधि, असल यात्रा से ज़्यादा होनी चाहिए ज़्यादातर दिनों में समय, हालांकि कभी-कभी खराब ट्रैफ़िक मिलता है शर्तें इस मान से ज़्यादा हो सकती हैं.
    • optimistic से पता चलता है कि duration_in_traffic, असल वैल्यू से कम होना चाहिए ज़्यादातर दिनों में यात्रा करने में लगने वाला समय. हालांकि, कभी-कभी कुछ समय ऐसा भी होता है जब यह अच्छा होता है ट्रैफ़िक का हाल इस मान से ज़्यादा तेज़ हो सकता है.

नीचे ड्राइविंग दिशा निर्देशों के लिए DirectionsRequest का एक नमूना दिया गया है:

{
  origin: 'Chicago, IL',
  destination: 'Los Angeles, CA',
  travelMode: 'DRIVING',
  drivingOptions: {
    departureTime: new Date(Date.now() + N),  // for the time N milliseconds from now.
    trafficModel: 'optimistic'
  }
}

यूनिट सिस्टम

डिफ़ॉल्ट रूप से, निर्देशों का आकलन करने और उन्हें दिखाने के लिए, ऑरिजिन के देश या इलाके का यूनिट सिस्टम. (ध्यान दें: ऑरिजिन पतों के बजाय अक्षांश/देशांतर निर्देशांक हमेशा डिफ़ॉल्ट होते हैं मेट्रिक यूनिट में बदल सकता है.) उदाहरण के लिए, "शिकागो, इलिनॉय" "Toronto, ONT" के लिए मील में परिणाम प्रदर्शित करेगा, जबकि पीछे वाला रास्ता किलोमीटर में परिणाम दिखाएगा. आपने लोगों तक पहुंचाया मुफ़्त में इस यूनिट सिस्टम को बदलने के लिए, नीचे दिए गए UnitSystem में से किसी एक का इस्तेमाल करके अनुरोध करें मान:

  • UnitSystem.METRIC तय करता है और मेट्रिक सिस्टम का इस्तेमाल करते हैं. किलोमीटर का इस्तेमाल करके दूरियों को दिखाया जाता है.
  • UnitSystem.IMPERIAL इंपीरियल के इस्तेमाल के बारे में बताता है (अंग्रेज़ी) प्रणाली. मील का इस्तेमाल करके दूरियों को दिखाया जाता है.

ध्यान दें: सिर्फ़ यह यूनिट सिस्टम सेटिंग उपयोगकर्ता को दिखाए जाने वाले टेक्स्ट पर असर डालता है. रास्ते की जानकारी भी इसमें दूरी की वैल्यू शामिल हैं, जो उपयोगकर्ता को नहीं दिखाई जाती हैं. ये वैल्यू हमेशा होती हैं मीटर में.

दिशा-निर्देशों के लिए क्षेत्र का मापदंड तय करना

Google Maps API दिशा-निर्देश सेवा, प्रभावित पते के परिणाम लौटाती है उस डोमेन (क्षेत्र या देश) के हिसाब से जिससे आपने JavaScript लोड की थी बूटस्ट्रैप. (क्योंकि ज़्यादातर उपयोगकर्ता https://maps.googleapis.com/ लोड करते हैं तो अमेरिका के लिए एक इंप्लिसिट डोमेन सेट कर दिया जाता है.) यदि आप किसी दूसरे काम करने वाले डोमेन से बूटस्ट्रैप करें, आपको नतीजे मिलेंगे उस डोमेन से प्रभावित होते हैं. उदाहरण के लिए, "नई दिल्ली" के लिए की गई खोजें मई ऐप्स लोड होने से भिन्न परिणाम दिखाएं एक से ज़्यादा https://maps.googleapis.com/ (संयुक्त राज्य अमेरिका) http://maps.google.es/ (स्पेन).

आप पक्षपातपूर्ण परिणाम लौटाने के लिए दिशा-निर्देश सेवा को भी सेट कर सकते हैं region पैरामीटर का इस्तेमाल करके, इमेज के किसी खास हिस्से को हाइलाइट करें. यह पैरामीटर क्षेत्र का कोड लेता है, जिसे दो-वर्ण (गैर-संख्यात्मक) यूनिकोड के रूप में बताया जाता है क्षेत्र सब-टैग. ज़्यादातर मामलों में, ये टैग सीधे ccTLD ("टॉप-लेवल डोमेन") जैसे दो वर्ण वाले मान, जैसे कि "uk" "co.uk" में उदाहरण के लिए. कुछ मामलों में, region टैग ISO-3166-1 कोड के साथ भी काम करता है, जो कभी-कभी यह ccTLD वैल्यू से अलग होता है. उदाहरण के लिए, "ग्रेट ब्रिटेन" के लिए "GB".

region पैरामीटर का इस्तेमाल करते समय:

  • सिर्फ़ एक देश या इलाके के बारे में बताएं. एक से ज़्यादा वैल्यू को अनदेखा किया जाता है और हो सकता है कि अनुरोध पूरा न हो पाए.
  • सिर्फ़ दो वर्ण वाले क्षेत्र सब-टैग (यूनिकोड CLDR फ़ॉर्मैट) का इस्तेमाल करें. अन्य सभी इनपुट के कारण गड़बड़ियां हो सकती हैं.

क्षेत्र के आधार पर भेदभाव करने की सुविधा सिर्फ़ उन देशों और इलाकों के लिए काम करती है जो निर्देश. Google Maps Platform के कवरेज की जानकारी देखें देखें.

रेंडर करने के दिशा-निर्देश

इसके लिए एक निर्देश अनुरोध भेजना route() तरीके का इस्तेमाल करके DirectionsService इसके लिए कॉलबैक की ज़रूरत होती है, जो सेवा अनुरोध. यह कॉलबैक DirectionsResult और DirectionsStatus कोड मौजूद है.

निर्देश पाने के लिए क्वेरी की स्थिति

DirectionsStatus ये वैल्यू दिखा सकता है:

  • OK बताता है कि जवाब में मान्य DirectionsResult.
  • NOT_FOUND अनुरोध की शुरुआत की जगह, मंज़िल या वेपॉइंट को जियोकोड नहीं किया जा सका.
  • ZERO_RESULTS बताता है कि कोई रास्ता नहीं मिला शुरुआत की जगह और मंज़िल के बीच में जोड़ें.
  • MAX_WAYPOINTS_EXCEEDED ने इसका भी संकेत दिया कई DirectionsWaypoint फ़ील्ड दिए गए थे DirectionsRequest में. नीचे दिया गया सेक्शन देखें वे पॉइंट के लिए सीमाएं भी सेट करनी चाहिए.
  • MAX_ROUTE_LENGTH_EXCEEDED अनुरोध किए गए रास्ते के बारे में बताता है बहुत लंबा है और इसे प्रोसेस नहीं किया जा सकता. यह गड़बड़ी तब होती है, जब रास्ते की जानकारी दी जाती है. वेपॉइंट, मुड़ने की संख्या, और या निर्देशों का पालन करें.
  • INVALID_REQUEST से पता चलता है कि दी गई DirectionsRequest अमान्य थी. सबसे ज़्यादा खाया गया खाना इस गड़बड़ी कोड की वजहें वे अनुरोध हैं जिनमें शुरुआत की जगह या मंज़िल या बस, मेट्रो वगैरह का अनुरोध जिसमें वेपॉइंट शामिल हों.
  • OVER_QUERY_LIMIT से पता चलता है कि वेबपेज पर तय समयावधि में बहुत ज़्यादा अनुरोध भेजे गए.
  • REQUEST_DENIED से पता चलता है कि वेबपेज दिशा-निर्देश सेवा का इस्तेमाल करने की अनुमति नहीं है.
  • UNKNOWN_ERROR, निर्देश पाने के लिए किए गए अनुरोध के बारे में बताता है सर्वर की गड़बड़ी की वजह से, प्रोसेस नहीं किया जा सका. अनुरोध फिर से कोशिश करें.

आपको यह पक्का करना चाहिए कि निर्देश से जुड़ी क्वेरी में मान्य नतीजे मिले परिणाम को प्रोसेस करने से पहले इस मान की जाँच करके परिणाम दिखाता है.

दिशा-निर्देशों के नतीजे दिखाए जा रहे हैं

DirectionsResult में निर्देश क्वेरी का इस्तेमाल करें, जिसे खुद से हैंडल किया जा सकता है या DirectionsRenderer ऑब्जेक्ट में ट्रांसफ़र किया जा सकता है, जो यह कर सकता है: मैप पर नतीजे दिखाने की सुविधा को अपने-आप मैनेज कर सकता है.

कार्ड का इस्तेमाल करके DirectionsResult को दिखाने के लिए DirectionsRenderer, आपको यह काम करना होगा फ़ॉलो किया जा रहा है:

  1. DirectionsRenderer ऑब्जेक्ट बनाएं.
  2. बाइंड करने के लिए, रेंडरर पर setMap() को कॉल करें उसे पास किए गए मैप पर ले जाते हैं.
  3. रेंडरर पर setDirections() को कॉल करें, जैसा कि बताया गया है, DirectionsResult को पास करना पढ़ें. रेंडरर एक MVCObject है, यह अपनी प्रॉपर्टी में होने वाले किसी भी बदलाव का पता अपने-आप लगा लेगा और मैप को तब अपडेट करें, जब उससे जुड़े निर्देश बदल दिया गया है.

नीचे दिए गए उदाहरण में, एक से दूसरी जगह जाने के लिए निर्देश दिए गए हैं रूट 66 पर दो जगहों की जानकारी, जहां शुरुआत की जगह और मंज़िल की जानकारी दिए गए "start" और "end" से सेट किए जाते हैं ड्रॉपडाउन सूचियों में मान. DirectionsRenderer यहां दी गई लाइन के बीच में पॉलीलाइन दिखाने का तरीका हैंडल करता है और मार्कर की शुरुआत की जगह पर और वेपॉइंट, अगर लागू हो.

function initMap() {
  var directionsService = new google.maps.DirectionsService();
  var directionsRenderer = new google.maps.DirectionsRenderer();
  var chicago = new google.maps.LatLng(41.850033, -87.6500523);
  var mapOptions = {
    zoom:7,
    center: chicago
  }
  var map = new google.maps.Map(document.getElementById('map'), mapOptions);
  directionsRenderer.setMap(map);
}

function calcRoute() {
  var start = document.getElementById('start').value;
  var end = document.getElementById('end').value;
  var request = {
    origin: start,
    destination: end,
    travelMode: 'DRIVING'
  };
  directionsService.route(request, function(result, status) {
    if (status == 'OK') {
      directionsRenderer.setDirections(result);
    }
  });
}

एचटीएमएल के मुख्य भाग में:

<div>
<strong>Start: </strong>
<select id="start" onchange="calcRoute();">
  <option value="chicago, il">Chicago</option>
  <option value="st louis, mo">St Louis</option>
  <option value="joplin, mo">Joplin, MO</option>
  <option value="oklahoma city, ok">Oklahoma City</option>
  <option value="amarillo, tx">Amarillo</option>
  <option value="gallup, nm">Gallup, NM</option>
  <option value="flagstaff, az">Flagstaff, AZ</option>
  <option value="winona, az">Winona</option>
  <option value="kingman, az">Kingman</option>
  <option value="barstow, ca">Barstow</option>
  <option value="san bernardino, ca">San Bernardino</option>
  <option value="los angeles, ca">Los Angeles</option>
</select>
<strong>End: </strong>
<select id="end" onchange="calcRoute();">
  <option value="chicago, il">Chicago</option>
  <option value="st louis, mo">St Louis</option>
  <option value="joplin, mo">Joplin, MO</option>
  <option value="oklahoma city, ok">Oklahoma City</option>
  <option value="amarillo, tx">Amarillo</option>
  <option value="gallup, nm">Gallup, NM</option>
  <option value="flagstaff, az">Flagstaff, AZ</option>
  <option value="winona, az">Winona</option>
  <option value="kingman, az">Kingman</option>
  <option value="barstow, ca">Barstow</option>
  <option value="san bernardino, ca">San Bernardino</option>
  <option value="los angeles, ca">Los Angeles</option>
</select>
</div>

उदाहरण देखें

नीचे दिए गए उदाहरण में अलग-अलग हैट-ऐशबरी से ओशन बीच तक यात्रा के कई साधन सैन फ़्रांसिस्को, कैलिफ़ोर्निया:

function initMap() {
  var directionsService = new google.maps.DirectionsService();
  var directionsRenderer = new google.maps.DirectionsRenderer();
  var haight = new google.maps.LatLng(37.7699298, -122.4469157);
  var oceanBeach = new google.maps.LatLng(37.7683909618184, -122.51089453697205);
  var mapOptions = {
    zoom: 14,
    center: haight
  }
  var map = new google.maps.Map(document.getElementById('map'), mapOptions);
  directionsRenderer.setMap(map);
}

function calcRoute() {
  var selectedMode = document.getElementById('mode').value;
  var request = {
      origin: haight,
      destination: oceanBeach,
      // Note that JavaScript allows us to access the constant
      // using square brackets and a string value as its
      // "property."
      travelMode: google.maps.TravelMode[selectedMode]
  };
  directionsService.route(request, function(response, status) {
    if (status == 'OK') {
      directionsRenderer.setDirections(response);
    }
  });
}

एचटीएमएल के मुख्य भाग में:

<div>
<strong>Mode of Travel: </strong>
<select id="mode" onchange="calcRoute();">
  <option value="DRIVING">Driving</option>
  <option value="WALKING">Walking</option>
  <option value="BICYCLING">Bicycling</option>
  <option value="TRANSIT">Transit</option>
</select>
</div>

उदाहरण देखें

DirectionsRenderer न सिर्फ़ डिसप्ले हैंडल करता है और उससे जुड़े मार्कर का इस्तेमाल करती हैं, लेकिन इन्हें हैंडल भी कर सकती हैं निर्देशों को टेक्स्ट के तौर पर, चरणों की सीरीज़ के तौर पर दिखाया गया है. ऐसा करें तो, अपने इस नंबर पर setPanel() को कॉल करें DirectionsRenderer की वजह से, इसे <div> जिसमें यह जानकारी दिखाना है. ऐसा करने से, यह भी पक्का हो जाता है कि आपके पास सही कॉपीराइट वाला कॉन्टेंट है और ऐसी कोई चेतावनी दी जा सकती है जो नतीजा.

टेक्स्ट के तौर पर निर्देश, ब्राउज़र के पसंदीदा भाषा सेटिंग, या तब language का इस्तेमाल करके, एपीआई JavaScript लोड करना पैरामीटर. (ज़्यादा जानकारी के लिए, स्थानीय भाषा के अनुसार.) ट्रांज़िट दिशानिर्देशों के मामले में, समय उस ट्रांज़िट स्टॉप के टाइम ज़ोन में दिखाया जाएगा.

नीचे दिया गया उदाहरण, ऊपर दिखाए गए उदाहरण जैसा है, लेकिन इसमें एक <div> पैनल शामिल होता है, जिसमें दिशा-निर्देश दिखाएं:

function initMap() {
  var directionsService = new google.maps.DirectionsService();
  var directionsRenderer = new google.maps.DirectionsRenderer();
  var chicago = new google.maps.LatLng(41.850033, -87.6500523);
  var mapOptions = {
    zoom:7,
    center: chicago
  }
  var map = new google.maps.Map(document.getElementById('map'), mapOptions);
  directionsRenderer.setMap(map);
  directionsRenderer.setPanel(document.getElementById('directionsPanel'));
}

function calcRoute() {
  var start = document.getElementById('start').value;
  var end = document.getElementById('end').value;
  var request = {
    origin:start,
    destination:end,
    travelMode: 'DRIVING'
  };
  directionsService.route(request, function(response, status) {
    if (status == 'OK') {
      directionsRenderer.setDirections(response);
    }
  });
}

एचटीएमएल के मुख्य भाग में:

<div id="map" style="float:left;width:70%;height:100%"></div>
<div id="directionsPanel" style="float:right;width:30%;height:100%"></div>

उदाहरण देखें

दिशा-निर्देश के नतीजे का ऑब्जेक्ट

दिशा-निर्देशों का अनुरोध भेजते समय DirectionsService, आपको जवाब मिलता है इसमें ये चीज़ें शामिल होती हैं स्टेटस कोड और नतीजा होता है, जो कि DirectionsResult होता है ऑब्जेक्ट है. DirectionsResult, एक लिटरल वैल्यू है इसमें ये फ़ील्ड शामिल होंगे:

  • geocoded_waypoints[] में DirectionsGeocodedWaypoint ऑब्जेक्ट, हर एक में शामिल है शुरुआत की जगह, मंज़िल, और वेपॉइंट के जियोकोडिंग के बारे में जानकारी.
  • routes[] में DirectionsRoute ऑब्जेक्ट. हर रास्ता एक रास्ता दिखाता है. शुरुआत की जगह से मंज़िल तक पहुंचने के लिए, DirectionsRequest. आम तौर पर, सिर्फ़ एक रास्ता किसी निश्चित अनुरोध के लिए लौटाया जाता है, जब तक कि अनुरोध provideRouteAlternatives फ़ील्ड को इस पर सेट किया गया है true, जिसमें एक से ज़्यादा रास्ते दिखाए जा सकते हैं.

ध्यान दें: via_waypoint प्रॉपर्टी अब काम नहीं करती पर भी हैं. वर्शन 3.27, एपीआई का आखिरी वर्शन है. इसमें वेपॉइंट के ज़रिए ज़्यादा सुविधाएं जोड़ी जाती हैं पर भी हैं. एपीआई के 3.28 और इसके बाद वाले वर्शन के लिए, लागू करने का काम जारी रखा जा सकता है वैकल्पिक मार्गों को खींचना अक्षम करके दिशानिर्देश सेवा का उपयोग करके खींचने योग्य दिशा-निर्देश. सिर्फ़ मुख्य रास्ते को एक जगह से दूसरी जगह ले जाया जा सकता है. उपयोगकर्ता मुख्य रास्ते को तब तक खींच सकते हैं, जब तक कि वह कोई दूसरा रास्ता नहीं दिखेगा.

दिशा-निर्देश जियोकोड किया गया वेपॉइंट

DirectionsGeocodedWaypoint में इसकी जियोकोडिंग के बारे में विवरण है शुरुआत की जगह, मंज़िल, और वेपॉइंट.

DirectionsGeocodedWaypoint, एक ऐसा ऑब्जेक्ट है जो लिटरल वैल्यू है ये फ़ील्ड शामिल होंगे:

  • geocoder_status, जियोकोडिंग ऑपरेशन से मिले स्टेटस कोड के बारे में बताता है. इस फ़ील्ड में ये वैल्यू हो सकती हैं.
    • "OK" से पता चलता है कि कोई गड़बड़ी नहीं हुई; पते को सफलतापूर्वक पार्स कर दिया गया था और कम से कम एक जियोकोड लौटाया गया.
    • "ZERO_RESULTS" बताता है कि जियोकोड सफल रहा, लेकिन कोई नतीजा नहीं मिला. ऐसा तब हो सकता है, जब जियोकोडर को ऐसे address से पास किया गया हो जो मौजूद नहीं है.
  • partial_match बताता है कि जियोकोडर वापस नहीं आया मूल अनुरोध के लिए एग्ज़ैक्ट मैच है. हालांकि, यह किया गया है. हो सकता है कि आप गलत स्पेलिंग के लिए मूल अनुरोध और/या अधूरा पता.

    आंशिक मिलान अक्सर उन सड़क के पतों के लिए होते हैं जो मौजूद नहीं हैं उस मोहल्ला के भीतर जहां आपने अनुरोध किया है. 'कुछ हद तक मैच' वाले कीवर्ड भी हो सकते हैं जब कोई अनुरोध एक ही इलाके में दो या दो से ज़्यादा जगहों से मेल खाता है, तब दिखाया जाता है. उदाहरण के लिए, "Hillpar St, Bristol, UK" दोनों के लिए आंशिक मिलान देगा हेनरी स्ट्रीट और हेनरीएटा स्ट्रीट. ध्यान दें कि अगर किसी अनुरोध में गलत स्पेलिंग वाला पता कॉम्पोनेंट, जियोकोडिंग सेवा किसी अन्य विकल्प का सुझाव दे सकती है इससे पहले ही अपने कारोबार के हिसाब से name@yourcompany.com जैसा कोई ईमेल पता बनाएं. इस तरह ट्रिगर किए गए सुझावों को भी आंशिक तौर पर मार्क किया जाएगा मिलान.

  • place_idकिसी जगह का यूनीक आइडेंटिफ़ायर होता है. इसका इस्तेमाल किया जा सकता है के साथ काम करता है. उदाहरण के लिए, place_id का इस्तेमाल किया जा सकता है Google स्थल के साथ एपीआई लाइब्रेरी का इस्तेमाल करके स्थानीय कारोबार के बारे में जानकारी मिलती है, जैसे कि फ़ोन नंबर, कारोबार के खुले होने का समय, उपयोगकर्ताओं की समीक्षाएं वगैरह. ज़्यादा जानकारी के लिए, जगह के आईडी की खास जानकारी.
  • types[] एक कलेक्शन है, जो वैल्यू के type को दिखाता है परिणाम मिला. इस अरे में, शून्य या उससे ज़्यादा ऐसे टैग का सेट है जो नतीजे में मिलने वाली सुविधा का टाइप. उदाहरण के लिए, "शिकागो" "जगह" दिखाता है जिससे पता चलता है कि "शिकागो" शहर है, और "राजनैतिक" भी दिखाता है जिससे पता चलता है कि यह एक राजनैतिक इकाई है.

दिशा-निर्देश मार्ग

ध्यान दें: लेगसी DirectionsTrip ऑब्जेक्ट में का नाम बदलकर DirectionsRoute कर दिया गया है. ध्यान दें कि रूट का मतलब है, अब सिर्फ़ सफ़र की शुरुआत से लेकर आखिरी तक माता-पिता की यात्रा का एक हिस्सा.

DirectionsRoute में यहां से एक नतीजा मिला है का उपयोग करें. इस रास्ते में ये शामिल हो सकते हैं एक या ज़्यादा पैर (DirectionsLeg टाइप के) यह इस बात पर निर्भर करता है कि कोई वेपॉइंट तय किया गया है या नहीं. साथ ही, रूट में कॉपीराइट और चेतावनी की जानकारी भी शामिल है, जो उपयोगकर्ता को रूटिंग जानकारी के अलावा दिखाया जाएगा.

DirectionsRoute, एक ऐसा ऑब्जेक्ट है जो लिटरल वैल्यू है ये फ़ील्ड शामिल होंगे:

  • legs[] में DirectionsLeg ऑब्जेक्ट, जिनमें से हर एक में शामिल है दो जगहों से, रास्ते के किसी हिस्से के बारे में जानकारी दिए गए रास्ते के अंदर दिखेंगे. हर सदस्य के लिए अलग पैर होगा वेपॉइंट या गंतव्य दर्ज किया गया. (बिना वेपॉइंट वाले रास्ते में सिर्फ़ एक DirectionsLeg.) हर पैर में DirectionStep की सीरीज़ में बनाया गया है.
  • waypoint_order में एक कलेक्शन है यह बताता है कि आपके दिए गए फ़ॉर्मूला के आधार पर तैयार किया गया रूट इस अरे में कोई बदला हुआ क्रम हो सकता है, अगर DirectionsRequest पास हो गया था optimizeWaypoints: true.
  • overview_path में LatLngs जो अनुमानित (स्मूद) दिखाती हैं से मिलता-जुलता रास्ता मिल सकता है.
  • overview_polyline में एक points मौजूद है वह ऑब्जेक्ट जिसमें कोड में बदला गया कोड मौजूद होता है पॉलीलाइन रूट को दिखाने के लिए. यह पॉलीलाइन एक अनुमानित (स्मूद) पाथ है चुनें.
  • bounds में LatLngBounds शामिल है इस रूट पर पॉलीलाइन की सीमाओं को दिखाता है.
  • copyrights में कॉपीराइट टेक्स्ट शामिल है इस रास्ते के लिए प्रदर्शित किया गया.
  • warnings[] में चेतावनियों का कलेक्शन मौजूद है जब ये दिशानिर्देश दिखाए जा सकेंगे. अगर आपको दिए गए DirectionsRenderer ऑब्जेक्ट का इस्तेमाल करना है, तो आपको इन चेतावनियों को खुद देख और देख सकते हैं.
  • fare में कुल किराया शामिल है (यानी कि कुल किराया टिकट की कीमत) तक पहुंचाता है. इस प्रॉपर्टी को सिर्फ़ ट्रांज़िट के लिए लौटाया जाता है सिर्फ़ ऐसे रास्तों के लिए अनुरोध करता है जहां किराये की जानकारी सभी ट्रांज़िट लेग. इस जानकारी में ये चीज़ें शामिल होती हैं:
    • currency: अगर ISO 4217 मुद्रा कोड से पता चलता है कि रकम किस मुद्रा में दिखाई गई है.
    • value: बताई गई मुद्रा में कुल किराये की रकम पढ़ें.

दिशा-निर्देश लेग

ध्यान दें: लेगसी DirectionsRoute ऑब्जेक्ट में का नाम बदलकर DirectionsLeg कर दिया गया है.

DirectionsLeg, तय किए गए रूट में, शुरुआत की जगह से मंज़िल तक की यात्रा. बिना वेपॉइंट वाले रास्तों के लिए, रास्ते में एक सिंगल "लेग", लेकिन एक या एक से ज़्यादा वेपॉइंट तय करने वाले रूट के लिए, मार्ग में एक या उससे ज़्यादा पैर होंगे, जो कुछ चरणों को पूरा किया जा सकता है.

DirectionsLeg, एक ऐसा ऑब्जेक्ट है जो ये फ़ील्ड शामिल होते हैं:

  • steps[] में DirectionsStep ऑब्जेक्ट, जिनके बारे में जानकारी दे रहा है यात्रा के हर चरण को अलग-अलग चरणों में पूरा करता है.
  • distance से पता चलता है कि कुल दूरी कितनी है इस पैर से, Distance नीचे दिया गया फ़ॉर्म:

    • value मीटर में दूरी बताता है
    • text में स्ट्रिंग के रूप में दिखाया गया डेटा शामिल है दूरी की, जो डिफ़ॉल्ट रूप से इकाइयों में का इस्तेमाल किया गया है. (उदाहरण के लिए, मील का इस्तेमाल इनके लिए किया जाएगा किसी भी ऑरिजिन के लिए यह सुविधा देता है.) आप इसे ओवरराइड कर सकते हैं यूनिट सिस्टम को ख़ास तौर पर ओरिजनल क्वेरी में UnitSystem. ध्यान दें कि चाहे आप किसी भी यूनिट सिस्टम का इस्तेमाल करें, distance.value फ़ील्ड में हमेशा एक वैल्यू होती है मीटर में.

    अगर दूरी की जानकारी नहीं है, तो हो सकता है कि इन फ़ील्ड के बारे में जानकारी न हो.

  • duration से पता चलता है कि यह पैर, Duration ऑब्जेक्ट के तौर पर यह फ़ॉर्म:

    • value से पता चलता है कि अवधि सेकंड.
    • text में स्ट्रिंग के रूप में दिखाया गया डेटा शामिल है अवधि की एक अवधि है.

    अगर अवधि की जानकारी नहीं है, तो ये फ़ील्ड तय नहीं हो सकते.

  • duration_in_traffic से पता चलता है कि यह सुविधा कुल कितने समय तक चलेगी ट्रैफ़िक की मौजूदा स्थितियों को ध्यान में रखते हुए. कॉन्टेंट बनाने duration_in_traffic सिर्फ़ तब दिखता है, जब: सही हैं:

    • अनुरोध में स्टॉपओवर वेपॉइंट शामिल नहीं होते. इसका मतलब यह नहीं है कि जहां stopover, true है, वहां वेपॉइंट शामिल हैं.
    • यह अनुरोध खास तौर पर ड्राइविंग दिशा-निर्देशों के लिए है— mode को driving पर सेट किया गया.
    • departureTime को अनुरोध में drivingOptions फ़ील्ड है.
    • अनुरोध किए गए रास्ते के लिए ट्रैफ़िक का हाल उपलब्ध है.

    duration_in_traffic में ये फ़ील्ड शामिल होते हैं:

    • value, कुल समय को सेकंड में दिखाता है.
    • text में ऐसा कॉन्टेंट मौजूद है जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है अवधि की एक अवधि है.
  • arrival_time में पहुंचने का अनुमानित समय है इस पैर के लिए. यह प्रॉपर्टी सिर्फ़ परिवहन के निर्देशों के लिए दिखाई जाती है. कॉन्टेंट बनाने नतीजा, तीन प्रॉपर्टी के साथ Time ऑब्जेक्ट के तौर पर दिखाया जाता है:
    • JavaScript के तौर पर बताए गए समय को value Date ऑब्जेक्ट.
    • स्ट्रिंग के तौर पर दिए गए समय को text करें. समय है ट्रांज़िट स्टॉप के टाइम ज़ोन में दिखाया जाता है.
    • time_zone में इस स्टेशन का समय क्षेत्र है. कॉन्टेंट बनाने वैल्यू, टाइम ज़ोन का नाम है, जैसा कि IANA समय क्षेत्र डेटाबेस, उदाहरण "अमेरिका/New_York".
  • departure_time में इस समय के लिए प्रस्थान का अनुमानित समय है यह हिस्सा, Time ऑब्जेक्ट के तौर पर बताया गया है. कॉन्टेंट बनाने departure_time केवल ट्रांज़िट दिशानिर्देश के लिए उपलब्ध है.
  • start_location में इस पैर की शुरुआत का LatLng. क्योंकि निर्देश वेब सेवा स्थानों के बीच दिशा-निर्देशों की गणना करती है सबसे नज़दीक के परिवहन विकल्प (आमतौर पर एक सड़क) का उपयोग करके start_location के बीच में यह इस पैर के बताए गए मूल से अलग है, अगर उदाहरण के लिए, कोई सड़क मूल जगह के आस-पास नहीं है.
  • end_location में LatLng शामिल है पैर के गंतव्य के साथ. क्योंकि DirectionsService, जगहों के बीच दिशा-निर्देशों की गणना करता है सबसे नज़दीक के परिवहन विकल्प (आमतौर पर एक सड़क) का उपयोग करके शुरुआती और आखिरी पॉइंट, end_location यह इस लेग के दिए गए गंतव्य से अलग है, अगर उदाहरण के लिए, सड़क गंतव्य के पास नहीं है.
  • start_address में ऐसा पता मौजूद है जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है (आम तौर पर मोहल्ले का पता).

    इस कॉन्टेंट को उसी तरह पढ़ा जाना चाहिए. प्रोग्राम के रूप में GA4 में फ़ॉर्मैट किया गया पता.
  • end_address में ऐसा पता मौजूद है जिसे कोई भी व्यक्ति आसानी से पढ़ सकता है (आम तौर पर मोहल्ले का पता) लिखें.

    इस कॉन्टेंट को उसी तरह पढ़ा जाना चाहिए. प्रोग्राम के रूप में GA4 में फ़ॉर्मैट किया गया पता.

दिशा-निर्देशों के चरण

सबसे ज़्यादा परमाणु इकाई DirectionsStep है दिशा का रास्ता, जिसमें एक चरण के साथ किसी खास, निर्देश दिए गए हों. उदाहरण के लिए, "W पर बाएं मुड़ें. फ़ोर्थ स्ट्रीट" वह चरण जो नहीं है यह सिर्फ़ निर्देश के बारे में बताता है. हालांकि, इसमें दूरी और कुल समय की जानकारी भी शामिल है यहां दी गई जानकारी देखें. उदाहरण के लिए, "I-80 पश्चिम पर मर्ज करें" के तौर पर दिखाया गया चरण इसमें एक "37 मील" की अवधि और "40 मिनट," इससे पता चलता है कि अगले चरण में इस कदम से 37 मील/40 मिनट दूर है.

ट्रांज़िट दिशानिर्देश खोजने के लिए दिशा-निर्देश सेवा का उपयोग करते समय, चरणों के अरे में अतिरिक्त ट्रांज़िट शामिल होगा transit ऑब्जेक्ट के तौर पर, खास जानकारी. अगर आपने दिशा-निर्देशों में परिवहन के कई साधन और पूरी जानकारी शामिल है steps[] कलेक्शन में, पैदल चलने या गाड़ी चलाने के लिए दी जाएगी. उदाहरण के लिए, पैदल चलने के चरण में शुरू और आखिर तक के दिशा-निर्देश शामिल होंगे जगह की जानकारी: "पैदल चलकर इनस ऐवेन्यू और फ़िच सेंट". इस चरण में, steps[] में उस रास्ते के पैदल चलने के दिशा-निर्देश अरे, उदाहरण के लिए: " खातों को उत्तर-पश्चिम की ओर ले जाएं", "अरेलिअस वॉकर पर बाएं मुड़ें", और "Innes Ave पर बाएं मुड़ें".

DirectionsStep, एक ऐसा ऑब्जेक्ट है जो ये फ़ील्ड शामिल होते हैं:

  • instructions में इस चरण के लिए निर्देश दिए गए हैं डालें.
  • distance में इससे तय की गई दूरी है अगले चरण तक सीमित है, Distance ऑब्जेक्ट के तौर पर. (ब्यौरा देखें ऊपर DirectionsLeg में.) इस फ़ील्ड के बारे में जानकारी नहीं हो सकती अगर दूरी की जानकारी नहीं है.
  • duration में अनुमानित समय होता है अगले चरण तक पहुंचने तक, Duration ऑब्जेक्ट. (में दी गई जानकारी देखें DirectionsLeg above.) इस फ़ील्ड के बारे में जानकारी नहीं हो सकती अगर अवधि की जानकारी नहीं है.
  • start_location में जियोकोड किया गया शामिल है इस चरण के शुरुआती पॉइंट का LatLng.
  • end_location में इसका LatLng शामिल है इस चरण का आखिरी पॉइंट.
  • polyline में एक points मौजूद है वह ऑब्जेक्ट जिसमें कोड में बदला गया कोड मौजूद होता है पॉलीलाइन में चरण के बारे में बताया गया है. यह पॉलीलाइन एक अनुमानित (स्मूद) पाथ है चरण पूरा करें.
  • steps[] एक DirectionsStep ऑब्जेक्ट की लिटरल वैल्यू ट्रांज़िट में पैदल चलने या ड्राइविंग के चरणों के लिए विस्तृत दिशा निर्देश शामिल हैं निर्देश. सब-स्टेप की सुविधा, सिर्फ़ बस, मेट्रो वगैरह के रास्ते के लिए उपलब्ध है.
  • travel_mode में TravelMode शामिल है यह चरण पूरा करें. ट्रांज़िट दिशानिर्देश में पैदल और बस, मेट्रो वगैरह के रास्ते के लिए निर्देश.
  • path में LatLngs का एक कलेक्शन होता है, जो बताता है कि .
  • transit में बस, मेट्रो वगैरह से जुड़ी खास जानकारी होती है, जैसे कि पहुंचने का समय और रवानगी का समय, और ट्रांज़िट लाइन का नाम.

सार्वजनिक परिवहन के बारे में खास जानकारी

बस, मेट्रो वगैरह के रास्ते के लिए ऐसी अतिरिक्त जानकारी मिलती है जो काम की नहीं है परिवहन के अन्य साधन हैं. ये अन्य प्रॉपर्टी दिखाई गई हैं TransitDetails ऑब्जेक्ट के ज़रिए, इसकी प्रॉपर्टी के तौर पर लौटाया जाता है DirectionsStep. TransitDetails ऑब्जेक्ट से तो आपको TransitStop की अतिरिक्त जानकारी का ऐक्सेस मिलेगा, TransitLine, TransitAgency, और VehicleType ऑब्जेक्ट हैं, जैसा नीचे बताया गया है.

ट्रांज़िट विवरण

TransitDetails ऑब्जेक्ट यह जानकारी देता है प्रॉपर्टी:

  • arrival_stop में शामिल है TransitStop ऑब्जेक्ट जो आने वाले स्टेशन/स्टॉप की जानकारी देता है प्रॉपर्टी:
    • बस, मेट्रो वगैरह के स्टेशन/स्टॉप का नाम name. जैसे "यूनियन स्क्वेयर".
    • बस, मेट्रो वगैरह के स्टेशन/स्टॉप की जगह location, LatLng के तौर पर दिखाया जाता है.
  • departure_stop में एक TransitStop शामिल है जाने के स्टेशन/स्टॉप को दिखाने वाला ऑब्जेक्ट.
  • arrival_time में पहुंचने का समय होता है, जिसे तीन प्रॉपर्टी वाला Time ऑब्जेक्ट:
    • JavaScript के तौर पर बताए गए समय को value Date ऑब्जेक्ट.
    • स्ट्रिंग के तौर पर दिए गए समय को text करें. समय है ट्रांज़िट स्टॉप के टाइम ज़ोन में दिखाया जाता है.
    • time_zone में इस स्टेशन का समय क्षेत्र है. कॉन्टेंट बनाने वैल्यू, टाइम ज़ोन का नाम है, जैसा कि IANA समय क्षेत्र डेटाबेस, उदाहरण "अमेरिका/New_York".
  • departure_time में जाने का समय शामिल है, जिसे Time ऑब्जेक्ट.
  • headsign यह बताता है कि किस दिशा में यात्रा करनी है लाइन मैप करें, क्योंकि यह वाहन पर या जाने के स्टॉप पर मार्क है. अक्सर यह टर्मिनस स्टेशन होगा.
  • headway उपलब्ध होने पर, यह अनुमानित संख्या बताता है इस समय उसी स्टॉप से जाने वाली फ़्लाइट के बीच सेकंड का समय. इसके लिए उदाहरण के लिए, headway की वैल्यू 600 होने पर, आपको दस अगर आपकी बस छूट सकती है, तो एक मिनट इंतज़ार करें.
  • line में एक TransitLine शामिल है ऑब्जेक्ट लिटरल, जिसमें इस्तेमाल की गई ट्रांज़िट लाइन के बारे में जानकारी है यह चरण पूरा करें. TransitLine, इसका नाम और ऑपरेटर बताता है इसके साथ ही, इस लाइन में बताई गई अन्य प्रॉपर्टी भी शामिल हैं. TransitLine देखें.
  • num_stops में इस चरण में स्टॉप की संख्या शामिल है. इसमें आने का स्टॉप शामिल है, लेकिन जाने का स्टॉप नहीं. उदाहरण के लिए, अगर आपके निर्देशों में स्टॉप A से जाना, स्टॉप B से गुजरना और C और स्टॉप D पर पहुंचने पर, num_stops का मान 3 होगा.

ट्रां‍ज़िट लाइन

TransitLine ऑब्जेक्ट इन प्रॉपर्टी को दिखाता है:

  • name में इस ट्रांज़िट लाइन का पूरा नाम है. उदाहरण "7 एवेन्यू एक्सप्रेस" या "14th सेंट क्रॉसटाउन".
  • short_name में इस ट्रांज़िट का छोटा नाम शामिल है लाइन. आम तौर पर, यह एक लाइन नंबर होगा, जैसे कि "2" या "M14".
  • agencies एक कलेक्शन है, जिसमें एक कॉलम में TransitAgency ऑब्जेक्ट. TransitAgency ऑब्जेक्ट इस लाइन के ऑपरेटर के बारे में जानकारी देता है. इसमें ये प्रॉपर्टी:
    • name में सार्वजनिक परिवहन एजेंसी का नाम होता है.
    • phone में ट्रांज़िट का फ़ोन नंबर शामिल है एजेंसी.
    • url में ट्रांसपोर्ट एजेंसी का यूआरएल होता है.

    ध्यान दें: अगर मैन्युअल तरीके से बस, मेट्रो वगैरह के रास्ते के लिए दिशा-निर्देश रेंडर किए जा रहे हैं DirectionsRenderer ऑब्जेक्ट का इस्तेमाल करने के बजाय, आपको यात्रा की सेवा देने वाली ट्रांसपोर्ट एजेंसियों के नाम और उनके यूआरएल दिखाएं नतीजे.

  • url में इस ट्रांज़िट लाइन का यूआरएल दिया गया है की पहचान की है.
  • icon में इस लाइन से जुड़े आइकॉन का यूआरएल होता है. ज़्यादातर शहरों में ऐसे सामान्य आइकॉन इस्तेमाल किए जाएंगे जो वाहनों के टाइप के हिसाब से अलग-अलग होते हैं. कुछ सूचनाएं मिल रही हैं बस, मेट्रो वगैरह का रूट मैप, जैसे कि न्यूयॉर्क सबवे सिस्टम के आइकॉन के लिए खास तौर पर वह पंक्ति.
  • color में आम तौर पर, इसके लिए साइनेज में इस्तेमाल होने वाला रंग शामिल होता है बस, मेट्रो वगैरह. रंग को हेक्स स्ट्रिंग के रूप में तय किया जाएगा, जैसे: #FF0033.
  • text_color में उस टेक्स्ट का रंग होता है जिसका इस्तेमाल आम तौर पर किया जाता है इस लाइन का साइनेज. रंग को हेक्स स्ट्रिंग के तौर पर दिखाया जाएगा.
  • vehicle में एक Vehicle ऑब्जेक्ट है, जो इसमें ये प्रॉपर्टी शामिल होती हैं:
    • name में इस लाइन पर मौजूद वाहन का नाम होता है. जैसे "सबवे."
    • type में इस लाइन पर इस्तेमाल किए गए वाहन की जानकारी मौजूद है. वाहन के टाइप से जुड़ा दस्तावेज़ देखें इस्तेमाल की जा सकने वाली वैल्यू की पूरी सूची.
    • icon में उस आइकॉन का यूआरएल होता है जो आम तौर पर इससे जुड़ा होता है जा सकते हैं.
    • local_icon में, इससे जुड़े आइकॉन का यूआरएल शामिल है स्थानीय परिवहन साइन बोर्ड के आधार पर इस तरह का वाहन चुनें.

वाहन किस तरह का है

VehicleType ऑब्जेक्ट यह जानकारी देता है प्रॉपर्टी:

मान परिभाषा
VehicleType.RAIL रेल.
VehicleType.METRO_RAIL लाइट रेल ट्रांज़िट.
VehicleType.SUBWAY अंडरग्राउंड लाइट रेल.
VehicleType.TRAM ज़मीन पर लगी लाइट रेल के ऊपर.
VehicleType.MONORAIL मोनोरेल.
VehicleType.HEAVY_RAIL भारी रेल.
VehicleType.COMMUTER_TRAIN कम्यूटर रेल.
VehicleType.HIGH_SPEED_TRAIN हाई स्पीड ट्रेन.
VehicleType.BUS बस.
VehicleType.INTERCITY_BUS एक से दूसरे शहर जाने वाली बस.
VehicleType.TROLLEYBUS ट्रॉली बस.
VehicleType.SHARE_TAXI शेयर टैक्सी एक ऐसी बस है जिसमें ड्रॉप करने और पिक अप करने की सुविधा होती है की यात्रा के दौरान यात्रा करने वालों की संख्या बढ़ाई जा सकती है.
VehicleType.FERRY फ़ेरी.
VehicleType.CABLE_CAR ऐसा वाहन जो केबल की मदद से, आम तौर पर ज़मीन पर चलता है. एरियल केबल कारें VehicleType.GONDOLA_LIFT टाइप की हो सकती हैं.
VehicleType.GONDOLA_LIFT हवाई केबल कार.
VehicleType.FUNICULAR ऐसा वाहन जिसे केबल की मदद से काफ़ी ढाला जा रहा हो. फ़्यूनिक्यूलर आम तौर पर, इसमें दो कारें होती हैं. हर कार का वज़न काउंटर के हिसाब से होता है अन्य के लिए.
VehicleType.OTHER बाकी सभी वाहन इस तरह के दिखेंगे.

निर्देशों के नतीजों की जांच की जा रही है

DirectionsResults कॉम्पोनेंट — DirectionsRoute, DirectionsLeg, DirectionsStep और TransitDetails — हो सकता है निरीक्षण किया गया और किसी भी दिशा-निर्देश के जवाब को पार्स करते समय इस्तेमाल किया जाता है.

अहम जानकारी: अगर आपने बस, मेट्रो वगैरह को रेंडर किया है, तो DirectionsRenderer का इस्तेमाल करने के बजाय, मैन्युअल तरीके से निर्देश दें ऑब्जेक्ट है, तो आपको ट्रांज़िट एजेंसियों के नाम और URL दिखाने होंगे यात्रा के नतीजे उपलब्ध कराना.

नीचे दिए गए उदाहरण में कुछ पर्यटकों के लिए पैदल चलने की जानकारी दिखाई गई है दिल्ली में घूमने-फिरने की बेहतरीन जगहें. हम रूट की जांच हर चरण के लिए मार्कर जोड़ने के लिए DirectionsStep और InfoWindow में जानकारी अटैच करने के लिए, इंस्ट्रक्शनल होने का तरीका टेक्स्ट डालें.

ध्यान दें: हम पैदल जाने के लिए दिशा-निर्देशों का हिसाब लगा रहे हैं. इसलिए, हम इन्हें किसी अलग <div> पैनल में, उपयोगकर्ता को मिलने वाली किसी भी चेतावनी के बारे में बताएं.

var map;
var directionsRenderer;
var directionsService;
var stepDisplay;
var markerArray = [];

function initMap() {
  // Instantiate a directions service.
  directionsService = new google.maps.DirectionsService();

  // Create a map and center it on Manhattan.
  var manhattan = new google.maps.LatLng(40.7711329, -73.9741874);
  var mapOptions = {
    zoom: 13,
    center: manhattan
  }
  map = new google.maps.Map(document.getElementById('map'), mapOptions);

  // Create a renderer for directions and bind it to the map.
  var rendererOptions = {
    map: map
  }
  directionsRenderer = new google.maps.DirectionsRenderer(rendererOptions)

  // Instantiate an info window to hold step text.
  stepDisplay = new google.maps.InfoWindow();
}

function calcRoute() {

  // First, clear out any existing markerArray
  // from previous calculations.
  for (i = 0; i < markerArray.length; i++) {
    markerArray[i].setMap(null);
  }

  // Retrieve the start and end locations and create
  // a DirectionsRequest using WALKING directions.
  var start = document.getElementById('start').value;
  var end = document.getElementById('end').value;
  var request = {
      origin: start,
      destination: end,
      travelMode: 'WALKING'
  };

  // Route the directions and pass the response to a
  // function to create markers for each step.
  directionsService.route(request, function(response, status) {
    if (status == "OK") {
      var warnings = document.getElementById("warnings_panel");
      warnings.innerHTML = "" + response.routes[0].warnings + "";
      directionsRenderer.setDirections(response);
      showSteps(response);
    }
  });
}

function showSteps(directionResult) {
  // For each step, place a marker, and add the text to the marker's
  // info window. Also attach the marker to an array so we
  // can keep track of it and remove it when calculating new
  // routes.
  var myRoute = directionResult.routes[0].legs[0];

  for (var i = 0; i < myRoute.steps.length; i++) {
      var marker = new google.maps.Marker({
        position: myRoute.steps[i].start_point,
        map: map
      });
      attachInstructionText(marker, myRoute.steps[i].instructions);
      markerArray[i] = marker;
  }
}

function attachInstructionText(marker, text) {
  google.maps.event.addListener(marker, 'click', function() {
    stepDisplay.setContent(text);
    stepDisplay.open(map, marker);
  });
}

एचटीएमएल के मुख्य भाग में:

<div>
<strong>Start: </strong>
<select id="start">
  <option value="penn station, new york, ny">Penn Station</option>
  <option value="grand central station, new york, ny">Grand Central Station</option>
  <option value="625 8th Avenue New York NY 10018">Port Authority Bus Terminal</option>
  <option value="staten island ferry terminal, new york, ny">Staten Island Ferry Terminal</option>
  <option value="101 E 125th Street, New York, NY">Harlem - 125th St Station</option>
</select>
<strong>End: </strong>
<select id="end" onchange="calcRoute();">
  <option value="260 Broadway New York NY 10007">City Hall</option>
  <option value="W 49th St & 5th Ave, New York, NY 10020">Rockefeller Center</option>
  <option value="moma, New York, NY">MOMA</option>
  <option value="350 5th Ave, New York, NY, 10118">Empire State Building</option>
  <option value="253 West 125th Street, New York, NY">Apollo Theatre</option>
  <option value="1 Wall St, New York, NY">Wall St</option>
</select>
<div>

उदाहरण देखें

रास्तों में वेपॉइंट का इस्तेमाल करना

जैसा कि DirectionsRequest में बताया गया है, आप चाहें तो वेपॉइंट भी तय कर सकते हैं (DirectionsWaypoint प्रकार का) गणना करते समय पैदल चलने, साइकिल चलाने या ड्राइविंग के लिए दिशा-निर्देश सेवा का उपयोग करने वाले रास्ते निर्देश. बस, मेट्रो वगैरह के रास्ते के लिए वेपॉइंट उपलब्ध नहीं हैं. वेपॉइंट आपको अतिरिक्त जगहों से होकर गुज़रने वाले रास्तों की गणना करने की सुविधा देते हैं, इस मामले में, लौटाया गया रास्ता दिए गए वेपॉइंट से होकर गुज़रता है.

waypoint में ये फ़ील्ड होते हैं:

  • location (ज़रूरी है) पता बताता है का हिस्सा हैं.
  • stopover (ज़रूरी नहीं) बताता है कि यह वेपॉइंट, सही रास्ते (true) का एक स्टॉप है या इसके बजाय उपयोगकर्ता को यहां दिए गए लिंक पर जाना होगा जगह (false). स्टॉप ओवर true हैं डिफ़ॉल्ट रूप से.

दिशा-निर्देश सेवा डिफ़ॉल्ट रूप से, दिए गए वेपॉइंट को उनके दिए गए क्रम में. वैकल्पिक रूप से, आप दिशा-निर्देश सेवा को अनुमति देने के लिए, DirectionsRequest के अंदर optimizeWaypoints: true को पास कर सकता है वेपॉइंट को फिर से व्यवस्थित करके, दिए गए रास्ते को ऑप्टिमाइज़ करें और बेहतर ऑर्डर बनाया है. (यह ऑप्टिमाइज़ेशन, ट्रैवलिंग सेल्सपर्सन से जुड़ी समस्या.) यात्रा में लगने वाला समय, मुख्य फ़ैक्टर है ऑप्टिमाइज़ किया गया, लेकिन अन्य कारक, जैसे दूरी, मोड़ों की संख्या वगैरह को ध्यान में रखा जा सकता है. सभी वेपॉइंट दिशा-निर्देश सेवा के लिए स्टॉपओवर होने चाहिए, ताकि वे रूट

अगर आप दिशा-निर्देश सेवा को ऐसा करने के लिए, उसका क्रम इसके अंदर मौजूद waypoint_order फ़ील्ड DirectionsResult ऑब्जेक्ट.

नीचे दिए गए उदाहरण में क्रॉस-कंट्री रूट की गणना की गई है अमेरिका में हम अलग-अलग स्टार्ट पॉइंट, एंड पॉइंट, और वेपॉइंट शामिल हैं. (एक से ज़्यादा वेपॉइंट चुनने के लिए, दबाएं सूची में मौजूद आइटम को चुनते समय Ctrl-क्लिक करें.) ध्यान दें कि हम routes.start_address की जांच करते हैं और उपलब्ध कराने के लिए routes.end_address हमें हर रास्ते के प्रारंभ और अंत बिंदु के लिए टेक्स्ट के साथ भेजें.

TypeScript

function initMap(): void {
  const directionsService = new google.maps.DirectionsService();
  const directionsRenderer = new google.maps.DirectionsRenderer();
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 6,
      center: { lat: 41.85, lng: -87.65 },
    }
  );

  directionsRenderer.setMap(map);

  (document.getElementById("submit") as HTMLElement).addEventListener(
    "click",
    () => {
      calculateAndDisplayRoute(directionsService, directionsRenderer);
    }
  );
}

function calculateAndDisplayRoute(
  directionsService: google.maps.DirectionsService,
  directionsRenderer: google.maps.DirectionsRenderer
) {
  const waypts: google.maps.DirectionsWaypoint[] = [];
  const checkboxArray = document.getElementById(
    "waypoints"
  ) as HTMLSelectElement;

  for (let i = 0; i < checkboxArray.length; i++) {
    if (checkboxArray.options[i].selected) {
      waypts.push({
        location: (checkboxArray[i] as HTMLOptionElement).value,
        stopover: true,
      });
    }
  }

  directionsService
    .route({
      origin: (document.getElementById("start") as HTMLInputElement).value,
      destination: (document.getElementById("end") as HTMLInputElement).value,
      waypoints: waypts,
      optimizeWaypoints: true,
      travelMode: google.maps.TravelMode.DRIVING,
    })
    .then((response) => {
      directionsRenderer.setDirections(response);

      const route = response.routes[0];
      const summaryPanel = document.getElementById(
        "directions-panel"
      ) as HTMLElement;

      summaryPanel.innerHTML = "";

      // For each route, display summary information.
      for (let i = 0; i < route.legs.length; i++) {
        const routeSegment = i + 1;

        summaryPanel.innerHTML +=
          "<b>Route Segment: " + routeSegment + "</b><br>";
        summaryPanel.innerHTML += route.legs[i].start_address + " to ";
        summaryPanel.innerHTML += route.legs[i].end_address + "<br>";
        summaryPanel.innerHTML += route.legs[i].distance!.text + "<br><br>";
      }
    })
    .catch((e) => window.alert("Directions request failed due to " + status));
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

function initMap() {
  const directionsService = new google.maps.DirectionsService();
  const directionsRenderer = new google.maps.DirectionsRenderer();
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 6,
    center: { lat: 41.85, lng: -87.65 },
  });

  directionsRenderer.setMap(map);
  document.getElementById("submit").addEventListener("click", () => {
    calculateAndDisplayRoute(directionsService, directionsRenderer);
  });
}

function calculateAndDisplayRoute(directionsService, directionsRenderer) {
  const waypts = [];
  const checkboxArray = document.getElementById("waypoints");

  for (let i = 0; i < checkboxArray.length; i++) {
    if (checkboxArray.options[i].selected) {
      waypts.push({
        location: checkboxArray[i].value,
        stopover: true,
      });
    }
  }

  directionsService
    .route({
      origin: document.getElementById("start").value,
      destination: document.getElementById("end").value,
      waypoints: waypts,
      optimizeWaypoints: true,
      travelMode: google.maps.TravelMode.DRIVING,
    })
    .then((response) => {
      directionsRenderer.setDirections(response);

      const route = response.routes[0];
      const summaryPanel = document.getElementById("directions-panel");

      summaryPanel.innerHTML = "";

      // For each route, display summary information.
      for (let i = 0; i < route.legs.length; i++) {
        const routeSegment = i + 1;

        summaryPanel.innerHTML +=
          "<b>Route Segment: " + routeSegment + "</b><br>";
        summaryPanel.innerHTML += route.legs[i].start_address + " to ";
        summaryPanel.innerHTML += route.legs[i].end_address + "<br>";
        summaryPanel.innerHTML += route.legs[i].distance.text + "<br><br>";
      }
    })
    .catch((e) => window.alert("Directions request failed due to " + status));
}

window.initMap = initMap;

वेपॉइंट की सीमाएं और पाबंदियां

इस्तेमाल की ये सीमाएं और पाबंदियां लागू होती हैं:

  • दिशा-निर्देश सेवा का उपयोग करते समय स्वीकृत वेपॉइंट की अधिकतम संख्या की संख्या 25 है, शुरुआत की जगह और मंज़िल को भी शामिल करता है. सीमाएं समान हैं दिशा-निर्देशों की एपीआई वेब सेवा पर क्लिक करें.
  • के लिए निर्देशों की एपीआई वेब सेवा, ग्राहकों को 25 वेपॉइंट, शुरुआत की जगह, और मंज़िल की जानकारी भी शामिल होती है.
  • Google Maps Platform प्रीमियम प्लान के ग्राहकों को सिर्फ़ 25 दिनों की अनुमति है वेपॉइंट, शुरुआत की जगह, और मंज़िल की जानकारी भी शामिल होती है.
  • बस, मेट्रो वगैरह के रास्ते के लिए वेपॉइंट का इस्तेमाल नहीं किया जा सकता.

खींचने और छोड़ने लायक दिशा-निर्देश

उपयोगकर्ता साइकल चलाने, पैदल चलने या ड्राइविंग के दिशा-निर्देशों में बदलाव कर सकते हैं. DirectionsRenderer डाइनैमिक तौर पर, अगर वे खींचें और छोड़ें, जिससे उपयोगकर्ता को चुनने और बदलाव करने की सुविधा मिलती है मैप पर इसके नतीजे के तौर पर मिले पाथ पर क्लिक करके और उसे खींचकर रूट ले जाते हैं. बताएं कि रेंडरर का डिसप्ले, खींचने और छोड़ने लायक है या नहीं draggable प्रॉपर्टी सेट करके, निर्देश पाने के लिए true तक. ट्रांज़िट दिशा-निर्देशों को खींचने और छोड़ने लायक नहीं बनाया जा सकता.

जब दिशा-निर्देशों को खींचने और छोड़ने लायक बनाया जाता है, तो उपयोगकर्ता रेंडर किए गए नतीजे का पाथ (या वेपॉइंट) और संकेत में बताए गए कॉम्पोनेंट को किसी नई जगह पर ले जाएं. DirectionsRenderer बदला गया पाथ दिखाने के लिए डायनैमिक तौर पर अपडेट होगा. रिलीज़ होने के बाद, ट्रांज़िशनल वेपॉइंट मैप में जोड़ दिया जाएगा (यह एक छोटा सफ़ेद मार्कर). किसी पथ सेगमेंट को चुनने और उसे इधर-उधर ले जाने पर चुनें और चलते समय मार्ग के उस पैर को बदलें वेपॉइंट मार्कर (स्टार्ट और एंड पॉइंट सहित) आपकी साइट के उस रास्ते के वेपॉइंट से गुजरने वाले रास्ते के पैर.

ड्रैग किए जा सकने वाले दिशा-निर्देशों में बदलाव किया जाता है और इन्हें क्लाइंट-साइड रेंडर किया जाता है, शायद आप directions_changed को मॉनिटर और मैनेज करना चाहें DirectionsRenderer पर होने वाला इवेंट उपयोगकर्ता ने दिखाए गए निर्देशों में बदलाव किया है.

नीचे दिया गया कोड, ऑस्ट्रेलिया के पश्चिमी तट पर पर्थ से यात्रा के बारे में बताता है का सफ़र किया जा सकता है. यह कोड, कुल दूरी अपडेट करने के लिए directions_changed इवेंट है का हिस्सा हैं.

TypeScript

function initMap(): void {
  const map = new google.maps.Map(
    document.getElementById("map") as HTMLElement,
    {
      zoom: 4,
      center: { lat: -24.345, lng: 134.46 }, // Australia.
    }
  );

  const directionsService = new google.maps.DirectionsService();
  const directionsRenderer = new google.maps.DirectionsRenderer({
    draggable: true,
    map,
    panel: document.getElementById("panel") as HTMLElement,
  });

  directionsRenderer.addListener("directions_changed", () => {
    const directions = directionsRenderer.getDirections();

    if (directions) {
      computeTotalDistance(directions);
    }
  });

  displayRoute(
    "Perth, WA",
    "Sydney, NSW",
    directionsService,
    directionsRenderer
  );
}

function displayRoute(
  origin: string,
  destination: string,
  service: google.maps.DirectionsService,
  display: google.maps.DirectionsRenderer
) {
  service
    .route({
      origin: origin,
      destination: destination,
      waypoints: [
        { location: "Adelaide, SA" },
        { location: "Broken Hill, NSW" },
      ],
      travelMode: google.maps.TravelMode.DRIVING,
      avoidTolls: true,
    })
    .then((result: google.maps.DirectionsResult) => {
      display.setDirections(result);
    })
    .catch((e) => {
      alert("Could not display directions due to: " + e);
    });
}

function computeTotalDistance(result: google.maps.DirectionsResult) {
  let total = 0;
  const myroute = result.routes[0];

  if (!myroute) {
    return;
  }

  for (let i = 0; i < myroute.legs.length; i++) {
    total += myroute.legs[i]!.distance!.value;
  }

  total = total / 1000;
  (document.getElementById("total") as HTMLElement).innerHTML = total + " km";
}

declare global {
  interface Window {
    initMap: () => void;
  }
}
window.initMap = initMap;

JavaScript

function initMap() {
  const map = new google.maps.Map(document.getElementById("map"), {
    zoom: 4,
    center: { lat: -24.345, lng: 134.46 }, // Australia.
  });
  const directionsService = new google.maps.DirectionsService();
  const directionsRenderer = new google.maps.DirectionsRenderer({
    draggable: true,
    map,
    panel: document.getElementById("panel"),
  });

  directionsRenderer.addListener("directions_changed", () => {
    const directions = directionsRenderer.getDirections();

    if (directions) {
      computeTotalDistance(directions);
    }
  });
  displayRoute(
    "Perth, WA",
    "Sydney, NSW",
    directionsService,
    directionsRenderer,
  );
}

function displayRoute(origin, destination, service, display) {
  service
    .route({
      origin: origin,
      destination: destination,
      waypoints: [
        { location: "Adelaide, SA" },
        { location: "Broken Hill, NSW" },
      ],
      travelMode: google.maps.TravelMode.DRIVING,
      avoidTolls: true,
    })
    .then((result) => {
      display.setDirections(result);
    })
    .catch((e) => {
      alert("Could not display directions due to: " + e);
    });
}

function computeTotalDistance(result) {
  let total = 0;
  const myroute = result.routes[0];

  if (!myroute) {
    return;
  }

  for (let i = 0; i < myroute.legs.length; i++) {
    total += myroute.legs[i].distance.value;
  }

  total = total / 1000;
  document.getElementById("total").innerHTML = total + " km";
}

window.initMap = initMap;
उदाहरण देखें

सैंपल आज़माएं