Metin Arama (Yeni)

Platform seçin: Android iOS JavaScript Web Hizmeti

Avrupa Ekonomik Alanı (AEA) geliştiricileri

Giriş

Metin Arama (Yeni) bir dizeye göre bir grup yer hakkında bilgi döndürür. Örneğin, "New York'ta pizza", "Ottawa yakınlarındaki ayakkabı mağazaları" veya "123 Main Street". Hizmet, metin dizesiyle eşleşen yerlerin ve ayarlanan konum önyargısının bulunduğu bir liste ile yanıt verir.

Bu hizmet, özellikle otomatik bir sistemde belirsiz adres sorguları oluşturmak için kullanışlıdır. Dizenin adres olmayan bileşenleri, işletmelerin yanı sıra adreslerle de eşleşebilir. Belirsiz adres sorgularına örnek olarak kötü biçimlendirilmiş adresler veya işletme adları gibi adres dışı bileşenler içeren istekler verilebilir. Aşağıdaki tablodaki ilk iki örnek gibi istekler, bölge, konum kısıtlaması veya konum önyargısı gibi bir konum ayarlanmadığı sürece sıfır sonuç döndürebilir.

"10 High Street, UK" veya "123 Main Street, US" Birleşik Krallık'ta birden fazla "High Street"; ABD'de birden fazla "Main Street". Sorgu, konum kısıtlaması ayarlanmadığı sürece istenen sonuçları döndürmüyor.
"ChainRestaurant New York" New York'ta birden fazla "ChainRestaurant" konumu var. Sokak adresi veya sokak adı bile yok.
"10 High Street, Escher UK" veya "123 Main Street, Pleasanton US" Birleşik Krallık'taki Escher şehrinde yalnızca bir "High Street"; ABD'deki Pleasanton CA şehrinde yalnızca bir "Main Street" vardır.
"UniqueRestaurantName New York" New York'ta bu ada sahip tek bir kuruluş var. Ayırt etmek için sokak adresi gerekmiyor.
"New York'taki pizzacılar" Bu sorgu, konum kısıtlaması içeriyor ve "pizza restoranları" iyi tanımlanmış bir yer türü. Birden fazla sonuç döndürür.
"+1 514-670-8700"

Bu sorguda telefon numarası var. Bu numara, telefon numarasıyla ilişkili yerler için birden fazla sonuç döndürür.

API Gezgini, API ve API seçeneklerine aşina olabilmeniz için canlı istekler göndermenize olanak tanır:

Metin Arama (Yeni) istekleri

Bir Metin Arama (Yeni) isteği, aşağıdaki biçimde bir HTTP POST isteğidir:

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

Tüm parametreleri JSON istek gövdesinde veya üstbilgilerde POST isteğinin bir parçası olarak iletin. Örneğin:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
'https://places.googleapis.com/v1/places:searchText'

Metin Arama (Yeni) yanıtları

Metin Arama (Yeni), yanıt olarak bir JSON nesnesi döndürür. Yanıtta:

  • places dizisi, eşleşen tüm yerleri içerir.
  • Dizideki her yer, bir Place nesnesiyle temsil edilir. Place nesnesi, tek bir yerle ilgili ayrıntılı bilgiler içerir.
  • İstekle iletilen FieldMask, Place nesnesinde döndürülen alanların listesini belirtir.

Tam JSON nesnesi şu biçimdedir:

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

