जगह के आईडी

प्लैटफ़ॉर्म चुनें: Android iOS JavaScript वेब सेवा
यूरोपियन इकनॉमिक एरिया (ईईए) के डेवलपर

परिचय

जगह के आईडी, Google Places के डेटाबेस और Google Maps में किसी जगह की अलग पहचान के लिए इस्तेमाल होते हैं. जगह के आईडी, Maps API के लिए किए गए इन अनुरोधों में स्वीकार किए जाते हैं:

  • Geocoding API और Maps JavaScript API की जियोकोडिंग सेवा में, किसी जगह के आईडी के लिए पता वापस पाना.
  • Routes API और Directions API (लेगसी) में, मूल जगह, मंज़िल, और बीच के वेपॉइंट तय करना. साथ ही, Directions Service और Maps JavaScript API (लेगसी) में भी ऐसा करना.
  • Routes API और Distance Matrix API (लेगसी) में ऑरिजिन और डेस्टिनेशन तय करना. साथ ही, Distance Matrix Service, Maps JavaScript API (लेगसी) में ऑरिजिन और डेस्टिनेशन तय करना.
  • Places API (नया), Places SDK for Android (नया), Places SDK for iOS (नया), और Places Library में जगह की जानकारी पाना.
  • Maps Embed API में जगह के आईडी पैरामीटर का इस्तेमाल करना.
  • Maps के यूआरएल में खोज क्वेरी वापस लाई जा रही हैं.
  • Roads API में गति सीमाएं दिखाना.
  • सीमाओं के लिए डेटा-ड्रिवन स्टाइलिंग में, सीमा वाले पॉलीगॉन ढूंढना और उन्हें स्टाइल करना.

किसी जगह का आईडी ढूंढना

क्या आपको किसी जगह का आईडी चाहिए? किसी जगह को खोजने और उसका आईडी पाने के लिए, यहां दिए गए प्लेस आईडी फ़ाइंडर का इस्तेमाल करें:

इसके अलावा, Maps JavaScript API के दस्तावेज़ में, कोड के साथ जगह का आईडी ढूंढने वाला टूल देखा जा सकता है.

खास जानकारी

जगह का आईडी, टेक्स्ट वाला एक आइडेंटिफ़ायर होता है. इससे किसी जगह की खास तौर पर पहचान की जाती है. आइडेंटिफ़ायर की लंबाई अलग-अलग हो सकती है. हालांकि, जगह के आईडी के लिए कोई तय लंबाई नहीं है. उदाहरण:

  • ChIJgUbEo8cfqokR5lP9_Wh_DaM
  • GhIJQWDl0CIeQUARxks3icF8U8A
  • EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0EiGhIYChQKEgnRTo6ixx-qiRHo_bbmkCm7ZRAN
  • EicxMyBNYXJrZXQgU3QsIFdpbG1pbmd0b24sIE5DIDI4NDAxLCBVU0E
  • IhoSGAoUChIJ0U6OoscfqokR6P225pApu2UQDQ

जगह के आईडी, ज़्यादातर जगहों के लिए उपलब्ध होते हैं. इनमें कारोबार, लैंडमार्क, पार्क, और चौराहे शामिल हैं. ऐसा हो सकता है कि एक ही जगह या पते के लिए, अलग-अलग प्लेस आईडी हों. जगह के आईडी समय के साथ बदल सकते हैं.

Places API और Google Maps Platform के कई एपीआई के लिए, एक ही जगह के आईडी का इस्तेमाल किया जा सकता है. उदाहरण के लिए, एक ही जगह के आईडी का इस्तेमाल इन एपीआई में किया जा सकता है: Places API, Maps JavaScript API, Geocoding API, Maps Embed API, और Roads API.

जगह के आईडी का इस्तेमाल करके, जगह की जानकारी पाना

जगह के आईडी इस्तेमाल करने का एक सामान्य तरीका यह है कि किसी जगह को खोजा जाए. इसके लिए, Places API या Maps JavaScript API में मौजूद Places लाइब्रेरी का इस्तेमाल किया जा सकता है. इसके बाद, जगह की जानकारी पाने के लिए, खोज के नतीजों में मिले जगह के आईडी का इस्तेमाल किया जा सकता है. जगह के आईडी को सेव किया जा सकता है. साथ ही, इसका इस्तेमाल करके बाद में उसी जगह की जानकारी वापस पाई जा सकती है. जगह के आईडी सेव करने के बारे में यहां पढ़ें.

