Bagaimana Anda melakukan validasi alamat? [Tutup]

89

Apakah mungkin untuk melakukan validasi alamat (fisik, bukan email)? Tampaknya banyaknya format alamat, bahkan di AS saja, akan membuat ini menjadi tugas yang cukup sulit. Di sisi lain, sepertinya tugas yang diperlukan untuk beberapa kebutuhan bisnis.

Kevin Pang
sumber
23
apa pun yang Anda lakukan, jika alamat tampaknya tidak valid, biarkan pengguna memilih bahwa itu benar-benar valid, jangan hanya menolaknya karena validator mengatakan itu tidak valid.
Pim Jager
Apakah yang Anda maksud adalah "pelengkapan otomatis alamat" atau "validasi alamat"? Maksud saya, tidak ada layanan yang akan mengetahui semua perubahan yang terjadi di dunia nyata. Setiap menit jutaan alamat baru muncul dan yang lama dihancurkan. Dan saya berbicara secara lokal sekarang, dalam lingkup planet.
Yevgeniy Afanasyev

Jawaban:

27

Berikut ini cara gratis dan semacam "di luar kotak" untuk melakukannya. Tidak 100% sempurna, tetapi seharusnya menolak alamat yang tidak ada secara terang-terangan.

Kirimkan seluruh alamat ke layanan web geocoding Google . Layanan ini mencoba mengembalikan koordinat yang tepat dari lokasi Anda memberinya makan, yaitu lintang dan bujur.

Menurut pengalaman saya, jika alamatnya tidak valid, Anda akan mendapatkan hasil 602 dari layanan. Pasti ada kemungkinan positif palsu atau negatif palsu, tetapi digunakan bersama dengan pemeriksaan konsistensi lainnya, ini bisa berguna.

( Layanan web geocoding Yahoo , di sisi lain, akan mengembalikan koordinat pusat kota jika kota tersebut ada, tetapi alamat lainnya palsu. Berpotensi berguna selama Anda memperhatikan bidang "presisi" di hasil).

Tim Farley
sumber
4
Apakah ada orang yang benar-benar menggunakan metode ini pada sistem langsung?
Aston
27
TOS Google dan Yahoo melarang penggunaan layanan geocoding mereka kecuali dalam hubungannya dengan penggunaan peta yang ditampilkan kepada pengguna. Temukan sesuatu yang lebih seperti saran Jonathan Oliver. Lihat: code.google.com/apis/maps/terms.html
Matt
1
Saya tidak mendapatkan hasil 602 tersebut saat memasukkan alamat yang buruk.
HK1
9
Ini seharusnya TIDAK menjadi jawaban yang dipilih. Ini melanggar TOS Google, dan sebenarnya tidak benar-benar memvalidasi alamat. Google menggunakan banyak kecerdasan untuk "menebak" alamat apa yang Anda inginkan meskipun informasinya sedikit salah. Google juga akan mengembalikan geocode jika Anda mengatakan masukkan 55 Main St dan google tahu ada 50 Main st dan 60 main St. itu akan mengembalikan geocode sukses rata-rata dari jarak, bahkan jika 55 Main St sebenarnya tidak ada. Anda perlu menggunakan layanan validasi nyata seperti USPS atau Experian atau SmartyStreets.
jacurtis
1
Ini akan membuat aplikasi Blockchain yang luar biasa di mana setiap orang berkontribusi dengan sebuah node dengan menyimpan potongan-potongan dari database besar yang selalu berubah ...
decoder7283
20

Ada sejumlah jawaban bagus di sini tetapi kebanyakan dari mereka membuat asumsi bahwa pengguna menginginkan solusi "API" di mana mereka harus menulis kode untuk menyambung ke layanan pihak ketiga dan / atau layar mengikis USPS. Ini semua baik dan bagus, tetapi harus diperhitungkan dalam persyaratan bisnis dan biaya yang terkait dengan penerapan dan kemudian dipertimbangkan terhadap manfaat yang diinginkan.

