Adres doğrulama ve coğrafi kodlama arasındaki fark

Hedef

Genellikle bir yerin konumunu doğrulamanız gerekir. Google Haritalar Platformu'nda bu kullanım alanında size yardımcı olabilecek birkaç farklı hizmet vardır. Bu doküman, iki temel konum doğrulama hizmeti olan Address Validation API ve Geocoding API arasında seçim yapmanıza yardımcı olur.

Address Validation API, müşterilerin bir adresin doğru olup olmadığını doğrulamasına yardımcı olan bir Google Haritalar Platformu teklifidir.

Geocoding API ile coğrafi kodlama, adresleri coğrafi koordinatlara dönüştürme işlemidir. Bu koordinatları, haritaya işaretçi veya haritaya konum yerleştirmek için kullanabilirsiniz.

Adres Doğrulama ve Geocoding API arasındaki farkların üst düzey bir özetini burada bulabilirsiniz.

Address Validation API ve Geocoding API ne zaman seçilir?

Address-Validation-vs-Geocoding

Yukarıdaki akış şemasıyla ilgili notlar:

  • Kullanıcı etkileşimi kullanım alanı, bir kullanıcının sonuçlarla etkileşim kurmak için hazır bulunduğu durumları ifade eder.
  • Yer Adı Otomatik Tamamlama, bir JavaScript API'si olduğundan kullanıcı arayüzleriyle entegrasyon için uygundur.
  • Mevcut adreslerinizde veri kalitesi sorunları olabilir. Bu nedenle, yalnızca coğrafi kodlar istiyor olsanız da veri kümelerini düzeltmek için bu konumları Address Validation API üzerinden çalıştırmanız önerilir.

Yukarıdaki karar ağacına göre bir ürünü diğerine tercih edebileceğiniz birçok durum vardır. Ancak bazı durumlarda hedeflerinize ulaşmak için her iki ürünü de kullanmanız gerekebilir.

Aşağıdaki durumlarda Geocoding API yerine Address Validation API'yi kullanmayı tercih edebilirsiniz:

  • Verilerin şüpheli olma ihtimali yüksekse veya yanlış adres almanın olumsuz bir etkisi olacaksa Bunun nedeni, Address Validation API'nin bir girişin neden yüksek hassasiyetli bir sonuç almadığı hakkında daha fazla geri bildirim sağlamasıdır.
  • Kullanıcı girişlerini (ör.yazım hataları veya eksik alanlar) düzeltmeniz gerekir. Bu sayede, çıktıda doğru sonuç alma olasılığı artar.
  • Hedef bölgeniz, Geocoding API'ye kıyasla Address Validation API'den daha fazla meta veri (ör. bina türünün konut veya ticari olarak sınıflandırılması) döndürür.

Aşağıdaki durumlarda Address Validation API'si yerine coğrafi kodlamayı kullanmayı tercih edebilirsiniz:

  • Birincil hedefiniz bir adresin konumunu almaksa ve her bir adresin doğruluğu kritik değilse
    • Örneğin, büyük bir veri kümesinden ısı haritası oluşturmak isteyebilirsiniz.
  • Bina girişleri, bina ana hatları veya teslim alma ve bırakma navigasyon noktaları gibi çok yerel hedef ayrıntılarına ihtiyacınız var (Geocoding API v4'teki SearchDestinations yöntemiyle kullanılabilir).
  • Global bir çözüme ihtiyacınız var ve Adres Doğrulama API'si tüm hedef bölgelerde kullanılamıyor.

Aşağıda, Address Validation API'nin Geocoding API'ye kıyasla özelliklerini gösteren bazı örnekler verilmiştir.

Geçersiz Adres Örneği

1 Fake St, Mountain View, CA 94043, ABD

Address Validation API, bu girişi ayrı adres bileşenlerine (sokak, şehir, eyalet vb.) ayırır. Ayrıca adresin neden geçerli olmadığına dair PREMISE düzeyinde ayrıntılı geri bildirim de verebilir.

Mountain View, Kaliforniya'da Fake St adında bir sokak yoktur. Address Validation API, döndürülen bileşen düzeyindeki ayrıntılarda bunu yansıtır:

{
  "componentName": {
    "text": "Fake St",
    "languageCode": "en"
   },
   "componentType": "route",
   "confirmationLevel":"UNCONFIRMED_BUT_PLAUSIBLE"
 }

Bu durumda incelenecek önemli özellik confirmationLevel özelliğidir. API, Fake St için UNCONFIRMED_BUT_PLAUSIBLE döndürerek bir sokağın bu ada sahip olabileceğini belirlemiştir ancak bu ad, destekleyici adres verileriyle eşleştirilememektedir.

API sonucu geri bildirim olarak kullanıldığında bu girişin sokak bileşeninin (Fake St) hatalı olduğu anlaşılabilir.

Geocoding API ile aynı adresi kullanarak "California" ile eşleşme yapabilir. Bunu, buradan deneyebileceğiniz coğrafi kodlama aracının ekran görüntüsünde görebilirsiniz:

alt_text

Ancak sonuç, tüm eyaletin coğrafi kodudur ve girişteki hangi bileşenlerin hatalı olabileceğine dair minimum geri bildirim içerir.

Yazım Hatası Örneği

76 Buckingamm Palace Road, Londn, SW1W 9TQ, GB

Yukarıdaki adreste birkaç yazım hatası var. Bunlardan biri sokak adında, diğeri ise yerleşim yerinde.

Hem Address Validation API hem de Geocoding API bu hataları düzeltebilir ve 76 Buckingham Palace Road, Londra, SW1W 9TQ sonucunu elde edebilir. Ancak Address Validation API, süreç hakkında daha fazla bilgi verebilir.

Giriş sırasında yanlış yazılan adres bileşenlerinden birine göz atın:

{
  "componentName": {
    "text": "Buckingham Palace Road",
    "languageCode": "en"
        },
        "componentType": "route",
        "confirmationLevel": "CONFIRMED",
        "spellCorrected": true
     }
}

