Google Haritalar Platformu'nu kullanarak konum doğrulama özelliği geliştirme

Hedef

Çoğu zaman 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 belge, iki birincil konum doğrulama hizmeti olan Address Validation API ve Geocoding API arasından seçim yapmanıza yardımcı olur.

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

Coğrafi Kodlama API'si ile coğrafi kodlama, adresleri coğrafi koordinatlara dönüştürme işlemidir. Bu koordinatları, işaretçileri bir haritaya veya haritadaki bir konuma yerleştirmek için kullanabilirsiniz.

Address Validation (Adres Doğrulama ve Coğrafi Kodlama API'si) arasındaki farklılıklara genel bakışı burada bulabilirsiniz.

Address Validation (Adres Doğrulama) ve Geocoding API (Coğrafi Kodlama API) ne zaman seçilmelidir?

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şimde bulunduğu zamanları belirtir.
  • Yerler Otomatik Tamamlama, Kullanıcı Arayüzleriyle entegrasyon için uygun olduğundan, bir JavaScript API'sidir.
  • Mevcut adreslerinizdeki veri kalitesi sorunlarının farkında olabilirsiniz. Bu nedenle yalnızca coğrafi kodlar isteyebilirsiniz ancak veri kümelerini düzeltmek için bu konumları Address Validation API aracılığıyla çalıştırmanız önerilir.

Yukarıdaki karar ağacına göre, bir ürünü diğerine tercih etmeyi seçebileceğiniz birçok durum vardır. Ancak diğer durumlarda, hedeflerinize ulaşmak için her iki ürünün de kullanılması gerekebilir.

Aşağıdaki durumlarda Coğrafi Kodlama API'si yerine Address Validation API'yi kullanmayı seçebilirsiniz:

  • Şüpheli veri olasılığı veya yanlış adres almanın satışa yönelik olumsuz etkiye neden olma olasılığı yüksektir. Bunun nedeni, Address Validation API'nin bir girişin neden yüksek hassasiyetli sonuç almadığına dair daha fazla geri bildirim sağlamasıdır.
  • Kullanıcı girişlerini (ör.yazım hatası veya eksik alanlar) düzeltmeniz gerekir. Bu, çıktıda doğru sonuç elde edilme olasılığını artırır.
  • Hedef bölgeniz, Coğrafi Kodlama API'sine kıyasla Address Validation API'den daha fazla meta veri (ör. bina türünün konut ve ticari olarak sınıflandırılması) döndürüyor.

Şu durumlarda Adres Doğrulama API'si üzerinden Coğrafi Kodlama'yı kullanmayı seçebilirsiniz:

  • Birincil hedefiniz bir adresin konumunu almaktır ve tek tek adreslerin doğruluğu çok önemli olmayabilir.
    • Örneğin, büyük bir veri kümesinden bir ısı haritası oluşturmak için.
  • Global bir çözüme ihtiyacınız vardır ve Address Validation API tüm hedef bölgelerde kullanılamaz.

Aşağıda, Geocoding API'ye kıyasla Address Validation API ö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 bağımsız adres bileşenlerine (sokak, şehir, eyalet vb.) ayırır. Adresin neden PREMISE düzeyine kadar geçerli olmadığına dair ayrıntılı geri bildirim de sağlayabilir.

Sahte St, Mountain View, CA'da mevcut değildir ve Address Validation API, döndürülen bileşen düzeyindeki ayrıntılara şu ifadeyi yansıtır:

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

Bu durumda denetlenmesi gereken önemli özellik confirmationLevel'dir. Sahte Cadde yerine UNCONFIRMED_BUT_PLAUSIBLE kodunu döndürerek API, bir sokağın bu ada sahip olabileceğini belirledi ancak bu ad destek adres verileriyle eşleştirilemiyor.

API sonucunu geri bildirim olarak kullanarak bu girişin sokak bileşeninin (Sahte Sokak) hatalı olduğu sonucuna varılabilir.

Coğrafi Kodlama API'si ile aynı adresi kullanarak "Kaliforniya"da, coğrafi kodlama aracındaki ekran görüntüsünde gördüğünüz şekilde eşleşme yapabilir. Bu işlemi burada deneyebilirsiniz:

alt_text

Ancak sonuçta tüm eyaletin coğrafi kodu kullanılır ve girişteki hangi bileşenlerin hatalı olabileceğine dair çok az geri bildirim sağlanır.

Yazım Hatası Örneği

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

Yukarıdaki adreste, biri sokak adında, diğeri yerel bölgede olmak üzere birkaç yazım hatası var.

Hem Address Validation hem de Geocoding API, bu hataları düzeltebilir ve 76 Buckingham Palace Road, Londra, SW1W 9TQ sonucunu elde edebilir. Ancak Address Validation API size işlemle ilgili daha fazla bilgi verebilir.

Girişte yanlış yazılan adres bileşenlerinden birine bakın:

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

Address Validation API, alanda bir düzeltme yapıldığını belirten bir işaret döndürür. Düzeltmeyi veri sağlayıcıdan (ör. e-ticaret ödemesindeki bir müşteri) tekrar kontrol etmek için bu işaret doğrultusunda iş mantığı uygulanabilir.

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

Bollschestraße 86, 12587, Almanya

Yukarıdaki adresin sokak adında yazım hatası var ve Berlin'in şehri (mahalli) belirtilmemiş.

Address Validation API bu hataların her ikisini de düzeltebilir ve PREMISE düzeyinde bir coğrafi kod ve PREMISE düzeyinde doğrulanmış bir adres döndürür:

Bölschestraße 86, 12587 Berlin, DE

Coğrafi Kodlama API'si bu durumda giriş hatalarını başarılı bir şekilde gideremez ve ZERO_RESULTS sonucunu döndürür.

Ek Adres Meta Veri Örneği

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

Binada bulunmayan birim numarası (Ste 123) dışında bu adres doğrudur.

Address Validation API, PREMISE (111 8. Cadde) adresini doğrulayabilir ve tesisle ilgili ticari amaçlı olması da dahil olmak üzere bazı meta veriler sağlayabilir.

tesis:

"business": true

Ayrıca yanıttaki uspsData öğesinin bir parçası olarak döndürülen dpvConfirmation değeri de S:

"dpvConfirmation": "S"

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

Geocoding API, bu bilgiyi sağlayamaz.

Coğrafi Kodlama API'si yanıtını anlama

Genel bakış

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

Geocoding API'nin çalışma şekli, adres bileşenlerini bir hiyerarşideki çözümlemektir.

**Ö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 örnekteki ilk eşleşme Chicago ve daha açık bir şekilde belirtmek gerekirse 60007 Posta Kodu'dur. 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 onaylayabilir. Coğrafi Kodlama API'si tarafından döndürülen types adresinin listesini burada bulabilirsiniz.

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

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

Ev numarası olmadan yalnızca açık adres kullanarak istekte bulunmak şu formu döndürür:

"types": [
  "route"
]

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

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

Yalnızca Coğrafi Kodlama API'si yanıtının adres doğruluğuna duyulan güveni artırmak için yukarıdaki teknikleri kullanabilirsiniz. Ancak Address Validation API sonucundan farklı olarak Coğrafi Kodlama API'si, sonuç doğruluğunu belirlemek için tam geri bildirim döndürmez.

Yer türü

Bu bölümü doğru bir ş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 kesinliğine kadar doğru konum bilgilerine sahip olduğumuz kesin bir coğrafi kod olduğunu belirtir.
  • RANGE_INTERPOLATED, döndürülen sonucun iki kesin nokta (kavşaklar gibi) arasında interpolasyon yapılmış bir yaklaşık değeri (genellikle bir yolda) yansıttığını gösterir. İnterpole edilmiş sonuçlar genellikle bir sokak adresi için çatı coğrafi kodları kullanılamadığında döndürülür.
  • GEOMETRIC_CENTER, döndürülen sonucun, çoklu çizgi (örneğin, sokak) veya poligon (bölge) gibi bir sonucun geometrik merkezi olduğunu belirtir.
  • APPROXIMATE, döndürülen sonucun yukarıdakilerden hiçbiri olmadığını belirtir.

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

Bu tür yanlış eşleme, Geocoding API ile çözülmesi çok zor bir sorundur. En azından, isteğin / yanıtın ülkesi ve bulunduğu konum için bazı temel işleme sonrası doğrulamaları uygulamayı düşünebilirsiniz. Daha da iyisi, gerçek açık adresleri yazım hataları ve/veya eksik adres açısından 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şleme ve yanlış eşleme

Bir adres kısmi eşleşmeyse, yani Coğrafi Kodlama API'si adresi tam olarak belirleyemediyse yanıt şunları içerir:

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

Yukarıdaki konum türlerinden daha da önemlisi, yanıtta partial_match = true adlı kullanıcının ne zaman olacağını dikkate almaktır. partial_match Coğrafi Kodlama API'sinin, 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.

Eksik adres için gönderilen orijinal isteği incelemenizi öneririz. Kısmi eşleşmeler çoğu zaman istekte belirtilen konumda bulunmayan açık adresler için gerçekleşir. Bir istek aynı konumdaki iki veya daha fazla konumla eşleştiğinde kısmi eşleşmeler de döndürülebilir.

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

Yapay Adresler

Coğrafi Kodlama API'si, Google'ın veritabanında kesin konum olarak bulunmayan "yapay" adresler için konumlar 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şaretleyip başka bir yöntemle yeniden doğrulamayı deneyin.

Not: Bu, Address Validation API'de bir adres yoksa doğrudan geri bildirim aldığınız bir başka örnektir.

Address Validation API yanıtını anlama

Address Validation API'den gelen yanıtları anlamaya yönelik harika dokümanlar zaten bulunduğundan, burada daha fazla ayrıntıya girmeyeceğiz.

En iyi uygulamalar

Coğrafya belirtme

Adres Doğrulama veya Coğrafi Kodlama API'lerine çağrı yaparken, söz konusu adresin aranacağı konumu sınırlamaya çalışmak en iyi uygulamadır. İki API bunu iki farklı şekilde uygular:

  • Geocoding API - Bölgeye Ağırlık Verme

    Coğrafi kodların belirli bir ülke içinde olacağını biliyorsanız Bölgeye Ağırlık Verme yöntemini kullanarak çok daha iyi sonuçlar elde edebilirsiniz. Örneğin, Kanada'da coğrafi kodlama yapıyorsanız isteklerinize Kanada'ya yönelik ağırlık kazandırmak için &region=ca eklemenizi öneririz. Bölgeye Ağırlık Verme'nin yalnızca o bölgedeki sonuçları tercih ettiğini unutmayın. Bölge dışındaki sonuçları görmeye devam edebilirsiniz.

  • Address Validation API - Bölge Kodu

    Benzer bir şekilde Address Validation API, istekte regionCode alanı kullanılarak bir ISO2 kodu iletilirse daha doğru sonuçlar üretir.

Yer kimliklerini depolama

Gelecekteki istekleriniz için Google Haritalar Platformu'ndan konumla ilgili bilgileri depolamak amacıyla yer kimliğini konumun bir özelliği olarak veritabanınızda süresiz olarak saklayabilirsiniz. Her yer kimliği için yalnızca bir kez Yer Bulma isteğinde bulunmanız gerekir. Ayrıca, bir kullanıcı işlem ayrıntılarını her istediğinde yer kimliğini arayabilirsiniz.

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

Not: Coğrafi Kodlama ile ilgili en iyi uygulamalar kılavuzunu da incelemeyi unutmayın.

Sonuç

Bu belgede, Adres Doğrulama ve Coğrafi Kodlama API'leri arasındaki temel farklılıklar açıklanmaktadır. Özet olarak, aşağıdaki durumlarda Address Validation API'yi kullanmayı düşünün:

  • Özellikle teslimatla ilgili amaçlar doğrultusunda doğru posta adresi gereklidir.
  • Giriş verilerinin düşük kalitede olduğu biliniyor. Address Validation API, giriş hatalarını daha kolay ortadan kaldırır, doğrulanamayan adres bileşenlerini vurgular ve giriş verilerinde düzeltmeler yapar.
  • Konut veya iş yeri (belirli bölgelerde kullanılabilir) gibi bir adres için daha fazla bilgi gereklidir.

Sonraki adımlar

Güvenilir adreslerle ödeme, teslimat ve işlemleri iyileştirme teknik belgesini indirin ve Adres Doğrulama ile ödeme, teslimat ve işlemleri iyileştirme Webinar'ını görüntüleyin.

Önerilen ek okuma:

Katılımcılar

Bu makale Google tarafından saklanır. İlk olarak aşağıdaki katkıda bulunanlar yazmış.

Ana yazarlar:

Henrik Valve | Çözüm Mühendisi

Thomas Anglaret | Çözüm Mühendisi

Sarthak Ganguly | Çözüm Mühendisi