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;
    }
  }
];

iOS के लिए Places Swift SDK टूल (झलक)

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 ऑब्जेक्ट है.

खुलने की स्थिति पाएं

GMSPlacesClient ऑब्जेक्ट में isOpenWithRequest नाम का एक सदस्य फ़ंक्शन होता है (Swift में isOpenRequest और Google PlacesSwift में isPlaceOpenRequest) जो कॉल में दिए गए समय के आधार पर, यह दिखाता है कि कोई जगह अभी खुली है या नहीं.

इस तरीके में, GMSPlaceIsOpenWithRequest टाइप का एक आर्ग्युमेंट इस्तेमाल किया जाता है, जिसमें ये शामिल हैं:

  • GMSPlace ऑब्जेक्ट या जगह के आईडी को बताने वाली स्ट्रिंग. ज़रूरी फ़ील्ड के साथ 'जगह' ऑब्जेक्ट बनाने के बारे में ज़्यादा जानकारी के लिए, जगह की जानकारी देखें.
    अभी तक किसी भी व्यक्ति ने चेक इन नहीं किया है
  • एक वैकल्पिक NSDate (Obj-C) या Date (Swift) ऑब्जेक्ट, जिसमें वह समय बताया गया है जब आपको जांच करनी है. अगर कोई समय तय नहीं किया गया है, तो डिफ़ॉल्ट समय को सेट किया जाता है.
  • रिस्पॉन्स को मैनेज करने के लिए, GMSPlaceOpenStatusResponseCallback तरीका.
  • &gt;

GMSPlaceIsOpenWithRequest तरीके के लिए, GMSPlace ऑब्जेक्ट में इन फ़ील्ड को सेट करना ज़रूरी है:

  • GMSPlacePropertyUTCOffsetMinutes
  • GMSPlacePropertyBusinessStatus
  • GMSPlacePropertyOpeningHours
  • GMSPlacePropertyCurrentOpeningHours
  • GMSPlacePropertySecondaryOpeningHours

अगर 'जगह' ऑब्जेक्ट में ये फ़ील्ड नहीं दिए गए हैं या अगर आपने जगह का आईडी पास किया है, तो उन्हें फ़ेच करने के लिए यह तरीका GMSPlacesClient GMSFetchPlaceRequest: का इस्तेमाल करता है.

isOpenWithRequest जवाब

isOpenWithRequest, status नाम की बूलियन वैल्यू वाला GMSPlaceIsOpenResponse ऑब्जेक्ट दिखाता है. इससे पता चलता है कि कारोबार खुला है, बंद है या स्टेटस की जानकारी नहीं है.

भाषा अगर खुला है, तो मान बंद होने पर मान अगर स्थिति की जानकारी नहीं है, तो मान
Swift .open .closed .unknown
Objective-C GMSPlaceOpenStatusOpen GMSPlaceOpenStatusClosed GMSPlaceOpenStatusUnknown
Google PlacesSwift (झलक) true false nil

isOpenWithRequest की बिलिंग

  • GMSPlacePropertyUTCOffsetMinutes और GMSPlacePropertyBusinessStatus फ़ील्ड का शुल्क, बेसिक डेटा SKU के तहत लिया जाता है. खुले होने के बाकी समय के लिए, जगह की जानकारी (बेहतर) SKU के तहत शुल्क लिया जाता है.
  • अगर आपके GMSPlace ऑब्जेक्ट में ये फ़ील्ड पहले से ही हैं, तो आपसे फिर से शुल्क नहीं लिया जाएगा.

उदाहरण: GMSPlaceIsOpenWithRequest का अनुरोध करें

इस उदाहरण में, किसी मौजूदा GMSPlace ऑब्जेक्ट में GMSPlaceIsOpenWithRequest शुरू करने का तरीका बताया गया है.

Swift

    let isOpenRequest = GMSPlaceIsOpenRequest(place: place, date: nil)
      GMSPlacesClient.shared().isOpen(with: isOpenRequest) { response, error in
        if let error = error {
          // Handle Error
        }
        switch response.status {
          case .open:
            // Handle open
          case .closed:
            // Handle closed
          case .unknown:
            // Handle unknown
        }
      }
        

Objective-C

          GMSPlaceIsOpenRequest *isOpenRequest = [[GMSPlaceIsOpenRequest alloc] initWithPlace:place date:nil];
  
          [[GMSPlacesClient sharedClient] isOpenWithRequest:isOpenRequest callback:^(GMSPlaceIsOpenResponse response, NSError *_Nullable error) {
            if (error) {
              // Handle error
            }
  
            switch (response.status) {
              case GMSPlaceOpenStatusOpen:
                // Handle open
              case GMSPlaceOpenStatusClosed:
                // Handle closed
              case GMSPlaceOpenStatusUnknown:
                // Handle unknown
            }
          }];
          

GooglePlacesSwift

          let isOpenRequest = IsPlaceOpenRequest(place: place)
          switch await placesClient.isPlaceOpen(with: isOpenRequest) {
            case .success(let isOpenResponse):
              switch isOpenResponse.status {
                case true:
                  // Handle open
                case false:
                  // Handle closed
                case nil:
                  // Handle unknown
            case .failure(let placesError):
              // Handle error
          }
          

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

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];
            

    iOS के लिए Places Swift SDK टूल (झलक)

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

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

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

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

  • शामिल किए गए टाइप/excludedTypes, includePrimaryTypes/excludedPrimaryTypes

    टाइप से टाइप की सूची तय करने की सुविधा मिलती है फ़िल्टर करने के लिए, टेबल 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 ऑब्जेक्ट में एट्रिब्यूशन और लेखक के एट्रिब्यूशन शामिल हो सकते हैं. अगर आपके ऐप्लिकेशन में समीक्षा दिखाई जाती है, तो आपको कोई एट्रिब्यूशन या लेखक भी दिखाना होगा एट्रिब्यूशन.

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