Nearby खोज (नया)

प्लैटफ़ॉर्म चुनें: Android iOS JavaScript वेब सेवा

आस-पास खोजने की सुविधा (नया) का अनुरोध, खोजने के लिए इलाके की जानकारी देता है वृत्त के रूप में बताया जाता है, जिसे इसके केंद्रीय बिंदु के अक्षांश और देशांतर निर्देशांकों से परिभाषित किया जाता है वृत्त और त्रिज्या को मीटर में बदलें. अनुरोध, मेल खाने वाली जगहों की सूची दिखाता है. हर जगह को GMSPlace ऑब्जेक्ट की खोज करें.

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

आस-पास की खोज (नए) अनुरोध

इस नंबर पर कॉल करके, आस-पास खोजने की सुविधा का अनुरोध करें GMSPlacesClient searchNearbyWithRequest:, पास GMSPlaceSearchNearbyRequest ऑब्जेक्ट है, जो अनुरोध पैरामीटर और कॉलबैक मेथड को तय करता है. GMSPlaceSearchNearbyResultCallback, का इस्तेमाल करें.

GMSPlaceSearchNearbyRequest ऑब्जेक्ट ज़रूरी है और ज़रूरी नहीं पैरामीटर का इस्तेमाल करें. ज़रूरी पैरामीटर में ये शामिल हैं:

  • GMSPlace ऑब्जेक्ट में दिखाए जाने वाले फ़ील्ड की सूची को फ़ील्ड मास्क, जैसा कि GMSPlaceProperty. अगर आप फ़ील्ड सूची में कम से कम एक फ़ील्ड को शामिल नहीं करते हैं या अगर आप फ़ील्ड को छोड़ देते हैं फ़ील्ड सूची का इस्तेमाल करने देता है, तो कॉल एक गड़बड़ी दिखाता है.
  • जगह की जानकारी पर पाबंदी का मतलब है, वह सर्कल जो खोज के लिए चुनी गई जगह के बारे में बताता है.

आस-पास के खोज अनुरोध के इस उदाहरण में बताया गया है कि रिस्पॉन्स GMSPlace ऑब्जेक्ट जगह का नाम (GMSPlacePropertyName) और जगह के निर्देशांक शामिल हैं खोज में हर GMSPlace ऑब्जेक्ट के लिए (GMSPlacePropertyCoordinate) नतीजे. यह रिस्पॉन्स को भी फ़िल्टर करके सिर्फ़ "रेस्टोरेंट" टाइप के स्थान दिखाता है और "कैफ़े" हैं.

Swift

// Array to hold the places in the response
var placeResults: [GMSPlace] = []

// Define the search area as a 500 meter diameter circle in San Francisco, CA.
let circularLocationRestriction = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(37.7937, -122.3965), 500)

// Specify the fields to return in the GMSPlace object for each place in the response.
let placeProperties = [GMSPlaceProperty.name, GMSPlaceProperty.coordinate].map {$0.rawValue}

// Create the GMSPlaceSearchNearbyRequest, specifying the search area and GMSPlace fields to return.
var request = GMSPlaceSearchNearbyRequest(locationRestriction: circularLocationRestriction, placeProperties: placeProperties)
let includedTypes = ["restaurant", "cafe"]
request.includedTypes = includedTypes

let callback: GMSPlaceSearchNearbyResultCallback = { [weak self] results, error in
  guard let self, error == nil else {
    if let error {
      print(error.localizedDescription)
    }
    return
  }
  guard let results = results as? [GMSPlace] else {
    return
  }
  placeResults = results
}

GMSPlacesClient.shared().searchNearby(with: request, callback: callback)

Objective-C

// Array to hold the places in the response
_placeResults = [NSArray array];

// Define the search area as a 500 meter diameter circle in San Francisco, CA.
id<GMSPlaceLocationRestriction> circularLocation = GMSPlaceCircularLocationOption(CLLocationCoordinate2DMake(37.7937, -122.3965), 500);

// Create the GMSPlaceSearchNearbyRequest, specifying the search area and GMSPlace fields to return.
GMSPlaceSearchNearbyRequest *request = [[GMSPlaceSearchNearbyRequest alloc]
  initWithLocationRestriction:circularLocation
              placeProperties:@[ GMSPlacePropertyName, GMSPlacePropertyCoordinate ]];

