Yakındaki Arama (Yeni)

Platform seçin: Android iOS JavaScript Web Hizmeti

Yakında Arama (Yeni) istek bir veya daha fazla yer türü alır ve belirtilen alanı temsil eder. Bir veya daha fazla veri türü belirten alan maskesi gereklidir. Yakındaki Arama (Yeni) yalnızca POST isteklerini destekler.

API Gezgini, API'yi ve sunulan API'yi tanıyabilmeniz için canlı isteklerde bulunmanızı sağlar. API seçenekleri:

Deneyin.

Etkileşimli demo'yu tıklayın.

Yakındaki Arama (Yeni) istekleri

Yakındaki Arama (Yeni) isteği, form:

https://places.googleapis.com/v1/places:searchNearby

JSON istek gövdesindeki veya POST isteği. Örneğin:

curl -X POST -d '{
  "includedTypes": ["restaurant"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965},
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

Yakındaki Arama (Yeni) yanıtları

Yakındaki Arama (Yeni), Yanıt olarak JSON nesnesi. Yanıtta:

  • places dizisi, eşleşen tüm yerleri içerir.
  • Dizideki her yer bir Place nesnesini tanımlayın. Place nesnesi, tek bir öğe hakkında ayrıntılı bilgiler içeriyor yer.
  • İstekte iletilen FieldMask, alanların listesini belirtir Place nesnesinde döndürülür.

JSON nesnesinin tamamı aşağıdaki biçimdedir:

{
  "places": [
    {
      object (Place)
    }
  ]
}

Gerekli parametreler

  • FieldMask

    Bir yanıt alanı maskesi oluşturun. URL parametresini kullanarak yanıt alanı maskesini yönteme iletin $fields veya fields ya da HTTP üstbilgisi kullanarak X-Goog-FieldMask. Yanıtta varsayılan bir döndürülen alan listesi yok. Alan maskesini çıkarırsanız yöntem hata döndürür.

    Alan maskeleme, bir kullanıcının sizden başka bir alan adına Böylece, gereksiz işlem süresini ve faturalandırma ücretleri.

    Döndürülecek yer verisi türlerinin virgülle ayrılmış listesini belirtin. Örneğin, Google Etiket Yöneticisi'ni kullanarak yerin görünen adını ve adresini alın.

    X-Goog-FieldMask: places.displayName,places.formattedAddress

    Tüm alanları almak için * öğesini kullanın.

    X-Goog-FieldMask: *

    Aşağıdaki alanlardan birini veya daha fazlasını belirtin:

    • Aşağıdaki alanlar Yakındaki Arama (Temel) SKU'sunu tetikler:

      places.accessibilityOptions, places.addressComponents, places.adrFormatAddress, places.attributions, places.businessStatus, places.displayName, places.formattedAddress, places.googleMapsUri, places.iconBackgroundColor, places.iconMaskBaseUri, places.id, places.location, places.name*, places.photos, places.plusCode, places.primaryType, places.primaryTypeDisplayName, places.shortFormattedAddress, places.subDestinations, places.types, places.utcOffsetMinutes, places.viewport

      * places.name alanı, yer kaynak adı bilgisini içerir şu biçimde olabilir: places/PLACE_ID. places.displayName hesabını kullan yerin metin adına erişmek için tıklayın.

    • Aşağıdaki alanlar Yakında Arama (Gelişmiş) SKU'sunu tetikler:

      places.currentOpeningHours, places.currentSecondaryOpeningHours, places.internationalPhoneNumber, places.nationalPhoneNumber, places.priceLevel, places.rating, places.regularOpeningHours, places.regularSecondaryOpeningHours, places.userRatingCount, places.websiteUri

    • Aşağıdaki alanlar Yakındaki Arama (Tercih Edilen) SKU'sunu tetikler:

      places.allowsDogs, places.curbsidePickup, places.delivery, places.dineIn, places.editorialSummary, places.evChargeOptions, places.fuelOptions, places.goodForChildren, places.goodForGroups, places.goodForWatchingSports, places.liveMusic, places.menuForChildren, places.parkingOptions, places.paymentOptions, places.outdoorSeating, places.reservable, places.restroom, places.reviews, places.servesBeer, places.servesBreakfast, places.servesBrunch, places.servesCocktails, places.servesCoffee, places.servesDessert, places.servesDinner, places.servesLunch, places.servesVegetarianFood, places.servesWine, places.takeout

  • locationRestriction

    Merkez noktası ve metre cinsinden yarıçapla tanımlanan, çember şeklinde belirtilen, aranacak bölge. Yarıçap, 0,0 ile 50.000,0 (her ikisi de dahil) arasında olmalıdır. Varsayılan yarıçap 0,0'dır. Şunu yapmalısınız: bu değeri isteğinizde 0,0'dan büyük bir değere ayarlayın.

    Örneğin:

    "locationRestriction": {
      "circle": {
        "center": {
          "latitude": 37.7937,
          "longitude": -122.3965
        },
        "radius": 500.0
      }
    }