Address Validation API, alanda düzeltme yapıldığını belirten bir işaret döndürür. Düzeltmeyi veri sağlayıcıyla (ör. e-ticaret ödeme sayfasındaki bir müşteri) tekrar kontrol etmek için bu işaretle ilgili işletme mantığı uygulanabilir.

Eksik Veri ve Yazım Hatası Örneği

Bollschestraße 86, 12587, DE

Yukarıdaki adreste sokak adında yazım hatası var ve Berlin şehri (yerleşim yeri) eksik.

Adres Doğrulama API'si bu hataların ikisini de düzeltebilir ve PREMISE düzeyinde bir coğrafi kod ile PREMISE düzeyinde doğrulanmış bir adres döndürür:

Bölschestraße 86, 12587 Berlin, DE

Geocoding API, bu durumda giriş hatalarını başarıyla gideremez ve ZERO_RESULTS sonucunu döndürür.

Ek Adres Meta Verisi Örneği

111 8th Avenue Ste 123, New York, NY 10011-5201, ABD

Bu adres, binada bulunmayan daire numarası (Ste 123) dışında doğru.

Address Validation API, adresi PREMISE (111 8th Ave) olarak doğrulayabilir ve mülkle ilgili bazı meta veriler (ör. ticari bir mülk olduğu) sağlayabilir.

premises:

"business": true

Ayrıca yanıttaki uspsData kapsamında döndürülen dpvConfirmation değeri S şeklindedir:

"dpvConfirmation": "S"

dpvConfirmation değerinin S olması, adresin PREMISE düzeyinde doğrulandığını ancak girişte sağlanan daire numarasının bu adresle ilişkili olmadığını gösterir.

Geocoding API bu bilgiyi sağlayamaz.

Geocoding API yanıtını anlama

Genel Bakış

Geocoding API'yi kullanıyorsanız coğrafi kod sonucu, yanıtta sağlanan adresin ayrıntılarını anlamak için kullanılabilecek çeşitli ipuçları içerir.

Geocoding API, adres bileşenlerini hiyerarşik olarak çözerek çalışır.

Örneğin, 123 Example Street, Chicago, 60007, USA aşağıdaki sırayla çözümlenir:

/ Example Street/ Chicago/ 60007/ USA bu sırayla değerlendirilir. Bu örnekte ilk eşleşme Chicago ve daha spesifik olarak 60007 posta kodudur. Bu nedenle, söz konusu posta kodu için aşağıdaki Place_id değerini döndürür:

ChIJwRKzf8ixD4gRHiXqucwr_HQ

Geocode API, yanıtta aşağıdaki bilgileri içerir:

        "partial_match": true,
           "place_id": "ChIJwRKzf8ixD4gRHiXqucwr_HQ",
           "types": [
               "postal_code"
           ]

Geocoding API, bu adresin ne tür bir yere ait olduğunu doğrulayabilir. Coğrafi Kodlama API'si tarafından döndürülen adres types listesini burada bulabilirsiniz.