// Set the place types to filter on.
NSArray<NSString *> *includedTypes = @[ @"restaurant", @"cafe" ];
request.includedTypes = [[NSMutableArray alloc] initWithArray:includedTypes];

[_placesClient searchNearbyWithRequest:request
  callback:^(NSArray<GMSPlace *> *_Nullable places, NSError *_Nullable error) {
    if (error != nil) {
      NSLog(@"An error occurred %@", [error localizedDescription]);
      return;
    } else {
        // Get list of places.
        _placeResults = places;
    }
  }
];

GooglePlacesSwift

let restriction = CircularCoordinateRegion(center: CLLocationCoordinate2DMake(37.7937, -122.3965), radius: 500)
let searchNearbyRequest = SearchNearbyRequest(
  locationRestriction: restriction,
  placeProperties: [ .name, .coordinate],
  includedTypes: [ .restaurant, .cafe ],
)
switch await placesClient.searchNearby(with: searchNearbyRequest) {
case .success(let places):
  // Handle places
case .failure(let placesError):
  // Handle error
}

आस-पास की खोज के नतीजे

Nearby Search API इस तरह के मैच दिखाता है GMSPlace ऑब्जेक्ट हैं, जिनमें मेल खाने वाली हर जगह की एक GMSPlace ऑब्जेक्ट है.

डेटा फ़ील्ड के साथ, इसमें GMSPlace ऑब्जेक्ट रिस्पॉन्स में ये मेंबर फ़ंक्शन शामिल होते हैं:

  • isOpen यह हिसाब लगाता है कि कोई जगह दिए गए समय पर खुली है या नहीं.
  • isOpenAtDate यह कैलकुलेट करता है कि दी गई तारीख पर कोई जगह खुली है या नहीं.

ज़रूरी पैरामीटर

GMSPlaceSearchNearbyRequest ऑब्जेक्ट का इस्तेमाल करके, इसके लिए ज़रूरी पैरामीटर तय करें खोज.

  • फ़ील्ड की सूची

    स्थान विवरण का अनुरोध करते समय, आपको फ़ील्ड मास्क के तौर पर जगह के लिए, GMSPlace ऑब्जेक्ट दिखाएं. यह तय करने के लिए कि फ़ील्ड मास्क, GMSPlaceProperty GMSPlaceSearchNearbyRequest ऑब्जेक्ट में जोड़ा जा सकता है. फ़ील्ड मास्किंग, डिज़ाइन का एक अच्छा तरीका है. इससे यह पक्का किया जाता है कि आप ग़ैर-ज़रूरी डेटा का अनुरोध न करें, इससे प्रोसेसिंग में लगने वाले समय और बिलिंग शुल्क से बचने में मदद मिलती है.

    इनमें से एक या ज़्यादा फ़ील्ड चुनें:

    • ये फ़ील्ड, आस-पास खोज (बेसिक) SKU:

      GMSPlacePropertyAddressComponents, GMSPlacePropertyBusinessStatus, GMSPlacePropertyCoordinate, GMSPlacePropertyFormattedAddress, GMSPlacePropertyName, GMSPlacePropertyIconBackgroundColor, GMSPlacePropertyIconImageURL, GMSPlacePropertyPhotos, GMSPlacePropertyPlaceID, GMSPlacePropertyPlusCode, GMSPlacePropertyTypes, GMSPlacePropertyUTCOffsetMinutes, GMSPlacePropertyViewport, GMSPlacePropertyWheelchairAccessibleEntrance

    • ये फ़ील्ड, आस-पास खोज (बेहतर) SKU:

      GMSPlacePropertyCurrentOpeningHours, GMSPlacePropertySecondaryOpeningHours, GMSPlacePropertyPhoneNumber, GMSPlacePropertyPriceLevel, GMSPlacePropertyRating, GMSPlacePropertyOpeningHours, GMSPlacePropertyUserRatingsTotal, GMSPlacePropertyWebsite

    • ये फ़ील्ड, आस-पास खोज (पसंदीदा) SKU:

      GMSPlacePropertyCurbsidePickup, GMSPlacePropertyDelivery, GMSPlacePropertyDineIn, GMSPlacePropertyEditorialSummary, GMSPlacePropertyReservable, GMSPlacePropertyReviews, GMSPlacePropertyServesBeer, GMSPlacePropertyServesBreakfast, GMSPlacePropertyServesBrunch, GMSPlacePropertyServesDinner, GMSPlacePropertyServesLunch, GMSPlacePropertyServesVegetarianFood, GMSPlacePropertyServesWine, GMSPlacePropertyTakeout

    नीचे दिए गए उदाहरण में, दो सोर्स की सूची में शामिल फ़ील्ड की वैल्यू यह बताने के लिए कि अनुरोध के ज़रिए लौटाए गए GMSPlace ऑब्जेक्ट में name और placeID फ़ील्ड:

    Swift

    // Specify the place data types to return.
    let fields: [GMSPlaceProperty] = [.placeID, .name]
            

    Objective-C

    // Specify the place data types to return.
    NSArray<GMSPlaceProperty *> *fields = @[GMSPlacePropertyPlaceID, GMSPlacePropertyName];
            

    GooglePlacesSwift

    // Specify the place data types to return.
    let fields: [PlaceProperty] = [.placeID, .displayName]
            
  • locationRestriction

    GMSPlaceLocationRestriction वह ऑब्जेक्ट जो केंद्र बिंदु से परिभाषित सर्कल के रूप में बताए गए क्षेत्र को परिभाषित करता है और मीटर में रेडियस. दायरा 0.0 से 50, 000.0 के बीच होना चाहिए. डिफ़ॉल्ट दायरा यह है 0.0 से खत्म होने वाली है. आपको अपने अनुरोध में इसे 0.0 से ज़्यादा पर सेट करना होगा.