İsteğe bağlı parametreler

  • includeTypes/excludedTypes, includePrimaryTypes/excludedPrimaryTypes

    Türlerden bir tür listesi belirtebilmenizi sağlar. Filtreleme için kullanılan Tablo A en iyi yoludur. Her bir tür kısıtlama kategorisinde en fazla 50 tür belirtilebilir.

    Bir yerin, türlerden yalnızca tek bir birincil türü olabilir Şununla ilişkili Tablo A: somut olarak ortaya koyar. Örneğin, birincil tür "mexican_restaurant" veya "steak_house". Tekliflerinizi otomatikleştirmek ve optimize etmek için Sonuçları filtrelemek için includedPrimaryTypes ve excludedPrimaryTypes bir yerin birincil türü olabilir.

    Bir yer, türlerden birden fazla tür değerine de sahip olabilir A Tablosu görüntülenebilir. Örneğin, bir restoran aşağıdaki türlere sahip olabilir: "seafood_restaurant", "restaurant", "food", "point_of_interest", "establishment". includedTypes hesabını kullan ve excludedTypes ile ilişkili türler listesindeki sonuçları filtrelemek için bir yer.

    "restaurant" veya "hotel", yanıt, belirtilen öğedir. Örneğin, "restaurant" Böylece yanıt, birincil türün "restaurant", ancak yanıt daha spesifik yerler de içerebilir birincil tür, örneğin "chinese_restaurant" veya "seafood_restaurant".

    Bir arama birden çok tür kısıtlamasıyla belirtilirse, yalnızca yerler için tüm kısıtlamaları karşılayanlar döndürülür. Örneğin, {"includedTypes": ["restaurant"], "excludedPrimaryTypes": ["steak_house"]}, iade edilen yerler, "restaurant" ile ilgili hizmet sağlıyor ancak ağırlıklı olarak faaliyet göstermiyor "steak_house" olarak.

    includedTypes

    Tablo A'dan aranacak yer türlerinin virgülle ayrılmış listesi. Bu parametre eklenmezse her türden yer döndürülür.

    excludedTypes

    Bir arayın.

    Hem includedTypes ( "school" gibi) hem de excludedTypes ("primary_school" gibi) ve ardından yanıt, "school" olarak sınıflandırılan ancak "primary_school". Yanıt, şunlardan en az biriyle eşleşen yerleri içerir: includedTypes ve excludedTypes hiçbiri.

    Çakışan türler varsa (örneğin, her iki includedTypes öğesinde de görünen bir tür) ve excludedTypes ise INVALID_REQUEST hatası döndürülür.

    includedPrimaryTypes

    Dahil edilecek Tablo A'daki birincil yer türlerinin virgülle ayrılmış listesi anlamına gelir.

    excludedPrimaryTypes

    Hariç tutulacak birincil yer türlerinin virgülle ayrılmış listesi Tablo A'dan elde edebilirsiniz.

    Çakışan birincil türler varsa (örneğin, her ikisinde de görünen bir tür) includedPrimaryTypes ve excludedPrimaryTypes, INVALID_ARGUMENT hata döndürüldü.

  • languageCode

    Sonuçların döndürüleceği dil.

    • Desteklenen dillerin listesini inceleyin. Google sıklıkla , desteklenen dilleri güncellediğinden bu liste tam kapsamlı olmayabilir.
    • languageCode sağlanmazsa API varsayılan olarak en olur. Eğer geçersiz bir dil kodu belirtirseniz API, INVALID_ARGUMENT hatası döndürür. hatası.
    • API, hem kullanıcı hem de kullanıcı tarafından okunabilen bir açık adres sağlamak için elinden geleni yapar: yerel kullanıcılar. Bu hedefe ulaşmak için yerel dildeki açık adresleri, kullanıcı tarafından okunabilen bir alfabede metne dönüştürülerek dili'ne dokunun. Diğer tüm adresler tercih edilen dilde döndürülür. Adres bileşenleri tümü, ilk bileşenden seçilen aynı dilde döndürülür.
    • Bir ad, tercih edilen dilde sunulmuyorsa API en yakın eşleşmeyi kullanır.
    • Tercih edilen dilin, API'nin seçtiği sonuç grubu üzerinde küçük bir etkisi vardır. sıralanıyor. Coğrafi kodlayıcı kısaltmaları yorumlar Örneğin, sokak türlerinin kısaltmaları veya eş anlamlıları gibi, dile bağlı olarak başka bir dilde geçerli olmayabilir.
  • maxResultCount

    Döndürülecek maksimum yer sonucu sayısını belirtir. Şu değerler arasında olmalıdır: 1 ve 20 (varsayılan) değerleri dahil.

  • rankPreference

    Kullanılacak sıralama türü. Bu parametre eklenmezse sonuçlar popülerliğe göre sıralanır. Aşağıdakilerden biri olabilir:

    • POPULARITY (varsayılan) Sonuçları popülerliklerine göre sıralar.
    • DISTANCE Sonuçları uzaklığa göre artan düzende sıralar. belirtilen konum.
  • regionCode

    Yanıtı biçimlendirmek için kullanılan bölge kodu, CLDR kodu değerini girin. Varsayılan bir değer yok.

    Yanıttaki formattedAddress alanının ülke adı regionCode, ülke kodu formattedAddress öğesinden atlanır. Bu parametrenin, her zaman ülkeyi içeren adrFormatAddress üzerinde etkisi yoktur. adı veya hiçbir zaman içermeyen shortFormattedAddress üzerinde.

    Çoğu CLDR kodu aynıdır. ISO 3166-1 kodları, bazı önemli istisnalarla birlikte. Örneğin, Birleşik Krallık'ın ccTLD'si "uk" (.co.uk), ISO 3166-1 kodu "gb" ise (teknik olarak "Büyük Britanya ve Kuzey İrlanda Birleşik Krallığı"). Parametre, geçerli yasalara göre sonuçları etkileyebilir.

