जगह की जानकारी की नई सुविधा पर माइग्रेट करना

यूरोपियन इकनॉमिक एरिया (ईईए) के डेवलपर

Places API, किसी जगह के बारे में ज़्यादा जानकारी दे सकता है. इस पेज पर, Place क्लास (नया) और PlacesService (लेगसी) में इस्तेमाल की गई जगह की जानकारी के बीच के अंतर के बारे में बताया गया है. साथ ही, तुलना करने के लिए कुछ कोड स्निपेट दिए गए हैं. यहां दी गई टेबल में, Place क्लास और PlacesService के बीच जगह की जानकारी के इस्तेमाल से जुड़े कुछ मुख्य अंतर बताए गए हैं:

PlacesService (लेगसी) Place (नया)
getDetails() fetchFields()
PlaceDetailsRequest FetchFieldsRequest
नतीजे के ऑब्जेक्ट और google.maps.places.PlacesServiceStatus रिस्पॉन्स को मैनेज करने के लिए, तरीकों में कॉलबैक का इस्तेमाल करना ज़रूरी है. यह Promises का इस्तेमाल करता है और एसिंक्रोनस तरीके से काम करता है.
इन तरीकों की PlacesServiceStatus जांच करना ज़रूरी है. स्टेटस की जांच करने की ज़रूरत नहीं है. स्टैंडर्ड गड़बड़ी को ठीक करने की सुविधा का इस्तेमाल किया जा सकता है. ज़्यादा जानें.
जगह के डेटा फ़ील्ड को स्नेक केस का इस्तेमाल करके फ़ॉर्मैट किया जाता है. जगह के डेटा फ़ील्ड को कैमल केस का इस्तेमाल करके फ़ॉर्मैट किया जाता है.
यह जगह के टाइप और जगह की जानकारी के डेटा फ़ील्ड के एक तय सेट तक सीमित है. इसमें, जगह के टाइप और जगह के डेटा फ़ील्ड का ज़्यादा विकल्प मिलता है. ये विकल्प नियमित तौर पर अपडेट होते हैं.

कोड की तुलना करना

इस सेक्शन में, मिलते-जुलते दो कोड की तुलना की गई है. इससे Places API और Place क्लास के बीच के अंतर को समझने में मदद मिलती है. कोड स्निपेट में, हर एपीआई के लिए ज़रूरी कोड दिखाया गया है. इस कोड का इस्तेमाल करके, जगह की जानकारी के लिए अनुरोध किया जा सकता है. इसके बाद, जगह की जानकारी वाले डेटा का इस्तेमाल करके, मैप में मार्कर जोड़ा जा सकता है.

Places Service (लेगसी)

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

function getPlaceDetails() {
  // Instantiate the Places Service.
  const service = new google.maps.places.PlacesService(map);

  // Make a request using the Place ID.
  const request = {
    placeId: "ChIJN1t_tDeuEmsRUsoyG83frY4",
    fields: ["name", "formatted_address", "place_id", "geometry"],
  };

  // Request place details.
  service.getDetails(request, (place, status) => {
    // Check whether PlacesServiceStatus is OK.
    if (
      status === google.maps.places.PlacesServiceStatus.OK &&
      place &&
      place.geometry &&
      place.geometry.location
    ) {

      // Log the result.
      console.log(place.name);
      console.log(place.formatted_address);

      // Add a marker for the place.
      const marker = new google.maps.Marker({
        map,
        position: place.geometry.location,
        title: place.name,
      });
    }
  });
}

ज़्यादा जानें

क्लास की जगह (नई सुविधा)

नीचे दिए गए कोड स्निपेट में, Place क्लास का इस्तेमाल करके जगह की जानकारी का अनुरोध करने का तरीका दिखाया गया है. अनुरोध एसिंक्रोनस है और इसमें स्टेटस की जांच शामिल नहीं है. इसमें गड़बड़ी ठीक करने के स्टैंडर्ड तरीके का इस्तेमाल किया जा सकता है. किसी जगह के आईडी का इस्तेमाल, नया Place इंस्टेंस बनाने के लिए किया जाता है. इसका इस्तेमाल अनुरोध (fetchFields()) करने के लिए किया जाता है. fetchFields() को कॉल किए जाने तक, जगह के ज़रूरी डेटा फ़ील्ड पास नहीं किए जाते. इससे ज़्यादा फ़्लेक्सिबिलिटी मिलती है. fetchFields() तरीके में await ऑपरेटर का इस्तेमाल किया जाता है. इसलिए, इसका इस्तेमाल सिर्फ़ async फ़ंक्शन में किया जा सकता है.

async function getPlaceDetails() {
  // Use place ID to create a new Place instance.
  const place = new google.maps.places.Place({
    id: "ChIJN5Nz71W3j4ARhx5bwpTQEGg",
    requestedLanguage: "en", // optional
  });

  // Call fetchFields, passing the needed data fields.
  await place.fetchFields({
    fields: ["displayName", "formattedAddress", "location"],
  });

  // Log the result.
  console.log(place.displayName);
  console.log(place.formattedAddress);

  // Add an Advanced Marker.
  const marker = new google.maps.marker.AdvancedMarkerElement({
    map,
    position: place.location,
    title: place.displayName,
  });
}

ज़्यादा जानें