ज़रूरी नहीं पैरामीटर

GMSPlaceSearchNearbyRequest ऑब्जेक्ट का इस्तेमाल करके, इनके लिए वैकल्पिक पैरामीटर तय करें खोज.

  • शामिल किए गए टाइप/बाहर रखे गए टाइप, शामिल किए गए प्राइमरी टाइप/शामिल किए गए प्राइमरी टाइप

    टाइप से टाइप की सूची तय करने की सुविधा मिलती है फ़िल्टर करने के लिए, टेबल A का इस्तेमाल किया जाता है खोज के नतीजे. टाइप पर लगी पाबंदी की हर कैटगरी में, ज़्यादा से ज़्यादा 50 तरह के कीवर्ड डाले जा सकते हैं.

    किसी जगह के टाइप में से, सिर्फ़ एक मुख्य टाइप हो सकता है इससे जुड़ी टेबल A इसे. उदाहरण के लिए, प्राथमिक प्रकार "mexican_restaurant" या "steak_house". इस्तेमाल की जाने वाली चीज़ें नतीजों को फ़िल्टर करने के लिए includedPrimaryTypes और excludedPrimaryTypes स्थान का प्राथमिक प्रकार.

    किसी जगह के टाइप में, एक से ज़्यादा टाइप की वैल्यू भी शामिल हो सकती हैं टेबल A से जुड़ी हुई हैं. उदाहरण के लिए, कोई रेस्टोरेंट इस तरह का हो सकता है: "seafood_restaurant", "restaurant", "food", "point_of_interest", "establishment". includedTypes का इस्तेमाल करें और इससे जुड़े टाइप की सूची के नतीजों को फ़िल्टर करने के लिए excludedTypes कोई जगह.

    जब सामान्य मुख्य टाइप के बारे में बताया जाता है, जैसे कि "restaurant" या "hotel" के लिए, जवाब में ऐसी जगहें शामिल हो सकती हैं जिनका मुख्य टाइप, इससे ज़्यादा हो सकता है निर्दिष्ट किया गया है. उदाहरण के लिए, आप "restaurant". जवाब में ऐसी जगहें शामिल हो सकती हैं जिनमें मुख्य तरह की "restaurant", लेकिन जवाब में ऐसी जगहें भी शामिल हो सकती हैं जो ज़्यादा सटीक हों प्राथमिक प्रकार, जैसे "chinese_restaurant" या "seafood_restaurant".

    अगर किसी खोज के लिए कई तरह की पाबंदियां लगाई गई हैं, तो खोज में सिर्फ़ जगहों के लिए जो सभी पाबंदियां पूरी करते हैं, उन्हें लौटाया जाता है. उदाहरण के लिए, अगर आपने {"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}, दिखाई गई जगहें "restaurant" से जुड़ी सेवाएं देती हैं, लेकिन मुख्य रूप से काम नहीं करतीं "steak_house" के तौर पर.

    includedTypes

    से स्थान प्रकार की सूची खोजने के लिए टेबल A. अगर इस पैरामीटर को शामिल नहीं किया जाता है, तो सभी तरह की जगहों की जानकारी दिखाई जाती है.

    excludedTypes

    से स्थान प्रकारों की सूची किसी रिपोर्ट से बाहर रखने के लिए, टेबल A खोजें.

    अगर आप includedTypes (जैसे कि "school") और अनुरोध में excludedTypes (जैसे कि "primary_school"), इसके बाद जवाब में ऐसी जगहें शामिल हैं जिन्हें "school" की कैटगरी में रखा गया है, लेकिन "primary_school". जवाब में ऐसी जगहें शामिल हैं जो इनमें से कम से कम एक से मेल खाती हैं includedTypes और excludedTypes में से कोई नहीं.

    अगर दस्तावेज़ के टाइप आपस में अलग हों, जैसे कि includedTypes दोनों में कोई टाइप और excludedTypes के बाद, INVALID_REQUEST गड़बड़ी दिखती है.

    includedPrimaryTypes

    यहां दी गई मुख्य जगहों की सूची: शामिल करने के लिए टेबल A क्लिक करें.

    excludedPrimaryTypes

    यहां दी गई मुख्य जगहों की सूची: बाहर रखने के लिए, टेबल A खोजें.

    अगर कोई मुख्य टाइप एक-दूसरे से अलग है, जैसे कि दोनों में कोई टाइप includedPrimaryTypes और excludedPrimaryTypes INVALID_ARGUMENT गड़बड़ी मिली.

  • maxResultCount

    इससे पता चलता है कि जगह के बारे में ज़्यादा से ज़्यादा कितने नतीजे दिए जा सकते हैं. बीच में होना चाहिए 1 और 20 (डिफ़ॉल्ट) सहित.

  • rankPreference

    इस्तेमाल करने के लिए रैंकिंग का टाइप. अगर यह पैरामीटर शामिल नहीं किया जाता है, तो नतीजों की रैंकिंग लोकप्रियता के हिसाब से की जाती है. इनमें से कोई एक स्थिति हो सकती है:

    • .popularity (डिफ़ॉल्ट) नतीजों को उनकी लोकप्रियता के हिसाब से क्रम में लगाता है.
    • .distance परिणामों को बढ़ते क्रम में, बताई गई जगह.
  • regionCode

    जवाब को फ़ॉर्मैट करने के लिए इस्तेमाल किया जाने वाला क्षेत्रीय कोड, जिसे दो वर्ण वाले CLDR कोड की वैल्यू. कोई डिफ़ॉल्ट मान नहीं है.

    अगर जवाब में formattedAddress फ़ील्ड का देश का नाम मेल खाता है regionCode, formattedAddress में देश का कोड शामिल नहीं किया गया है. इस पैरामीटर का adrFormatAddress पर कोई असर नहीं होता है. इसमें देश हमेशा शामिल होता है नाम या shortFormattedAddress पर डालें, जिसमें यह कभी शामिल नहीं होता.

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

अपने ऐप्लिकेशन में एट्रिब्यूशन दिखाएं

जब आपका ऐप्लिकेशन इनसे मिली जानकारी को दिखाता है GMSPlacesClient, जैसे कि फ़ोटो और समीक्षाएं, ऐप्लिकेशन को ज़रूरी एट्रिब्यूशन भी दिखाने चाहिए.

उदाहरण के लिए, GMSPlacesClient ऑब्जेक्ट की reviews प्रॉपर्टी में ज़्यादा से ज़्यादा पाँच डेटा का अरे होता है GMSPlaceReview ऑब्जेक्ट हैं. हर GMSPlaceReview ऑब्जेक्ट में एट्रिब्यूशन और लेखक के एट्रिब्यूशन शामिल हो सकते हैं. अगर आपके ऐप्लिकेशन में समीक्षा दिखाई जाती है, तो आपको कोई एट्रिब्यूशन या लेखक भी दिखाना होगा एट्रिब्यूशन.

ज़्यादा जानकारी के लिए, यहां दिया गया दस्तावेज़ देखें: एट्रिब्यूशन.