Gerekli parametreler

  • FieldMask

    Yanıt alan maskesi oluşturarak yanıtta döndürülecek alanların listesini belirtin. Yanıt alan maskesini, $fields veya fields URL parametresini ya da X-Goog-FieldMask HTTP üst bilgisini kullanarak yönteme iletin. Yanıtta varsayılan olarak döndürülen alanların listesi yoktur. Alan maskesini atlarsanız yöntem hata döndürür.

    Alan maskeleme, gereksiz veri istemediğinizden emin olmanızı sağlayan iyi bir tasarım uygulamasıdır. Bu sayede gereksiz işlem süresinden ve faturalandırma ücretlerinden kaçınabilirsiniz.

    Döndürülecek yer verisi türlerinin virgülle ayrılmış bir listesini belirtin. Örneğin, yerin görünen adını ve adresini almak için.

    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 Text Search Essentials ID Only SKU'yu (Yalnızca Kimlikli Metin Arama Essentials SKU'su) tetikler:

      places.attributions
      places.id
      places.name*
      nextPageToken

      * places.name alanı, places/PLACE_ID biçiminde yer kaynak adını içerir. Yerin metin adına erişmek için Pro SKU'da places.displayName simgesini kullanın.

    • Aşağıdaki alanlar Text Search Pro SKU'sunu tetikler:

      places.accessibilityOptions
      places.addressComponents
      places.addressDescriptor*
      places.adrFormatAddress
      places.businessStatus
      places.containingPlaces
      places.displayName
      places.formattedAddress
      places.googleMapsLinks**
      places.googleMapsUri
      places.iconBackgroundColor
      places.iconMaskBaseUri
      places.location
      places.photos
      places.plusCode
      places.postalAddress
      places.primaryType
      places.primaryTypeDisplayName
      places.pureServiceAreaBusiness
      places.shortFormattedAddress
      places.subDestinations
      places.types
      places.utcOffsetMinutes
      places.viewport

      * Adres tanımlayıcıları Hindistan'daki müşteriler için genel olarak kullanılabilir ve diğer ülkelerde deneysel olarak sunulur.

      ** places.googleMapsLinks alanı, GKST öncesi önizleme aşamasındadır ve bu aşamada kullanım için herhangi bir ücret alınmaz. Diğer bir deyişle, faturalandırma 0 ABD doları olarak yapılır.
    • Aşağıdaki alanlar Text Search Enterprise SKU'sunu tetikler:

      places.currentOpeningHours
      places.currentSecondaryOpeningHours
      places.internationalPhoneNumber
      places.nationalPhoneNumber
      places.priceLevel
      places.priceRange
      places.rating
      places.regularOpeningHours
      places.regularSecondaryOpeningHours
      places.userRatingCount
      places.websiteUri
    • Aşağıdaki alanlar Text Search Enterprise + Atmosphere SKU'sunu tetikler:

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

      * Yalnızca Metin Arama ve Yakında Arama
  • textQuery

    Aranacak metin dizesi (ör. "restoran", "123 Main Street" veya "San Francisco'da ziyaret edilebilecek en iyi yer"). API, bu dizeye göre olası eşleşmeleri döndürür ve sonuçları algılanan alaka düzeylerine göre sıralar.