Bergantung pada kebutuhan bisnis dan cara data diterima ke dalam sistem, solusi pemrosesan alamat waktu nyata mungkin merupakan pilihan terbaik. Jika solusi waktu nyata diperlukan, Anda dapat mempertimbangkan perjanjian lisensi dan batasan teknis dari Google Maps / Bing / Yahoo API. Mereka biasanya membatasi jumlah panggilan yang dapat Anda lakukan setiap hari. API alat web USPS sama, tetapi mereka membatasi bagaimana / mengapa Anda dapat menggunakan sistem mereka dan bagaimana Anda diizinkan untuk menggunakan data setelahnya.

Pada saat yang sama, ada beberapa penyedia layanan hebat yang dapat dengan mudah memproses daftar alamat statis. Pada dasarnya, Anda memberi penyedia layanan file CSV atau file Excel, mereka membersihkannya dan mengembalikannya kepada Anda. Ini adalah kesepakatan satu kali tanpa komitmen atau kewajiban jangka panjang — biasanya.

Pengungkapan penuh: Saya pendiri SmartyStreets. Kami melakukan verifikasi alamat untuk alamat di Amerika Serikat. Kami dengan mudah dapat mensertifikasi daftar CASS dan kami juga menawarkan API layanan web verifikasi alamat . Kami tidak memiliki biaya tersembunyi, kontrak, atau apapun. Anda menggunakan layanan kami sampai Anda tidak lagi membutuhkannya dan Anda dapat pergi. (Tidak seperti perusahaan telepon seluler yang membutuhkan kontrak.)

Jonathan Oliver
sumber
1
Sempurna, persis seperti yang saya cari. Dan saya katakan, Anda punya gaya, Pak. Situs tampak bagus.
Cory Mawhorter
2
Kami menggunakan SmartyStreets dan itu luar biasa.
JerSchneid
17
Biaya SmartyStreet untuk 1.000 pencarian adalah $ 30. Menghemat Anda satu klik.
William Entriken
1.000 pencarian = $ 66 untuk internasional
Robert Sinclair
Sebenarnya USPS memiliki antarmuka REST untuk ini ... namun, dan ini BESAR namun ... jika Anda menekan hal ini dengan skrip untuk memvalidasi database yang penuh dengan alamat, mereka akan melarang Anda. Anda diizinkan untuk memvalidasi entri data pengguna dengannya sehingga tidak masalah untuk digunakan pada formulir web di mana klik API akan diatur waktunya secara acak. Pastikan formulir Anda memiliki perlindungan bot atau Anda akan segera mendapatkan akses API DoS. Juga ini hanya bagus untuk alamat AS.
Neil Davis
15

USPS memiliki alamat cleaner secara online , yang seseorang telah layar tergores menjadi jejaring orang miskin. Namun, jika Anda cukup sering melakukan ini, akan menjadi ide yang lebih baik untuk mengajukan akun USPS dan menghubungi layanan web mereka sendiri .

Tandai Brackett
sumber
17
Untuk menyelamatkan siapa pun dari mulas karena melakukan itu dan mendapatkan surat penolakan tiga hari kemudian, hampir tidak ada yang benar-benar diizinkan menggunakan validator alamat USPS sendiri. Itulah mengapa layar pria itu menggoresnya di tempat pertama. Ini sangat terbatas pada organisasi nirlaba.
Nicholas Piasecki
5
USPS tidak mengizinkan data ini digunakan untuk hal lain selain mengirimkan surat atau paket. Dengan kata lain, Anda harus mengirim ke alamat yang Anda cari.
16
USPS akan mengizinkan penggunaan komersial IFF Anda tidak menjual kembali atau membersihkan database Anda. Kami memenuhi syarat untuk sebuah akun dan menggunakannya untuk memverifikasi / memperbaiki SEMUA alamat yang masuk melalui formulir web kami.
marklark
2
Atau berniat untuk mengirim email ke suatu saat. Perusahaan saya pada awalnya ditolak aksesnya ke USPS API tetapi, setelah mengklarifikasi penggunaan yang dimaksudkan (dan menyatakan bahwa kami tidak akan menggunakan API untuk memperbaiki data lama), kami disetujui.
marklark
4
Anda hanya dapat menggunakan API USPS jika Anda memverifikasi alamat untuk melakukan pengiriman surat atau melakukan pengiriman: secure.shippingapis.com/registration - jika Anda tidak mengirim surat atau mengirim melalui USPS, cari API alternatif yang tidak memiliki batasan lisensi.
Matt
9