Yakındaki Arama (Yeni) örnekleri

Belirli türdeki yerleri bulma

Aşağıdaki örnekte, görüntülü reklam ağı için Yakındaki Arama (Yeni) isteği gösterilmektedir circle ile tanımlanan, 500 metrelik bir yarıçaptaki tüm restoranların adları:

curl -X POST -d '{
  "includedTypes": ["restaurant"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965},
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

X-Goog-FieldMask üstbilgisinin, yanıtın şu veri alanlarını içerir: places.displayName. Yanıt Böylece şu biçimde olur:

{
  "places": [
    {
      "displayName": {
        "text": "La Mar Cocina Peruana",
        "languageCode": "en"
      }
    },
    {
      "displayName": {
        "text": "Kokkari Estiatorio",
        "languageCode": "en"
      }
    },
    {
      "displayName": {
        "text": "Harborview Restaurant & Bar",
        "languageCode": "en"
      }
    },
...
}

Ek bilgiler döndürmek için alan maskesine daha fazla veri türü ekleyin. Örneğin, places.formattedAddress,places.types,places.websiteUri yanıtta restoranın adresi, türü ve web adresi:

curl -X POST -d '{
  "includedTypes": ["restaurant"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965},
      "radius": 500.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName,places.formattedAddress,places.types,places.websiteUri" \
https://places.googleapis.com/v1/places:searchNearby

Yanıt şu biçimde olur:

{
  "places": [
    {
      "types": [
        "seafood_restaurant",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "formattedAddress": "PIER 1 1/2 The Embarcadero N, San Francisco, CA 94105, USA",
      "websiteUri": "http://lamarsf.com/",
      "displayName": {
        "text": "La Mar Cocina Peruana",
        "languageCode": "en"
      }
    },
    {
      "types": [
        "greek_restaurant",
        "meal_takeaway",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "formattedAddress": "200 Jackson St, San Francisco, CA 94111, USA",
      "websiteUri": "https://kokkari.com/",
      "displayName": {
        "text": "Kokkari Estiatorio",
        "languageCode": "en"
      }
    },
...
}

Farklı türde yerler bulun

Aşağıdaki örnekte şehrinin 1000 metre yarıçapında bulunan tüm marketlerin ve alkollü içecek mağazalarının adlarını belirtilen circle:

curl -X POST -d '{
  "includedTypes": ["liquor_store", "convenience_store"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 1000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName,places.primaryType,places.types" \
https://places.googleapis.com/v1/places:searchNearby
Bu örnekte, alan maskesine places.primaryType ve places.types eklenir Böylece yanıtta her yer hakkında tür bilgileri yer alacak ve böylece uygun bir yer olup olmadığını kontrol edin.

Aşağıdaki örnekte tüm yerler için Yakın Arama (Yeni) isteği gösterilmektedir "school" türünde, "primary_school" türündeki tüm yerler hariç tutularak sonuçlar sıralanır mesafeye göre:

curl -X POST -d '{
  "includedTypes": ["school"],
  "excludedTypes": ["primary_school"],
  "maxResultCount": 10,
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 1000.0
    }
  },
  "rankPreference": "DISTANCE"
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

Bir bölgenin yakınındaki tüm yerleri arama (mesafeye göre sıralama)

Aşağıdaki örnekte yerler için Yakındaki Arama (Yeni) isteği gösterilmektedir bir noktaya yakınlaştık. Bu örnekte rankPreference parametresini kullanabilirsiniz:

curl -X POST -d '{
  "maxResultCount": 10,
  "rankPreference": "DISTANCE",
  "locationRestriction": {
    "circle": {
      "center": {
        "latitude": 37.7937,
        "longitude": -122.3965
      },
      "radius": 1000.0
    }
  }
}' \
-H 'Content-Type: application/json' -H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName" \
https://places.googleapis.com/v1/places:searchNearby

Deneyin!

API Gezgini sayesinde örnek isteklerde bulunabilirsiniz. hakkında da bilgi edineceksiniz.

  1. API simgesini, API Gezgini'ni genişletin. sekmesini tıklayın.
  2. İsteğe bağlı olarak Standart parametreleri göster'i genişletin ve fields parametresi alan maskesine benzer.
  3. İsteğe bağlı olarak İstek gövdesini düzenleyin.
  4. Yürüt düğmesini seçin. Pop-up pencerede, istekte bulunmak için kullanmak istediğiniz hesabı seçin.
  5. API Gezgini panelinde genişlet simgesini seçin, API Gezgini penceresini genişletmek için API Gezgini'ni genişletin. tuşlarına basın.