Ters coğrafi kodlama (adres arama) isteği ve yanıtı

Coğrafi kodlama terimi genellikle kullanıcılar tarafından okunabilir bir harita üzerinde bir konuma dönüştürmenizi sağlar. Bunun tam tersini yapma süreci haritadaki bir yeri kullanıcıların okuyabileceği bir adrese dönüştürmek, ters coğrafi kodlamayı kullanın.

Ters coğrafi kodlama istekleri

Gerekli parametreler

  • latlng — Enlem ve boylam konuma en yakın konumu istediğiniz konumu belirten koordinatlar, okunabilir bir adres olmalıdır.
  • key — Uygulamanızın API anahtarı. Bu anahtar, bunu yapmanızı öneririz. Nasıl yapıldığını öğrenin bir anahtar al.

İsteğe bağlı parametreler

Bunlar, bir ters sorguya ekleyebileceğiniz isteğe bağlı parametrelerdir coğrafi kodlama isteği:

  • language — Sonuçların döndürüleceği dil.
    • Desteklenenler listesini dillerini inceleyin. Google, desteklenen dilleri genellikle günceller. Dolayısıyla bu liste tam kapsamlı olmayabilir.
    • language sağlanmazsa coğrafi kodlayıcı bölümünde belirtildiği şekilde tercih edilen dili kullanın. Accept-Language üstbilgisi veya isteğin gönderildiği alan adı.
    • Coğrafi kodlayıcı, Google'a ait olmayan bir açık adres sağlamak için elinden geleni yapar. hem kullanıcı hem de yerel kullanıcılar için okunabilir. Bu hedefe ulaşmak için, yerel dildeki açık adresleri, komut dosyasını kullanarak, gerekirse kullanıcı tarafından okunabilen dili'ne dokunun. Diğer tüm adresler tercih edilen biçimde döndürülür dili'ne dokunun. Adres bileşenlerinin hepsi aynı dilde döndürülür. ilk bileşenden seçilir.
    • Tercih edilen dilde bir ad mevcut değilse coğrafi kodlayıcı, en yakın eşleşmedir.
  • region: ccTLD olarak belirtilen bölge kodu ("üst düzey alan") iki karakterlik değer. Parametre, sonuçları sayfasında görebilirsiniz.
  • result_type: Bir veya daha fazla adres türünü içeren filtre, dikey çizgiyle (|) ayrılmalıdır. Parametre birden fazla değer içeriyorsa adres türlerinde API, türlerden herhangi biriyle eşleşen tüm adresleri döndürür. İşleme hakkında not: result_type parametresi aramayı belirtilen adres türleriyle kısıtlayın. Bunun yerine result_type, arama sonrası filtre işlevi görür: API, belirtilen latlng için sonuçları siler, ardından bu sonuçları siler belirtilen adres türleriyle eşleşmiyor. Aşağıdaki değerler: desteklenir:
    • street_address, tam açık adresi gösterir.
    • route, adlandırılmış bir rotayı gösterir (ör. "TR 101").
    • intersection, genellikle iki olan büyük bir kesişimi gösterir yollar bulunuyor.
    • political, siyasi bir tüzel kişiyi belirtir. Genellikle, bu tür bir sivil yönetim poligonunu gösterir.
    • country, ulusal siyasi kuruluşu belirtir ve genellikle Coğrafi Kodlayıcı tarafından döndürülen en yüksek sipariş türüdür.
    • administrative_area_level_1, birinci dereceden bir hukuki danışmanlığı gösterir ülke düzeyinin altında bir öğe tutarıdır. Amerika Birleşik Devletleri'nde idari düzeyler eyalettir. Tüm uluslar bunları sergilemez sorumlu tutulabilir. Çoğu durumda, yönetici_alanı_seviyesi_1 kısa adlar, ISO 3166-2 alt bölümleri ve diğer geniş kapsamlı dağıtım yapılan listeler; Ancak coğrafi kodlama sonuçlarımız çeşitli sinyallere ve konum verilerine dayanır.
    • administrative_area_level_2, ikinci dereceden bir hukuki danışmanlığı gösterir ülke düzeyinin altında bir öğe tutarıdır. Amerika Birleşik Devletleri'nde idari düzeyler ilçedir. Tüm uluslar bunları sergilemez sorumlu tutulabilir.
    • administrative_area_level_3, üçüncü düzey bir hukuki danışmanlığı belirtir ülke düzeyinin altında bir öğe tutarıdır. Bu tür, küçük bir sivil toplum bölmesini belirtir. Tüm uluslar bu idari düzeylerde değildir.
    • administrative_area_level_4, dördüncü dereceden bir sivil toplumu gösterir ülke düzeyinin altında bir öğe tutarıdır. Bu tür, küçük bir sivil toplum bölmesini belirtir. Tüm uluslar bu idari düzeylerde değildir.
    • administrative_area_level_5, beşinci sıradan bir sivil toplumu gösterir ülke düzeyinin altında bir öğe tutarıdır. Bu tür, küçük bir sivil toplum bölmesini belirtir. Tüm uluslar bu idari düzeylerde değildir.
    • administrative_area_level_6, altıncı dereceden bir sivil toplumu gösterir ülke düzeyinin altında bir öğe tutarıdır. Bu tür, küçük bir sivil toplum bölmesini belirtir. Tüm uluslar bu idari düzeylerde değildir.
    • administrative_area_level_7, yedinci düzey hukuku belirtir ülke düzeyinin altında bir öğe tutarıdır. Bu tür, küçük bir sivil toplum bölmesini belirtir. Tüm uluslar bu idari düzeylerde değildir.
    • colloquial_area, yaygın olarak kullanılan bir alternatif adı gösterir ilişkilidir.
    • locality, anonim bir şehir veya kasaba siyasetini belirtir varlık.
    • sublocality, birinci dereceden bir sivil tüzel kişiyi belirtir: şehir. Bazı konumlar için ek türlerden biri sunulabilir: sublocality_level_1 - sublocality_level_5. Her alt konum düzeyi bir sivil tüzel kişidir. Büyük sayılar daha küçük olduğunu gösterir coğrafi alanı ifade eder.
    • neighborhood, adlandırılmış bir mahalleyi gösterir
    • premise, adlandırılmış bir konumu (genellikle bir bina veya ortak bir ada sahip bina koleksiyonu
    • subpremise, adlandırılmış bir öğenin altındaki birinci derece öğeyi gösterir. bir dizi binanın içinde yer alan tek bir binadır. Bu yapı, genellikle yaygın bir ad
    • plus_code, türetilmiş kodlanmış konum referansını gösterir enlem ve boylama göre belirlenir. Artı kodları, mevcut olmadıkları yerlerde (binaların numaralandırılmamış veya numaralandırılmayan yerlerdeki açık adresleri) sokaklar adlandırılmamış). https://plus.codes sayfasına bakın inceleyebilirsiniz.
    • postal_code, posta adresini vermek için kullanılan bir posta kodunu belirtir ülke içinde posta gönderin.
    • natural_feature belirgin bir doğal özelliği gösterir.
    • airport, bir havaalanını gösterir.
    • park, adlandırılmış bir parkı gösterir.
    • point_of_interest, adlandırılmış bir önemli yeri gösterir. Bu "ÖY"ler, genellikle bir yere kolayca sığmayan belirgin yerel varlıklardır "Empire State Binası" gibi başka bir kategoride veya "Eyfel Kulesi".
  • location_type: Bir veya daha fazla konum türünü içeren filtre, dikey çizgiyle (|) ayrılmalıdır. Parametre birden fazla değer içeriyorsa konum türlerini seçerseniz API, türlerden herhangi biriyle eşleşen tüm adresleri döndürür. İşleme hakkında not: location_type parametresi aramayı, belirtilen konum türleriyle kısıtla. Bunun yerine location_type, arama sonrası filtre işlevi görür: API, belirtilen latlng için sonuçları siler, ardından bu sonuçları siler belirtilen konum türleriyle eşleşmeyenler olabilir. Aşağıdaki değerler desteklenir:
    • "ROOFTOP", yalnızca Google'ın döndürdüğü adresleri döndürür açık adres kesinliğine kadar konum bilgilerine sahip.
    • "RANGE_INTERPOLATED" yalnızca şu adresleri döndürür: genellikle yol üzerinde iki ara değer arasında kalan bir yaklaşık kesin noktalar (kesişimler gibi). Genellikle interpolasyon değeri içeren bir aralık bir sokak adresi için çatı coğrafi kodlarının kullanılamadığını gösterir.
    • "GEOMETRIC_CENTER" yalnızca geometrik değeri döndürür Çoklu çizgi (örneğin, sokak) veya çokgen (bölge).
    • "APPROXIMATE", yalnızca şu adresleri döndürür: değer yaklaşık olarak kabul edilir.
  • extra_computations — şu ek özellikleri ekleyin: Aynı API isteğinde bu özelliklerin birden fazlasını etkinleştirmek için Her özellik isteğinde extra_computations parametresini kullanır, örneğin:
    extra_computations=ADDRESS_DESCRIPTORS&extra_computations=BUILDING_AND_ENTRANCES