Saya akan merujuk Anda ke posting blog saya - Sebuah pelajaran tentang penyimpanan alamat , saya membahas beberapa teknik dan algoritma yang digunakan dalam proses validasi alamat. Pikiran utama saya adalah "Jangan malas dengan penyimpanan alamat, ini tidak akan membuat Anda sakit kepala lagi di masa mendatang!"

Juga, ada pertanyaan StackOverflow lain yang menanyakan pertanyaan ini. Berjudul Bagaimana seharusnya alamat geografis internasional disimpan dalam database relasional .

BenAlabaster
sumber
8

Dalam rangka mengembangkan layanan verifikasi alamat internal di perusahaan Jerman tempat saya bekerja, saya menemukan sejumlah cara untuk mengatasi masalah ini. Saya akan melakukan yang terbaik untuk merangkum temuan saya di bawah ini:

Gratis, Perangkat Lunak Sumber Terbuka

Jelas, pendekatan pertama yang akan diambil siapa pun adalah pendekatan sumber terbuka (seperti openstreetmap.org ), yang bukan merupakan ide yang buruk. Tetapi apakah Anda benar-benar dapat menggunakan ini dengan baik dan dapat diandalkan sangat bergantung pada seberapa besar Anda perlu mengandalkan hasil.

Alamat adalah hal yang sangat bervariasi. Memverifikasi alamat AS bukanlah tugas yang mudah, tetapi dapat ditanggung, tetapi begitu Anda pergi ke Eropa, terutama Inggris dengan sistem Kode Pos mereka yang ekstensif, pendekatan sumber terbuka akan kekurangan data.

Layanan Web / API

Perangkat Lunak Kelas Perusahaan

Uang menyelesaikannya, jelas. Tetapi tidak setiap bisnis atau pengembang dapat menghabiskan ~ $ 0,15 per pencarian alamat (itu $ 150 untuk 1.000 permintaan API) - model bisnis yang sangat mahal yang telah diterapkan oleh sebagian besar API validasi alamat.

Apa yang akhirnya saya integrasikan: API streetlayer

Karena saya tidak mau mengambil pendekatan terprogram untuk memverifikasi data alamat secara manual, saya akhirnya sampai pada kesimpulan bahwa saya membutuhkan API dengan label harga yang tidak akan membuat atasan saya ingin memecat saya dan tetap memberikan yang solid dan dapat diandalkan hasil verifikasi internasional.

Singkat cerita, saya akhirnya mengintegrasikan API yang dibangun oleh apilayer, yang disebut "API streetlayer". Saya dengan mudah diyakinkan oleh integrasi JSON yang sederhana, hasil validasi yang sangat akurat, dan harga yang ramah pengembang. Selain itu, 100 permintaan / bulan sepenuhnya gratis.

Semoga ini membantu!

jujur
sumber
jawaban bagus, sayangnya API streetlayer akan ditutup minggu depan (pada 2017-07-03). ada alternatif lain di luar sana yang kurang dari 15 sen per permintaan?
Chris
1

Saya telah menggunakan layanan http://www.melissadata.com "Objek alamat" mereka bekerja dengan sangat baik. Itu mahal, ya. Tetapi ketika Anda mempertimbangkan biaya untuk menulis solusi Anda sendiri, biaya data kotor dalam aplikasi Anda, surat yang dikembalikan - penjualan yang hilang, dan sejenisnya - biayanya dapat dibenarkan.

Taptronic
sumber
1

Anda juga dapat mencoba solusi Kualitas Data SAP yang tersedia di kedua platform server yang memproses sejumlah besar permintaan atau sebagai SDK yang dapat disematkan jika Anda ingin menjalankannya dalam proses dengan aplikasi Anda. Kami menggunakannya dalam aplikasi kami dan ini sangat kuat dan dapat diskalakan.

James Cheng
sumber
1

Seperti yang terlihat di reddit :