Places SDK for iOS का इस्तेमाल करने का उदाहरण

जगह का आईडी, टेक्स्ट वाला एक आइडेंटिफ़ायर होता है. इससे किसी जगह की खास तौर पर पहचान की जाती है. Places SDK for iOS में, GMSPlace ऑब्जेक्ट से किसी जगह का आईडी वापस पाया जा सकता है. जगह के आईडी को सेव किया जा सकता है. इसका इस्तेमाल करके, बाद में GMSPlace ऑब्जेक्ट को फिर से पाया जा सकता है.

आईडी के हिसाब से जगह की जानकारी पाने के लिए, GMSPlacesClient fetchPlaceFromPlaceID: को कॉल करें. इसके लिए, इन पैरामीटर का इस्तेमाल करें:

  • इस स्ट्रिंग में प्लेस आईडी होता है.
  • एक या उससे ज़्यादा GMSPlaceField, जो दिखाए जाने वाले डेटा टाइप तय करते हैं.
  • अगर कॉल, अपने-आप पूरी होने वाली क्वेरी को पूरा करने के लिए किया जाता है, तो सेशन टोकन. अगर ऐसा नहीं है, तो शून्य पास करें.
  • नतीजे को मैनेज करने के लिए GMSPlaceResultCallback.

एपीआई, बताए गए कॉलबैक तरीके को शुरू करता है. साथ ही, GMSPlace ऑब्जेक्ट पास करता है. अगर जगह नहीं मिलती है, तो जगह का ऑब्जेक्ट शून्य होता है.

iOS के लिए Places Swift SDK

// Initialize Places Swift Client.
let placesClient = PlacesClient.shared

// A hotel in Saigon with an attribution
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"
    
// Fetch Place Request.
let fetchPlaceRequest = FetchPlaceRequest(
  placeID: placeID,
  placeProperties: [.displayName]
)
    
Task {
  switch await placesClient.fetchPlace(with: fetchPlaceRequest) {
  case .success(let place):
    print("The selected place is: \(place.displayName): \(String(describing: place.description))")
  case .failure(let placesError):
    print("Place not found: \(placeID); \(placesError)")
  }
}

Swift

// A hotel in Saigon with an attribution.
let placeID = "ChIJV4k8_9UodTERU5KXbkYpSYs"

// Specify the place data types to return.
let fields: GMSPlaceField = GMSPlaceField(rawValue: UInt(GMSPlaceField.name.rawValue) |
  UInt(GMSPlaceField.placeID.rawValue))!

placesClient?.fetchPlace(fromPlaceID: placeID, placeFields: fields, sessionToken: nil, callback: {
  (place: GMSPlace?, error: Error?) in
  if let error = error {
    print("An error occurred: \(error.localizedDescription)")
    return
  }
  if let place = place {
    self.lblName?.text = place.name
    print("The selected place is: \(place.name)")
  }
})

Objective-C

// A hotel in Saigon with an attribution.
NSString *placeID = @"ChIJV4k8_9UodTERU5KXbkYpSYs";

// Specify the place data types to return.
GMSPlaceField fields = (GMSPlaceFieldName | GMSPlaceFieldPlaceID);

[_placesClient fetchPlaceFromPlaceID:placeID placeFields:fields sessionToken:nil callback:^(GMSPlace * _Nullable place, NSError * _Nullable error) {
  if (error != nil) {
    NSLog(@"An error occurred %@", [error localizedDescription]);
    return;
  }
  if (place != nil) {
    NSLog(@"The selected place is: %@", [place name]);
  }
}];

बाद में इस्तेमाल करने के लिए, जगह के आईडी सेव करना

Google Maps Platform की सेवा की शर्तों के सेक्शन 3.2.3(b) में बताई गई, कैश मेमोरी में सेव करने से जुड़ी पाबंदियां, प्लेस आईडी पर लागू नहीं होती हैं. इसलिए, जगह के आईडी की वैल्यू को बाद में इस्तेमाल करने के लिए सेव किया जा सकता है.

सेव की गई जगहों के आईडी रीफ़्रेश करना