Hem result_type hem de location_type filtreleri varsa API yalnızca result_type ve location_type değerleri. Filtre değerlerinin hiçbiri kabul edilmiyorsa API, ZERO_RESULTS değerini döndürür.

Ters coğrafi kodlama örneği

Aşağıdaki sorgu, Brooklyn'deki bir konumun enlem/boylam değerini içerir:

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452&key=YOUR_API_KEY
.

Yukarıdaki sorgu aşağıdaki sonucu döndürür:

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "277",
               "short_name" : "277",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Bedford Avenue",
               "short_name" : "Bedford Ave",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Williamsburg",
               "short_name" : "Williamsburg",
               "types" : [ "neighborhood", "political" ]
            },
            {
               "long_name" : "Brooklyn",
               "short_name" : "Brooklyn",
               "types" : [ "sublocality", "political" ]
            },
            {
               "long_name" : "Kings",
               "short_name" : "Kings",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "New York",
               "short_name" : "NY",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "11211",
               "short_name" : "11211",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "277 Bedford Avenue, Brooklyn, NY 11211, USA",
         "geometry" : {
            "location" : {
               "lat" : 40.714232,
               "lng" : -73.9612889
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 40.7155809802915,
                  "lng" : -73.9599399197085
               },
               "southwest" : {
                  "lat" : 40.7128830197085,
                  "lng" : -73.96263788029151
               }
            }
         },
         "place_id" : "ChIJd8BlQ2BZwokRAFUEcm_qrcA",
         "types" : [ "street_address" ]
      },

  ... Additional <code>results[]</code> ...