$address = urlencode('1600 Pennsylvania Avenue, Washington, DC');
$json = json_decode(file_get_contents("http://where.yahooapis.com/geocode?q=$address&flags=J"));
print_r($json);
Xeoncross
sumber
1

Anda dapat mencoba Api "IdentifyAddress" Pitney Bowes yang tersedia di - https://identify.pitneybowes.com/

Layanan ini menganalisis dan membandingkan alamat input dengan database alamat yang diketahui di seluruh dunia untuk menghasilkan detail standar. Ini mengoreksi alamat, menambahkan informasi pos yang hilang dan memformatnya menggunakan format yang disukai oleh otoritas pos yang berlaku. Saya juga menggunakan basis data alamat tambahan sehingga dapat memberikan detail yang ditingkatkan, termasuk kualitas alamat, jenis alamat, transliterasi (seperti dari Kanji Cina ke karakter Latin) dan apakah alamat divalidasi ke tingkat premis / rumah, jalan, atau kota informasi referensi.

Anda akan menemukan banyak contoh dan SDK yang tersedia di situs dan saya merasa sangat mudah untuk diintegrasikan.

Parag Mittal
sumber
1

Satu area di mana pencarian alamat harus dilakukan dengan andal adalah untuk layanan VOIP E911. Saya mengetahui perusahaan dengan andal menggunakan layanan berikut untuk ini:

Bandwidth.com 9-1-1 Access API MSAG Address Validation

MSAG = Panduan Alamat Jalan Utama

https://www.bandwidth.com/9-1-1/

SmartyStreet US Street Address API

https://smartystreets.com/docs/cloud/us-street-api

Grokify
sumber
0

Ada perusahaan yang menyediakan layanan ini. Biro layanan yang menangani pengiriman massal akan menggeser seluruh milis ke dalam format yang tepat, yang menghasilkan diskon pada perangko. USPS menjual database informasi alamat yang dapat digunakan untuk mengembangkan solusi kustom. Mereka juga memiliki daftar vendor yang disetujui yang menyediakan perangkat lunak dan layanan semacam ini.

Ada beberapa (tetapi tidak banyak) paket yang memiliki API untuk mengaitkan validasi alamat ke perangkat lunak Anda.

Namun, Anda benar bahwa itu masalah yang sangat buruk.

http://www.usps.com/ncsc/ziplookup/vendorslicensees.htm

Jason
sumber
0

Seperti yang disebutkan, ada banyak layanan di luar sana, jika Anda ingin benar-benar memvalidasi seluruh alamat maka saya sangat menyarankan untuk menggunakan layanan jenis Layanan Web untuk memastikan bahwa perubahan dapat dengan cepat dikenali oleh aplikasi Anda.

Selain layanan yang tercantum di atas, webservice.net memiliki layanan Validasi Alamat AS ini. http://www.webservicex.net/WCF/ServiceDetails.aspx?SID=24

Penjual Mitchel
sumber
0

Kami sukses dengan Perfect Address .

Database mereka memiliki semua rentang nama jalan dan nomor jalan AS. Juga bertindak sebagai parser yang cukup baik untuk bidang alamat bentuk bebas, jika Anda cukup beruntung memiliki data semacam itu.

Jason DeFontes
sumber
Sangat menarik ... situs web kuno mereka membuat saya bertanya-tanya apakah mereka masih dalam bisnis atau dapat diandalkan?
Anthony Griggs
Sudah lama sejak saya berada di perusahaan tempat kami menggunakan itu. Sepertinya mereka tidak banyak berubah, tetapi mereka masih mengklaim memiliki data terkini.
Jason DeFontes
0

Memvalidasinya adalah alamat yang valid adalah satu hal.

Tetapi jika Anda mencoba untuk memvalidasi seseorang yang tinggal di alamat tertentu, satu-satunya jaminan Anda adalah tes email ke alamat tersebut, dan bahkan itu tidak pasti apakah orang tersebut terorganisir atau mengenal seseorang di alamat itu.

Jika tidak, orang dapat menentukan alamat acak sembarang yang mereka tahu ada dan itu tidak akan berarti apa-apa bagi Anda.