Girişin bileşenlerinden hiçbiri çözümlenmezse API şunu döndürür:

{
   "results": [],
   "status": "ZERO_RESULTS"
}

Yalnızca sokak adresiyle ve bina numarası olmadan yapılan istekler şu biçimde bir sonuç döndürür:

"types": [
  "route"
]

Bu durum, Geocoding API'nin bir sokak numarası bulamadığı veya eşleştiremediği anlamına gelir.

Not: Bir adresin mevcut olup olmadığını öğrenmek için Geocoding API yanıtında parametrelerden herhangi birinin (ör. types, partial_match, results, status)) ayarlanıp ayarlanmadığını kontrol edin. Bu işlem, bir adresin var olabileceğiyle ilgili güven düzeyini kademeli olarak artırır ancak% 100 doğruluk sağlamaz. Address Validation API'ye bu nedenle ihtiyacımız var.

Yalnızca Geocoding API yanıtından adres doğruluğuna olan güveni artırmak için yukarıdaki teknikleri kullanabilirsiniz. Ancak Address Validation API sonucunun aksine Geocoding API, sonuç doğruluğunu belirlemek için kesin geri bildirim döndürmez.

Yer türü

Bu bölümü doğru şekilde anlamak için bir Geocoding API yanıtından döndürülebilecek farklı konum türlerini anlamanız gerekir:

  • ROOFTOP, döndürülen sonucun, açık adres düzeyinde doğru konum bilgisine sahip olduğumuz kesin bir coğrafi kod olduğunu gösterir.
  • RANGE_INTERPOLATED, döndürülen sonucun iki kesin nokta (ör. kavşaklar) arasında enterpolasyonla hesaplanan bir yaklaşık değeri (genellikle bir yol üzerinde) yansıttığını gösterir. Çatı katı coğrafi kodları bir sokak adresi için kullanılamadığında genellikle enterpolasyonlu sonuçlar döndürülür.
  • GEOMETRIC_CENTER, döndürülen sonucun bir çoklu çizgi (ör. sokak) veya çokgen (bölge) gibi bir sonucun geometrik merkezi olduğunu gösterir.
  • APPROXIMATE, döndürülen sonucun yukarıdakilerden hiçbiri olmadığını gösterir.

Bir Geocoding API, location_type veya ROOFTOP RANGE_INTERPOLATED döndürürse bu, adresin mevcut olduğu anlamına gelmez. Benzer şekilde, Geocoding API partial_match işareti true olarak ayarlanmış şekilde döndürülürse bu sizin için doğru sonuç olabilir.

Bu tür yanlış eşleşme, Coğrafi Kodlama API'si ile çözülmesi çok zor bir sorundur. En azından, istek / yanıtın ülkesi ve bölgesi üzerinde bazı temel işlem sonrası doğrulama adımları uygulamayı düşünebilirsiniz. Daha da iyisi, yazım hataları ve/veya eksik adresler için gerçek açık adresleri karşılaştırın.

Not: Geocoding API'yi kullanmaya karar verirseniz ilk istek ile Geocoding API yanıtı arasında düzenli olarak veri kalitesi kontrolleri yapmanız önerilir.

Kısmi eşleşme ve yanlış eşleşme

Bir adres kısmi eşleşmeyse (yani Geocoding API adresi tam olarak tanımlayamadıysa) yanıtta şunlar yer alır:

"partial_match": true,
"types": [
           "locality",
           "political"
         ]

Yukarıdaki konum türlerinden daha da önemlisi, yanıtta partial_match = true değerinin olup olmadığını dikkate almaktır. partial_match, Geocoding API'nin orijinal istek için tam eşleşme döndürmediğini ancak istenen adresin bir kısmını eşleştirebildiğini gösterir.

Orijinal isteği inceleyerek adresin eksik olup olmadığını kontrol edebilirsiniz. Kısmi eşleşmeler genellikle istekte belirtilen bölgede bulunmayan açık adresler için gerçekleşir. Bir istek aynı bölgedeki iki veya daha fazla konumla eşleştiğinde de kısmi eşleşmeler döndürülebilir.

Örneğin, "21 Henr St, Bristol, UK" hem Henry Street hem de Henrietta Street için kısmi eşleşme döndürür. Bir istekte yanlış yazılmış bir adres bileşeni varsa Geocoding API'nin alternatif bir adres önerebileceğini unutmayın. Bu şekilde tetiklenen öneriler kısmi eşleşme olarak işaretlenmez.

Yapay Adresler