İsteğe bağlı parametreler

  • includedType

    Sonuçları, Tablo A'da tanımlanan belirtilen türle eşleşen yerlere göre yönlendirir. Yalnızca bir tür belirtilebilir. Örneğin:

    • "includedType":"bar"
    • "includedType":"pharmacy"

    Metin Arama (Yeni), uygunluğa bağlı olarak belirli sorgular için tür filtreleme uygular. Örneğin, tür filtreleme belirli adreslerle ("123 Ana Cadde") ilgili sorgulara uygulanmayabilir ancak tür filtreleme, kategorik sorgulara ("yakındaki mağazalar" veya "alışveriş merkezleri") neredeyse her zaman uygulanır.

    Tüm sorgulara tür filtreleme uygulamak için strictTypeFiltering simgesini true olarak ayarlayın.

  • includePureServiceAreaBusinesses

    true olarak ayarlanırsa yanıtta, müşterileri doğrudan ziyaret eden veya onlara teslimat yapan ancak fiziksel bir işletme konumu olmayan işletmeler yer alır. false olarak ayarlanırsa API yalnızca fiziksel bir işletme konumuna sahip işletmeleri döndürür.

  • languageCode

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

    • Desteklenen dillerin listesini inceleyin. Google, desteklenen dilleri sık sık güncellediği için bu liste kapsamlı olmayabilir.
    • languageCode sağlanmazsa API varsayılan olarak en değerini kullanır. Geçersiz bir dil kodu belirtirseniz API INVALID_ARGUMENT hatası döndürür.
    • API, hem kullanıcı hem de yerel halk tarafından okunabilir bir açık adres sağlamak için elinden geleni yapar. Bu amaca ulaşmak için, tercih edilen dili dikkate alarak gerekirse kullanıcının okuyabileceği bir alfabeye çevrilmiş, yerel dildeki sokak adreslerini döndürür. Diğer tüm adresler tercih edilen dilde döndürülür. Adres bileşenlerinin tümü aynı dilde döndürülür. Bu dil, ilk bileşenden seçilir.
    • Tercih edilen dilde ad yoksa API en yakın eşleşmeyi kullanır.
    • Tercih edilen dil, API'nin döndürmeyi seçtiği sonuç kümesi ve bu sonuçların döndürülme sırası üzerinde küçük bir etkiye sahiptir. Coğrafi kodlayıcı, kısaltmaları dile bağlı olarak farklı şekilde yorumlar. Örneğin, sokak türlerinin kısaltmaları veya bir dilde geçerli olup başka bir dilde geçerli olmayan eş anlamlılar.
  • locationBias

    Arama yapılacak bir alanı belirtir. Bu konum, bir önyargı olarak işlev görür. Bu nedenle, belirtilen alanın dışındaki sonuçlar da dahil olmak üzere belirtilen konumla ilgili sonuçlar döndürülebilir.

    locationRestriction veya locationBias değerini belirtebilirsiniz ancak ikisini birden belirtemezsiniz. locationRestriction, sonuçların içinde olması gereken bölgeyi belirtir. locationBias ise sonuçların büyük olasılıkla içinde veya yakınında olacağı ancak alanın dışında da olabileceği bölgeyi belirtir.

    Bölgeyi dikdörtgen görüntü alanı veya daire olarak belirtin.

    • Bir daire, merkez noktası ve metre cinsinden yarıçap ile tanımlanır. Yarıçap, 0,0 ile 50000,0 arasında (bu değerler dahil) olmalıdır. Varsayılan yarıçap 0,0'dır. Örneğin:

      "locationBias": {
        "circle": {
          "center": {
            "latitude": 37.7937,
            "longitude": -122.3965
          },
          "radius": 500.0
        }
      }
    • Dikdörtgen, iki çapraz olarak zıt düşük ve yüksek nokta olarak gösterilen bir enlem-boylam görüntü alanıdır. Düşük nokta, dikdörtgenin güneybatı köşesini, yüksek nokta ise dikdörtgenin kuzeydoğu köşesini gösterir.

      Görüntü alanı, sınırını da içeren kapalı bir bölge olarak kabul edilir. Enlem sınırları -90 ile 90 derece arasında (bu değerler dahil), boylam sınırları ise -180 ile 180 derece arasında (bu değerler dahil) olmalıdır:

      • low = high ise görüntü alanı tek bir noktadan oluşur.
      • low.longitude > high.longitude ise boylam aralığı ters çevrilir (görüntü alanı 180 derece boylam çizgisini geçer).
      • low.longitude = -180 derece ve high.longitude = 180 derece ise görüntü alanı tüm boylamları içerir.
      • low.longitude = 180 derece ve high.longitude = -180 derece ise boylam aralığı boş olur.
      • low.latitude > high.latitude ise enlem aralığı boş olur.

      Hem düşük hem de yüksek değerler doldurulmalı ve gösterilen kutu boş olmamalıdır. Boş bir görünüm alanı hataya neden olur.

      Örneğin, bu görünüm penceresi New York City'yi tamamen kapsar:

      "locationBias": {
        "rectangle": {
          "low": {
            "latitude": 40.477398,
            "longitude": -74.259087
          },
          "high": {
            "latitude": 40.91618,
            "longitude": -73.70018
          }
        }
      }
  • locationRestriction

    Arama yapılacak bir alanı belirtir. Belirtilen alanın dışındaki sonuçlar döndürülmez.

    Bölgeyi dikdörtgen görüntü alanı olarak belirtin. Görüntü alanını tanımlama örneği için locationBias açıklamasını inceleyin.

    locationRestriction veya locationBias değerini belirtebilirsiniz ancak ikisini birden belirtemezsiniz. locationRestriction, sonuçların içinde olması gereken bölgeyi belirtir. locationBias ise sonuçların büyük olasılıkla içinde veya yakınında olacağı ancak alanın dışında da olabileceği bölgeyi belirtir.

  • maxResultCount (desteği sonlandırıldı)

    Sayfa başına görüntülenecek sonuç sayısını (1 ile 20 arasında) belirtir. Örneğin, maxResultCount değerini 5 olarak ayarladığınızda ilk sayfada en fazla 5 sonuç döndürülür. Sorgudan döndürülebilecek daha fazla sonuç varsa yanıtta, bir sonraki sayfaya erişmek için sonraki isteğe iletebileceğiniz bir nextPageToken bulunur.

  • evOptions

    Mevcut elektrikli araç (EV) şarj konnektörlerini ve şarj oranlarını belirlemeye yönelik parametreleri belirtir.

    • connectorTypes

      Bir yerde bulunan elektrikli araç şarj konnektörünün türüne göre filtreler. Bağlayıcı türlerinden hiçbirini desteklemeyen bir yer filtrelenir. Desteklenen EV şarj konnektörü türleri arasında birleşik (AC ve DC) şarj cihazları, Tesla şarj cihazları, GB/T uyumlu şarj cihazları (Çin'de EV hızlı şarjı için) ve duvar prizi şarj cihazları bulunur. Daha fazla bilgi için referans belgelerine bakın.

      • Sonuçları belirli bir desteklenen bağlayıcıya göre filtrelemek için connectorTypes değerini bu bağlayıcıya ayarlayın. Örneğin, J1772 tür 1 bağlayıcıları bulmak için connectorTypes değerini EV_CONNECTOR_TYPE_J1772 olarak ayarlayın.
      • Desteklenmeyen bağlayıcılar için sonuçları filtrelemek istiyorsanız connectorTypes değerini EV_CONNECTOR_TYPE_OTHER olarak ayarlayın.
      • Sonuçları duvar prizi olan herhangi bir konnektör türüne göre filtrelemek için connectorTypes değerini EV_CONNECTOR_TYPE_UNSPECIFIED_WALL_OUTLET olarak ayarlayın.
      • Sonuçları herhangi bir bağlayıcı türüne göre filtrelemek için connectorTypes değerini EV_CONNECTOR_TYPE_UNSPECIFIED olarak ayarlayın veya connectorTypes için değer ayarlamayın.
    • minimumChargingRateKw

      Yerleri, minimum elektrikli araç şarj hızı (kilovat) cinsinden filtreler. Minimum şarj oranından daha düşük bir oranla şarj eden yerler filtrelenir. Örneğin, şarj hızı en az 10 kW olan elektrikli araç şarj cihazlarını bulmak için bu parametreyi "10" olarak ayarlayabilirsiniz.

  • minRating

    Sonuçları yalnızca ortalama kullanıcı puanı bu sınırdan yüksek veya bu sınıra eşit olanlarla kısıtlar. Değerler, 0,5 artışlarla 0,0 ile 5,0 (başlangıç ve bitiş değerleri dahil) arasında olmalıdır. Örneğin: 0, 0,5, 1,0, ... , 5,0 (5,0 dahil). Değerler en yakın 0,5'e yuvarlanır. Örneğin, 0,6 değeri 1,0'dan düşük puanlı tüm sonuçları ortadan kaldırır.

  • openNow

    true ise yalnızca sorgu gönderildiğinde açık olan yerleri döndürün. false ise açık durumundan bağımsız olarak tüm işletmeleri döndürür. Google Yerler veritabanında çalışma saatleri belirtilmeyen yerler, bu parametreyi false olarak ayarlarsanız döndürülür.

  • pageSize

    Sayfa başına görüntülenecek sonuç sayısını (1 ile 20 arasında) belirtir. Örneğin, pageSize değerini 5 olarak ayarladığınızda ilk sayfada en fazla 5 sonuç döndürülür. Sorgudan döndürülebilecek daha fazla sonuç varsa yanıtta, bir sonraki sayfaya erişmek için sonraki isteğe iletebileceğiniz bir nextPageToken bulunur.

  • pageToken

    Önceki sayfanın yanıt gövdesindeki nextPageToken öğesini belirtir.

  • priceLevels

    Aramayı belirli fiyat seviyelerinde işaretlenmiş yerlerle sınırlayın. Varsayılan olarak tüm fiyat seviyeleri seçilir.

    Aşağıdaki türlerdeki yerler için fiyat seviyeleri beklenebilir:

    priceLevels belirtilmişse desteklenmeyen türdeki yerler yanıta dahil edilmez.

    PriceLevel tarafından tanımlanan bir veya daha fazla değerden oluşan bir dizi belirtin.

    Örneğin:

    "priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
  • rankPreference

    Sonuçların, sorgu türüne göre yanıttaki sıralamasını belirtir:

    • "New York'taki restoranlar" gibi kategorik bir sorgu için varsayılan olarak RELEVANCE (sonuçları arama alaka düzeyine göre sırala) kullanılır. rankPreference seçeneğini RELEVANCE veya DISTANCE (sonuçları mesafeye göre sırala) olarak ayarlayabilirsiniz.
    • "Mountain View, CA" gibi kategorik olmayan bir sorgu için rankPreference ayarını yapmamanızı öneririz.
  • regionCode

    Yanıtı biçimlendirmek için kullanılan bölge kodu, iki karakterli CLDR kodu değeri olarak belirtilir. Bu parametre, arama sonuçları üzerinde önyargı etkisi de yaratabilir. Varsayılan değer yoktur.

    Yanıtın formattedAddress alanındaki ülke adı regionCode ile eşleşiyorsa ülke kodu formattedAddress alanından çıkarılır. Bu parametre, adrFormatAddress üzerinde herhangi bir etkiye sahip değildir. adrFormatAddress, ülke adını her zaman içerir. shortFormattedAddress ise ülke adını hiçbir zaman içermez.

    Bazı önemli istisnalar dışında çoğu CLDR kodu, ISO 3166-1 kodlarıyla aynıdır. Örneğin, Birleşik Krallık'ın ccTLD'si "uk" (.co.uk) iken ISO 3166-1 kodu "gb"dir (teknik olarak "Büyük Britanya ve Kuzey İrlanda Birleşik Krallığı" tüzel kişiliği için). Parametre, geçerli yasaya göre sonuçları etkileyebilir.

  • strictTypeFiltering

    includedType parametresiyle birlikte kullanılır. true olarak ayarlandığında yalnızca includeType tarafından belirtilen türlerle eşleşen yerler döndürülür. Varsayılan değer olan "yanlış" olduğunda yanıtta, belirtilen türlerle eşleşmeyen yerler olabilir.

Metin Arama (Yeni) örnekleri

Sorgu dizesine göre yer bulma

Aşağıdaki örnekte, "Avustralya, Sidney'de acı vejetaryen yemekler" için bir Metin Arama (Yeni) isteği gösterilmektedir:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'

X-Goog-FieldMask başlığının, yanıtın aşağıdaki veri alanlarını içerdiğini belirttiğini unutmayın: places.displayName,places.formattedAddress. Yanıt şu biçimde olur:

{
  "places": [
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia",
      "displayName": {
        "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "29 King St, Sydney NSW 2000, Australia",
      "displayName": {
        "text": "Peace Harmony",
        "languageCode": "en"
      }
    },
    ...
  ]
}

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

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia"
}' \
-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:searchText'