Hal terbaik yang dapat Anda lakukan untuk hasil langsung adalah meminta pengguna mengirimkan foto / pindaian salinan kepala rekening koran mereka atau bukti tempat tinggal terkini lainnya, karena setidaknya mereka harus bekerja lebih keras untuk melupakannya, dan menempa benda-benda tersebut muncul dengan mudah dengan analisis forensik gambar tingkat dasar.

Kent Fredric
sumber
0

Tidak ada solusi global. Untuk negara tertentu, cara ini paling rumit.

Di Inggris Raya, PostOffice mengontrol alamat pos, dan dapat memberikan (dengan biaya) informasi alamat untuk tujuan validasi.

Instansi pemerintah juga menyimpan daftar alamat yang ekstensif, dan ini disusun secara terpusat di NLPG (National Land and Property Gazetteer).

Sebenarnya memvalidasi terhadap daftar ini sangat sulit. Kebanyakan orang bahkan tidak tahu persis bagaimana alamat mereka seperti yang dipegang oleh PostOffice. Beberapa bisnis bahkan tidak tahu nomor berapa mereka di jalan tertentu.

Taruhan terbaik Anda adalah mendekati perusahaan yang berspesialisasi dalam hal semacam ini.

Kramii
sumber
0

Untuk data alamat berbasis AS, perusahaan saya telah menggunakan GeoStan . Ini memiliki binding untuk C dan Java (dan kami membuat binding Perl). Perhatikan bahwa ini adalah produk komersial dan tidak murah. Ini cukup cepat (~ 300 alamat per detik) dan menawarkan fitur seperti sertifikasi CASS (diskon surat massal USPS), penandaan DPV (verifikasi titik pengiriman), dan geocoding LON / LAT.

Ada modul Perl Geo :: PostalAddress , tetapi menggunakan heuristik dan tidak memiliki fitur lain yang disebutkan untuk GeoStan.

Sunting: beberapa telah menyebutkan 'melakukannya sendiri', jika Anda memutuskan untuk melakukan ini, sumber informasi yang baik untuk memulai adalah Kumpulan Data Harimau Sensus AS , yang berisi banyak informasi tentang AS termasuk informasi alamat.

Kyle Burton
sumber
0

Yahoo juga memiliki API Pembuat Letak. Ini hanya bagus untuk lokasi tetapi memiliki id universal untuk semua lokasi dunia.

Sepertinya tidak ada standar dalam daftar ISO .

Elzo Valugi
sumber
0

NAICS.com keluar dengan API yang akan menambahkan semua jenis data bisnis utama termasuk alamat jalan. Ini akan terjadi dengan cepat saat formulir situs Anda diproses. https://www.naics.com/business-intelligence-api/

Jillian Baker
sumber
0

Tersedia layanan Fixaddress.com yang menyediakan layanan berikut ini,

1) Alamat Validasi.

2) Koreksi Alamat.

3) Mengatasi koreksi ejaan.

4) Memperbaiki kesalahan fonetik alamat.

Fixaddress.com menggunakan data USPS dan Tiger sebagai data referensi.

Untuk lebih detail kunjungi tautan di bawah ini,

http://www.fixaddress.com/

Rakesh Chaudhari
sumber
-1

Untuk alamat AS Anda dapat meminta negara bagian yang valid, dan memverifikasi bahwa zip tersebut valid. Anda bahkan dapat memeriksa apakah kode posnya dalam keadaan yang benar, tetapi di luar itu saya rasa tidak banyak tes yang dapat Anda jalankan yang tidak akan memberikan banyak negatif palsu.

Apa yang Anda coba lakukan - mencegah kesalahan sederhana atau memaksakan semacam pemeriksaan identitas?

Rob Walker
sumber
Anda harus menggunakan pihak ketiga, layanan bayar untuk.
mmcdole
Anda tidak harus menggunakan alat pihak ketiga. USPS memiliki layanan web yang melakukan ini.
brian d foy
Sebenarnya jika tugas yang Anda lakukan adalah "pastikan alamat ini dapat diterima oleh layanan pos lokal" maka di Amerika Serikat, USPS dapat dianggap sebagai pihak kedua (tapi kemudian itu membuat klien yang mengirimkan alamat semacam itu pihak ketiga).
tripleee