Ters coğrafi kodlayıcının birden fazla sonuç döndürdüğünü unutmayın. İlgili içeriği oluşturmak için kullanılan "formatted_address" sonuçları yalnızca posta adreslerini değil, aynı zamanda herhangi bir şekilde adlandırabilir. Örneğin, bir noktanın coğrafi kodlamasını yaparken coğrafi kodu bulunan nokta bir sokak adresi olarak gösterilebilir. şehir (Şikago), eyaleti (Illinois) veya ülke (ABD) Eyaletleri). Hepsi "adres"tir bağlantı kurulabilir. Ters coğrafi kodlayıcı, geçerli sonuç olarak kabul edilir.

Ters coğrafi kodlayıcı siyasi tüzel kişiliklerle (ülkeler, iller, şehir ve mahalleler), açık adresler ve posta kodları.

formatted_address önceki sorgu aşağıda gösteriliyor.

{
   "plus_code" : {
      "compound_code" : "P27Q+MCM New York, NY, USA",
      "global_code" : "87G8P27Q+MCM"
   },
   "results" : [
      {
         "formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "street_address" ]
      },
      {
         "formatted_address" : "279 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "premise" ]
      },
      {
         "formatted_address" : "277 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "establishment", "point_of_interest" ]
      },
      {
         "formatted_address" : "291-275 Bedford Ave, Brooklyn, NY 11211, USA",
         ...
         "types" : [ "route" ]
      },
      {
         "formatted_address" : "P27Q+MC New York, NY, USA",
         ...
         "types" : [ "plus_code" ]
      },
      {
         "formatted_address" : "South Williamsburg, Brooklyn, NY, USA",
         ...
         "types" : [ "neighborhood", "political" ]
      },
      {
         "formatted_address" : "Brooklyn, NY 11211, USA",
         ...
         "types" : [ "postal_code" ]
      },
      {
         "formatted_address" : "Williamsburg, Brooklyn, NY, USA",
         ...
         "types" : [ "neighborhood", "political" ]
      },
      {
         "formatted_address" : "Kings County, Brooklyn, NY, USA",
         ...
         "types" : [ "administrative_area_level_2", "political" ]
      },
      {
         "formatted_address" : "Brooklyn, NY, USA",
         ...
         "types" : [ "political", "sublocality", "sublocality_level_1" ]
      },
      {
         "formatted_address" : "New York, NY, USA",
         ...
         "types" : [ "locality", "political" ]
      },
      {
         "formatted_address" : "New York, USA",
         ...
         "types" : [ "administrative_area_level_1", "political" ]
      },
      {
         "formatted_address" : "United States",
         ...
         "types" : [ "country", "political" ]
      }
   ],
   "status" : "OK"
}