Yanıt artık şu biçimde:

{
  "places": [
    {
      "types": [
        "vegetarian_restaurant",
        "vegan_restaurant",
        "chinese_restaurant",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "websiteUri": "http://www.motherchusvegetarian.com.au/",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    {
      "types": [
        "vegan_restaurant",
        "thai_restaurant",
        "vegetarian_restaurant",
        "indian_restaurant",
        "italian_restaurant",
        "american_restaurant",
        "restaurant",
        "food",
        "point_of_interest",
        "establishment"
      ],
      "formattedAddress": "175 First Ave, Five Dock NSW 2046, Australia",
      "websiteUri": "http://www.veggosizzle.com.au/",
      "displayName": {
        "text": "Veggo Sizzle - Vegan & Vegetarian Restaurant, Five Dock, Sydney",
        "languageCode": "en"
      }
    },
    ...
  ]
}

Yerleri fiyat düzeyine göre filtreleme

Sonuçları ucuz veya orta pahalı olarak tanımlanan restoranlarla filtrelemek için priceLevel seçeneğini kullanın:

curl -X POST -d '{
  "textQuery" : "Spicy Vegetarian Food in Sydney, Australia",
  "priceLevels":["PRICE_LEVEL_INEXPENSIVE", "PRICE_LEVEL_MODERATE"]
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress,places.priceLevel' \
'https://places.googleapis.com/v1/places:searchText'

Bu örnekte, X-Goog-FieldMask başlığı kullanılarak places.priceLevel veri alanı yanıta eklenir. Bu nedenle, yanıt şu biçimde olur:

{
  "places": [
    {
      "formattedAddress": "367 Pitt St, Sydney NSW 2000, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Mother Chu's Vegetarian Kitchen",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "115 King St, Newtown NSW 2042, Australia",
      "priceLevel": "PRICE_LEVEL_MODERATE",
      "displayName": {
        "text": "Green Mushroom",
        "languageCode": "en"
      }
    },
    ...
  ]
}

Aramanızı hassaslaştırmak için includedType, minRating, rankPreference, openNow gibi ek seçenekler ve İsteğe bağlı parametreler bölümünde açıklanan diğer parametreleri ekleyin.

Aramayı belirli bir alanla kısıtlama

Bir aramayı belirli bir alanla sınırlamak için locationRestriction veya locationBias simgesini kullanın ancak ikisini birden kullanmayın. locationRestriction, sonuçların içinde olması gereken bölgeyi, locationBias ise sonuçların yakınında olması gereken ancak bölgenin dışında olabileceği alanı belirtir.

locationRestriction kullanarak alanı kısıtlama

Sorgu sonuçlarını belirli bir bölgeyle sınırlamak için locationRestriction parametresini kullanın. İstek gövdenizde, bölge sınırını tanımlayan low ve high enlem ve boylam değerlerini belirtin.

Aşağıdaki örnekte, New York City'de "vegetarian<0x0x0A>food" için bir Metin Arama (Yeni) isteği gösterilmektedir. Bu istek yalnızca açık yerlerle ilgili ilk 10 sonucu döndürür.

curl -X POST -d '{
  "textQuery" : "vegetarian food",
  "pageSize" : "10",
  "locationRestriction": {
    "rectangle": {
      "low": {
        "latitude": 40.477398,
        "longitude": -74.259087
      },
      "high": {
        "latitude": 40.91618,
        "longitude": -73.70018
      }
    }
  }
}' \
  -H 'Content-Type: application/json' \
  -H 'X-Goog-Api-Key: API_KEY' \
  -H 'X-Goog-FieldMask: places.id,places.formattedAddress' \
  'https://places.googleapis.com/v1/places:searchText'

locationBias kullanarak bir bölgeye yönelik önyargı

Aşağıdaki örnekte, San Francisco şehir merkezindeki bir noktanın 500 metre yarıçapındaki bir konuma yönelik "vejetaryen yemek" için bir Metin Arama (Yeni) isteği gösterilmektedir. Bu istek yalnızca açık yerlerle ilgili ilk 10 sonucu döndürür.

curl -X POST -d '{
  "textQuery" : "vegetarian food",
  "openNow": true,
  "pageSize": 10,
  "locationBias": {
    "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' \
'https://places.googleapis.com/v1/places:searchText'

Minimum şarj hızına sahip EV şarj cihazlarını arama

minimumChargingRateKw ve connectorTypes tuşlarını kullanarak elektrikli aracınızla uyumlu şarj cihazlarının bulunduğu yerleri arayın.

Aşağıdaki örnekte, Mountain View, CA'da minimum 10 kW şarj hızına sahip Tesla ve J1772 Tip 1 EV şarj konnektörleri için bir istek gösterilmektedir. Yalnızca dört sonuç döndürülür.

curl -X POST -d '{
    "textQuery": "EV Charging Station Mountain View",
    "pageSize": 4,
    "evOptions": {
      "minimumChargingRateKw": 10,
      "connectorTypes": ["EV_CONNECTOR_TYPE_J1772","EV_CONNECTOR_TYPE_TESLA"]
    }
  }' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H "X-Goog-FieldMask: places.displayName,places.evChargeOptions" \
'https://places.googleapis.com/v1/places:searchText'

İstek aşağıdaki yanıtı döndürür:

{
  "places": [
    {
      "displayName": {
        "text": "EVgo Charging Station",
        "languageCode": "en"
      },
      "evChargeOptions": {
        "connectorCount": 16,
        "connectorAggregation": [
          {
            "type": "EV_CONNECTOR_TYPE_CHADEMO",
            "maxChargeRateKw": 100,
            "count": 8,
            "availableCount": 5,
            "outOfServiceCount": 0,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          },
          {
            "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1",
            "maxChargeRateKw": 100,
            "count": 2,
            "availableCount": 2,
            "outOfServiceCount": 0,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          },
          {
            "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1",
            "maxChargeRateKw": 350,
            "count": 6,
            "availableCount": 3,
            "outOfServiceCount": 0,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          }
        ]
      }
    },
    {
      "displayName": {
        "text": "EVgo Charging Station",
        "languageCode": "en"
      },
      "evChargeOptions": {
        "connectorCount": 6,
        "connectorAggregation": [
          {
            "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1",
            "maxChargeRateKw": 100,
            "count": 4,
            "availableCount": 3,
            "outOfServiceCount": 0,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          },
          {
            "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1",
            "maxChargeRateKw": 350,
            "count": 2,
            "availableCount": 0,
            "outOfServiceCount": 2,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          }
        ]
      }
    },
    {
      "displayName": {
        "text": "EVgo Charging Station",
        "languageCode": "en"
      },
      "evChargeOptions": {
        "connectorCount": 5,
        "connectorAggregation": [
          {
            "type": "EV_CONNECTOR_TYPE_J1772",
            "maxChargeRateKw": 3.5999999046325684,
            "count": 1,
            "availableCount": 0,
            "outOfServiceCount": 1,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          },
          {
            "type": "EV_CONNECTOR_TYPE_CHADEMO",
            "maxChargeRateKw": 50,
            "count": 2,
            "availableCount": 0,
            "outOfServiceCount": 0,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          },
          {
            "type": "EV_CONNECTOR_TYPE_CCS_COMBO_1",
            "maxChargeRateKw": 50,
            "count": 2,
            "availableCount": 0,
            "outOfServiceCount": 0,
            "availabilityLastUpdateTime": "2024-01-10T19:10:00Z"
          }
        ]
      }
    },
    {
      "displayName": {
        "text": "Electric Vehicle Charging Station",
        "languageCode": "en"
      },
      "evChargeOptions": {
        "connectorCount": 10,
        "connectorAggregation": [
          {
            "type": "EV_CONNECTOR_TYPE_OTHER",
            "maxChargeRateKw": 210,
            "count": 10
          }
        ]
      }
    }
  ]
}

Hizmet bölgesi işletmelerini arama

Fiziksel hizmet adresi olmayan işletmeleri (örneğin, mobil temizlik hizmeti veya yemek kamyonu) aramak için includePureServiceAreaBusinesses parametresini kullanın.

Aşağıdaki örnekte, San Francisco'daki tesisatçılarla ilgili bir istek gösterilmektedir:

curl -X POST -d '{
  "textQuery" : "plumber San Francisco",
  "includePureServiceAreaBusinesses": true
}' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H 'X-Goog-FieldMask: places.displayName,places.formattedAddress' \
'https://places.googleapis.com/v1/places:searchText'