Geocoding API, Google'ın veritabanında tam konum olarak bulunmayan"sentetik" adreslerin konumlarını döndürebilir.

Bu tür senaryolarda yanıt nesnesi genellikle uzun bir yer kimliği ve şu özelliği içerir: geometry.location_type=APPROXIMATE.

Yanıtta bu göstergelerle karşılaşırsanız lütfen giriş adresini geçersiz olarak işaretleyin ve başka bir yöntemle yeniden doğrulamayı deneyin.

Not: Bu, Adres Doğrulama API'si ile bir adresin mevcut olmaması durumunda doğrudan geri bildirim aldığınız başka bir örnektir.

Address Validation API yanıtını anlama

Address Validation API'den gelen yanıtları anlamayla ilgili kapsamlı dokümanlar mevcut olduğundan burada daha fazla ayrıntıya girmeyeceğiz.

  • Yanıt nesnesine genel bakış için buraya göz atabilirsiniz.
  • Yanıtın farklı bileşenlerini gösteren demo burada yer almaktadır.
  • Ödeme için adres doğrulama belgesinde, iyi ve kötü adreslerin nasıl ayırt edileceğine dair ayrıntılı bir açıklama yer alır.

En iyi uygulamalar

Coğrafi bölgeyi belirtme

Address Validation veya Geocoding API'lerine çağrı yaparken söz konusu adresi arayacağınız coğrafi bölgeyi sınırlamaya çalışmak en iyi uygulamadır. İki API bunu iki farklı şekilde uygular:

  • Geocoding API - Bölgeye Göre Öncelik Verme

    Coğrafi kodların belirli bir ülkede olacağını biliyorsanız Bölgeye Göre Öncelik Verme özelliğini kullanarak çok daha iyi sonuçlar elde edersiniz. Örneğin, Kanada'da coğrafi kodlama yapıyorsanız Kanada'ya yönelik önyargı oluşturmak için isteklerinize &region=ca eklemenizi öneririz. Bölgesel önyargının yalnızca o bölgedeki sonuçları tercih ettiğini unutmayın. Bölge dışından sonuçlar almaya devam edebilirsiniz.

  • Address Validation API - Bölge Kodu

    Benzer şekilde, Adres Doğrulama API'si de regionCode alanı kullanılarak istekte bir ISO2 kodu iletilirse daha doğru sonuçlar üretir.

Yer kimliklerini depolama

Google Haritalar Platformu'ndan alınan konum bilgilerini gelecekteki istekler için saklamak istiyorsanız yer kimliğini veritabanınızda konumun bir özelliği olarak süresiz saklayabilirsiniz. Yer kimliği başına yalnızca bir kez Find Place isteği göndermeniz yeterlidir. Ayrıca, kullanıcı her işlem ayrıntısı istediğinde yer kimliğini de arayabilirsiniz.

Her zaman en güncel bilgilere sahip olduğunuzdan emin olmak için place_id parametresiyle Yer Ayrıntıları isteği kullanarak 12 ayda bir yer kimliklerini yenileyin.

Not: Lütfen Geocoding ile ilgili en iyi uygulamalar kılavuzunu da inceleyin.

Sonuç

Bu dokümanda, Address Validation API ile Geocoding API arasındaki temel farklar açıklanmaktadır. Özetle, Address Validation API'yi aşağıdaki durumlarda kullanabilirsiniz:

  • Özellikle teslimat amacıyla doğru bir posta adresi gereklidir.
  • Giriş verilerinin kalitesinin düşük olduğu bilinmektedir. Address Validation API, giriş hatalarına karşı daha toleranslıdır, doğrulanamayan adres bileşenlerini vurgular ve giriş verilerinde düzeltmeler yapar.
  • Adres için daha fazla bilgi (ör. Konut ve Ticari) gereklidir (belirli bölgelerde kullanılabilir).

Sonraki Adımlar

Güvenilir adreslerle ödeme, teslimat ve operasyonları iyileştirme başlıklı teknik incelemeyi indirin ve Address Validation ile ödeme, teslimat ve operasyonları iyileştirme başlıklı web seminerini izleyin.

Önerilen ek kaynaklar:

Katkıda bulunanlar

Bu makale Google tarafından hazırlanmıştır. Bu makale, aşağıdaki katkıda bulunanlar tarafından yazılmıştır.

Asıl yazarlar:

Henrik Valve | Çözüm Mühendisi

Thomas Anglaret | Çözüm Mühendisi

Sarthak Ganguly | Çözüm Mühendisi