Bu API, en spesifik adreslerden farklı adres türleri mahalle gibi daha az belirgin siyasi oluşumlara şehirler ve eyaletler. Daha tam adres genellikle bu örnekte olduğu gibi belirgin sonuç. Belirli bir daha fazla bilgi için aşağıdaki kısıtlama türe göre filtreleyebilirsiniz. Bu nedenle, 2023'e göre sonuçların konumu birbiri arasında değişiklik gösterebilir.

Türe göre filtrelenen coğrafi kodlamayı tersine çevir

Aşağıdaki örnekte, döndürülen adresler yalnızca bu adresleri içerecek şekilde filtrelenmektedir konum türü ROOFTOP ve adres türü street_address.

https://maps.googleapis.com/maps/api/geocode/json?latlng=40.714224,-73.961452
&location_type=ROOFTOP&result_type=street_address&key=YOUR_API_KEY

Not: Bu filtreler yalnızca tersine coğrafi kodlama.

Coğrafi kodlama yanıtlarını tersine çevirme

Ters coğrafi kodlama yanıtının biçimi Coğrafi Kodlama ile aynıdır tıklayın. Yanıtların coğrafi kodlamasını yapma başlıklı makaleyi inceleyin. Aşağıda, ters coğrafi kodlama yanıtında bulunabilecek durum kodları verilmiştir.

Coğrafi kodlama durum kodlarını tersine çevir

Coğrafi Kodlama yanıt nesnesindeki "status" alanı şunları içerir: ve hata ayıklama bilgileri içerebilir. Ayrıca, ve tersine coğrafi kodlamanın neden çalışmadığını anlamaktır. "status" alanı aşağıdaki değerleri içerebilir:

  • "OK", herhangi bir hata oluşmadığını ve en az bir hata oluştuğunu belirtir döndürüldü.
  • "ZERO_RESULTS", ters coğrafi kodlamanın başarılı ancak hiçbir sonuç döndürmedi. Bu durum, coğrafi kodlayıcının uzak bir konumda latlng geçti.
  • "OVER_QUERY_LIMIT", kota.
  • "REQUEST_DENIED", isteğin reddedildiğini gösterir. Muhtemelen istekte result_type veya location_type parametresi var ancak API anahtarı içermiyor.
  • "INVALID_REQUEST" genellikle aşağıdakilerden birini gösterir:
    • Sorgu (address, components veya latlng) eksik.
    • Geçersiz bir result_type veya location_type: değeri.
  • "UNKNOWN_ERROR", isteğin gerçekleştirilemediğini gösterir işlendi. Aşağıdaki durumlarda istek başarılı olabilir: tekrar deneyin.

Ters coğrafi kodlama artı kodları

Coğrafi Kodlama yanıtındaki plus_code alanı, şunu içeren bir artı kodu içerir: sorgulanan enlem ve boylamı en iyi şekilde tahmin eder. Buna ek olarak, JSON sonuç dizisi çoğu durumda tam bir Coğrafi Kodlama içerir plus_code türünde ve artı içeren bir adresle sonuç girin. Kodu çözülmüş artı kodu ile istek noktası arasındaki mesafe şu şekildedir: 10 metrenin altında olması garanti edilir.