Yanıt olarak, fiziksel hizmet adresi olmayan işletmeler formattedAddress alanını içermez:

{
  "places": [
    {
      "formattedAddress": "3450 Sacramento St #204, San Francisco, CA 94118, USA",
      "displayName": {
        "text": "Advanced Plumbing & Drain",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "1455 Bancroft Ave, San Francisco, CA 94124, USA",
      "displayName": {
        "text": "Magic Plumbing Heating & Cooling",
        "languageCode": "en"
      }
    },
    /.../
    {
      "displayName": {
        "text": "Starboy Plumbing Inc.",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "78 Dorman Ave, San Francisco, CA 94124, USA",
      "displayName": {
        "text": "Cabrillo Plumbing, Heating & Air",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "540 Barneveld Ave # D, San Francisco, CA 94124, USA",
      "displayName": {
        "text": "Mr. Rooter Plumbing of San Francisco",
        "languageCode": "en"
      }
    },
    /.../
    {
      "displayName": {
        "text": "Pipeline Plumbing",
        "languageCode": "en"
      }
    },
    {
      "formattedAddress": "350 Bay St #100-178, San Francisco, CA 94133, USA",
      "displayName": {
        "text": "One Source Plumbing and Rooter",
        "languageCode": "en"
      }
    },
    /.../
  ]
}

Sayfa başına döndürülecek sonuç sayısını belirtme

Sayfa başına döndürülecek sonuç sayısını belirtmek için pageSize parametresini kullanın. Yanıt gövdesindeki nextPageToken parametresi, sonuçların bir sonraki sayfasına erişmek için sonraki çağrılarda kullanılabilecek bir jeton sağlar.

Aşağıdaki örnekte, "New York'ta pizza" isteğinin sayfa başına 5 sonuçla sınırlandırıldığı gösterilmektedir:

 curl -X POST -d '{
  "textQuery": "pizza in New York",
  "pageSize": 5
  }' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H "X-Goog-FieldMask: places.id,nextPageToken" \
'https://places.googleapis.com/v1/places:searchText'
{
  "places": [
    {
      "id": "ChIJifIePKtZwokRVZ-UdRGkZzs"
    },
    {
      "id": "ChIJPxPd_P1YwokRfzLhSiACEoU"
    },
    {
      "id": "ChIJrXXKn5NZwokR78g0ipCnY60"
    },
    {
      "id": "ChIJ6ySICVZYwokR9rIK8HjXhzE"
    },
    {
      "id": "ChIJ6xvs94VZwokRnT1D2lX2OTw"
    }
  ],
  "nextPageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q"
}

Sonuçların bir sonraki sayfasına erişmek için istek gövdesinde pageToken ile nextPageToken değerini iletin:

 curl -X POST -d '{
  "textQuery": "pizza in New York",
  "pageSize": 5,
  "pageToken": "AeCrKXsZWzNVbPzO-MRWPu52jWO_Xx8aKwOQ69_Je3DxRpfdjClq8Ekwh3UcF2h2Jn75kL6PtWLGV4ecQri-GEUKN_OFpJkdVc-JL4Q"
  }' \
-H 'Content-Type: application/json' -H 'X-Goog-Api-Key: API_KEY' \
-H "X-Goog-FieldMask: places.id,nextPageToken" \
'https://places.googleapis.com/v1/places:searchText'
{
  "places": [
    {
      "id": "ChIJL-LN1N1ZwokR8K2jACu6Ydw"
    },
    {
      "id": "ChIJjaD94kFZwokR-20CXqlpy_4"
    },
    {
      "id": "ChIJ6ffdpJNZwokRmcafdROM5q0"
    },
    {
      "id": "ChIJ8Q2WSpJZwokRQz-bYYgEskM"
    },
    {
      "id": "ChIJ8164qwFZwokRhplkmhvq1uE"
    }
  ],
  "nextPageToken": "AeCrKXvPd6uUy-oj96W2OaqEe2pUD8QTxOM8-sKfUcFsC9t2Wey5qivrKGoGSxcZnyc7RPmaFfAktslrKbUh31ZDTkL0upRmaxA7c_c"
}

Adres tanımlayıcılarını alma

Adres tanımlayıcıları, yakındaki önemli noktalar ve kapsayan alanlar da dahil olmak üzere bir yerin konumu hakkında ilişkisel bilgiler sağlar.

Aşağıdaki örnekte, San Jose'deki bir alışveriş merkezinin yakınındaki yerler için bir Metin Arama (Yeni) isteği gösterilmektedir. Bu örnekte, alan maskesine addressDescriptors ekliyorsunuz:

curl -X POST -d '{
  "textQuery": "clothes",
  "maxResultCount": 5,
  "locationBias": {
    "circle": {
      "center": {
        "latitude": 37.321328,
        "longitude": -121.946275
      }
    }
  },
  "rankPreference":"RANK_PREFERENCE_UNSPECIFIED"
}' \
-H 'Content-Type: application/json' \
-H "X-Goog-Api-Key: API_KEY" \
-H "X-Goog-FieldMask: places.displayName,places.addressDescriptor" \
https://places.googleapis.com/v1/places:searchText