Google Maps के डेटाबेस में अपडेट होने की वजह से, जगह के आईडी बदल सकते हैं. इसलिए, Google का सुझाव है कि अगर जगह के आईडी 12 महीने से ज़्यादा पुराने हैं, तो उन्हें रीफ़्रेश करें. बिना किसी शुल्क के प्लेस आईडी रीफ़्रेश किए जा सकते हैं. इसके लिए, जगह की जानकारी का अनुरोध करें. साथ ही, fields पैरामीटर में सिर्फ़ GMSPlaceFieldPlaceID फ़ील्ड की जानकारी दें.

इस कॉल से, जगहों की जानकारी - आईडी रीफ़्रेश करें एसकेयू ट्रिगर होता है.

जगह के आईडी इस्तेमाल करते समय गड़बड़ी के कोड

INVALID_REQUEST

INVALID_REQUEST स्टेटस कोड से पता चलता है कि दिया गया प्लेस आईडी मान्य नहीं है. INVALID_REQUEST तब दिखता है, जब जगह के आईडी को छोटा कर दिया गया हो या उसमें किसी और तरह से बदलाव किया गया हो. ऐसे में, वह आईडी सही नहीं रहता.

NOT_FOUND

NOT_FOUND स्टेटस कोड से पता चलता है कि दिया गया प्लेस आईडी अब काम नहीं करता. अगर कोई कारोबार बंद हो जाता है या किसी नई जगह पर शिफ़्ट हो जाता है, तो जगह का आईडी पुराना हो सकता है. Google Maps के डेटाबेस में अपडेट होने की वजह से भी जगह के आईडी बदल सकते हैं. ऐसे मामलों में, किसी जगह को नया प्लेस आईडी मिल सकता है. साथ ही, पुराने आईडी से NOT_FOUND रिस्पॉन्स मिलता है.

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

कभी-कभी कुछ तरह के जगह के आईडी की वजह से, NOT_FOUND रिस्पॉन्स मिल सकता है. इसके अलावा, ऐसा भी हो सकता है कि एपीआई, रिस्पॉन्स में जगह का कोई दूसरा आईडी दिखाए. जगह के आईडी के इन टाइप में ये शामिल हैं:

  • सड़क के ऐसे पते जो Google Maps में सटीक पतों के तौर पर मौजूद नहीं हैं. हालांकि, ये पते कई पतों से लिए गए हैं.
  • किसी लंबे रास्ते के सेगमेंट, जहां अनुरोध में किसी शहर या इलाके की जानकारी भी दी गई हो.
  • इंटरसेक्शन.
  • subpremise टाइप के पते वाले कॉम्पोनेंट वाली जगहें.

ये आईडी अक्सर लंबी स्ट्रिंग के तौर पर होते हैं. प्लेस आईडी की कोई तय सीमा नहीं होती. उदाहरण के लिए:

EpID4LC14LC_4LCo4LCv4LGN4LCo4LCX4LCw4LGNIC0g4LC44LGI4LCm4LGN4LCs4LC-4LCm4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSAmIOCwteCwv-CwqOCwr-CxjSDgsKjgsJfgsLDgsY0g4LCu4LGG4LCv4LC_4LCo4LGNIOCwsOCxi-CwoeCxjeCwoeCxgSwg4LC14LC_4LCo4LCv4LGNIOCwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwsuCwleCxjeCwt-CxjeCwruCwv-CwqOCwl-CwsOCxjSDgsJXgsL7gsLLgsKjgsYAsIOCwuOCwsOCxguCwsOCxjSDgsKjgsJfgsLDgsY0g4LC14LGG4LC44LGN4LCf4LGNLCDgsLjgsK_gsYDgsKbgsL7gsKzgsL7gsKbgsY0sIOCwueCxiOCwpuCwsOCwvuCwrOCwvuCwpuCxjSwg4LCk4LGG4LCy4LCC4LCX4LC-4LCjIDUwMDA1OSwg4LCt4LC-4LCw4LCk4LCm4LGH4LC24LCCImYiZAoUChIJ31l5uGWYyzsR9zY2qk9lDiASFAoSCd9ZebhlmMs7Efc2NqpPZQ4gGhQKEglDz61OZpjLOxHgDJCFY-o1qBoUChIJi37TW2-YyzsRr_uv50r7tdEiCg1MwFcKFS_dyy4