Yanıtta, istekte belirtilen yer, yakındaki önemli noktaların listesi ve bu noktaların yere olan uzaklığı ile alanların listesi ve bu alanların yerle olan kapsama ilişkisi yer alır:

  {
  "places": [
    {
      "displayName": {
        "text": "Urban Outfitters",
        "languageCode": "en"
      },
      "addressDescriptor": {
        "landmarks": [
          {
            "name": "places/ChIJVVVVUB7Lj4ARXyb4HFVDV8s",
            "placeId": "ChIJVVVVUB7Lj4ARXyb4HFVDV8s",
            "displayName": {
              "text": "Westfield Valley Fair",
              "languageCode": "en"
            },
            "types": [
              "clothing_store",
              "department_store",
              "establishment",
              "food",
              "movie_theater",
              "point_of_interest",
              "restaurant",
              "shoe_store",
              "shopping_mall",
              "store"
            ],
            "spatialRelationship": "WITHIN",
            "straightLineDistanceMeters": 133.72855
          },
          {
            "name": "places/ChIJ62_oCR7Lj4AR_MGWkSPotD4",
            "placeId": "ChIJ62_oCR7Lj4AR_MGWkSPotD4",
            "displayName": {
              "text": "Nordstrom",
              "languageCode": "en"
            },
            "types": [
              "clothing_store",
              "department_store",
              "establishment",
              "point_of_interest",
              "shoe_store",
              "store"
            ],
            "straightLineDistanceMeters": 250.99161
          },
          {
            "name": "places/ChIJ8WvuSB7Lj4ARFyHppkxDRQ4",
            "placeId": "ChIJ8WvuSB7Lj4ARFyHppkxDRQ4",
            "displayName": {
              "text": "Macy's",
              "languageCode": "en"
            },
            "types": [
              "clothing_store",
              "department_store",
              "establishment",
              "point_of_interest",
              "store"
            ],
            "straightLineDistanceMeters": 116.24196
          },
          {
            "name": "places/ChIJ9d3plB_Lj4ARzyaU5bn80WY",
            "placeId": "ChIJ9d3plB_Lj4ARzyaU5bn80WY",
            "displayName": {
              "text": "Bank of America Financial Center",
              "languageCode": "en"
            },
            "types": [
              "bank",
              "establishment",
              "finance",
              "point_of_interest"
            ],
            "straightLineDistanceMeters": 121.61515
          },
          {
            "name": "places/ChIJaXCjxvXLj4ARCPmQpvJ52Lw",
            "placeId": "ChIJaXCjxvXLj4ARCPmQpvJ52Lw",
            "displayName": {
              "text": "Bloomingdale's",
              "languageCode": "en"
            },
            "types": [
              "clothing_store",
              "department_store",
              "establishment",
              "furniture_store",
              "home_goods_store",
              "point_of_interest",
              "shoe_store",
              "store"
            ],
            "straightLineDistanceMeters": 81.32396
          }
        ],
        "areas": [
          {
            "name": "places/ChIJb3F-EB7Lj4ARnHApQ_Hu1gI",
            "placeId": "ChIJb3F-EB7Lj4ARnHApQ_Hu1gI",
            "displayName": {
              "text": "Westfield Valley Fair",
              "languageCode": "en"
            },
            "containment": "WITHIN"
          },
          {
            "name": "places/ChIJXYuykB_Lj4AR1Ot8nU5q26Q",
            "placeId": "ChIJXYuykB_Lj4AR1Ot8nU5q26Q",
            "displayName": {
              "text": "Valley Fair",
              "languageCode": "en"
            },
            "containment": "WITHIN"
          },
          {
            "name": "places/ChIJtYoUX2DLj4ARKoKOb1G0CpM",
            "placeId": "ChIJtYoUX2DLj4ARKoKOb1G0CpM",
            "displayName": {
              "text": "Central San Jose",
              "languageCode": "en"
            },
            "containment": "WITHIN"
          }
        ]
      }
    },
    /.../
  ]
}

Deneyin!

API Gezgini, API ve API seçeneklerine alışabilmeniz için örnek istekler göndermenize olanak tanır.

  1. Sayfanın sağ tarafındaki API simgesini api seçin.

  2. İsteğe bağlı olarak istek parametrelerini düzenleyin.

  3. Yürüt düğmesini seçin. İletişim kutusunda, isteği göndermek için kullanmak istediğiniz hesabı seçin.

  4. API Gezgini penceresini genişletmek için API Gezgini panelinde tam ekran simgesini fullscreen seçin.