2008-09-25 17 views
73

¿Es posible realizar una validación de dirección (física, no por correo electrónico)? Parece que la gran cantidad de formatos de direcciones, incluso solo en los Estados Unidos, haría que esta tarea fuera bastante difícil. Por otro lado, parece una tarea que sería necesaria para varios requisitos comerciales.¿Cómo se realiza la validación de dirección?

+18

lo que haga, si la dirección parece inválida, permita que el usuario seleccione que realmente es válida, no la rechace simplemente porque el validador dice que no es válida. –

+1

Pregunta anterior, y no se ha actualizado en un momento porque se ha cerrado. Pero un servicio excelente y de bajo costo es la API de Validación de direcciones en http://matchbox.io/#address-validation-api – Joel

Respuesta

23

Aquí hay una forma gratuita y tipo de "fuera de la caja" para hacerlo. No es 100% perfecto, pero debería rechazar direcciones que no existen.

Envíe la dirección completa al Google's geocoding web service. Este servicio intenta devolver las coordenadas exactas de la ubicación donde lo alimentas, es decir, latitud y longitud.

En mi experiencia si la dirección no es válida, obtendrá un resultado de 602 del servicio. Definitivamente existe la posibilidad de falsos positivos o falsos negativos, pero se puede usar junto con otras verificaciones de consistencia.

(Yahoo's geocoding web service, por otro lado, devolverá las coordenadas del centro de la ciudad si la ciudad existe pero el resto de la dirección es falsa. Potencialmente útil siempre que preste mucha atención al campo "precisión" en el resultado).

+4

¿Hay alguien que realmente haya usado este método en un sistema en vivo? – Aston

+0

Si la página está detrás de un inicio de sesión, esto no funcionará. Google bloqueará todas las solicitudes una vez que encuentre que la página de referencia no está disponible. –

+18

TOS de Google y Yahoo prohíben el uso de su servicio de geocodificación, excepto en combinación con el uso de un mapa que se muestra al usuario. Encuentre algo más como lo que Jonathan Oliver ha sugerido. Ver: http://code.google.com/apis/maps/terms.html – Matt

-1

Para las direcciones de EE. UU. Puede solicitar un estado válido y verificar que el archivo zip sea válido. Incluso podría verificar que el código postal esté en el estado correcto, pero más allá de eso, no creo que haya muchas pruebas que podría ejecutar que no proporcionarían una gran cantidad de falsos negativos.

¿Qué estás tratando de hacer? ¿Prevenir errores simples o imponer algún tipo de verificación de identidad?

+0

. Debe utilizar servicios de pago de terceros. – mmcdole

+0

No tiene que usar herramientas de terceros. USPS tiene servicios web que hacen esto. –

+10

lol - Servicios web de USPS * IS * ¡un tercero! –

1

Para los datos de dirección basados ​​en nosotros mi empresa ha utilizado GeoStan. Tiene enlaces para C y Java (y creamos un enlace Perl). Tenga en cuenta que es un producto comercial y no es barato. Aunque es bastante rápido (~ 300 direcciones por segundo) y ofrece funciones como la certificación CASS (descuento de correo masivo de USPS), el marcado DPV (verificación de punto de entrega) y la codificación geográfica LON/LAT.

Hay un módulo Perl Geo::PostalAddress, pero usa heurística y no tiene las otras características mencionadas para GeoStan.

Editar: algunos han mencionado 'hágalo usted mismo', si decide hacerlo, una buena fuente de información para comenzar es el US Census Tiger Data Set, que contiene mucha información acerca de los EE. UU., Incluida la información de la dirección.

0

Hay empresas que ofrecen este servicio. Las oficinas de servicios que se ocupan del envío masivo de correos borrará toda una lista de correo para que esté en el formato adecuado, lo que da como resultado un descuento en el franqueo. El USPS vende bases de datos de información de direcciones que se pueden usar para desarrollar soluciones personalizadas. También tienen listas de proveedores aprobados que brindan este tipo de software y servicio.

Hay algunos (pero no muchos) paquetes que tienen API para enganchar la validación de direcciones en su software.

Sin embargo, tienes razón de que es un problema bastante desagradable.

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

0

Como se ha mencionado hay muchos servicios por ahí, si usted está buscando para validar realmente la dirección completa a continuación, recomiendo ir con un servicio de tipo Web Service para asegurar que los cambios pueden ser rápidamente reconocidos por su aplicación .

Además de los servicios mencionados anteriormente, webservice.net tiene este servicio de validación de dirección de los EE. UU. http://www.webservicex.net/WCF/ServiceDetails.aspx?SID=24

1

Hemos tenido éxito con Perfect Address.

Su base de datos tiene todos los nombres de calles y rangos de números de calles de EE. UU. También actúa como un analizador bastante decente para campos de direcciones de forma libre, si tiene la suerte de tener ese tipo de datos.

0

Validarlo es una dirección válida es una cosa.

Pero si intenta validar una persona dada vive en una dirección determinada, su única garantía sería un correo de prueba a la dirección, e incluso eso no es seguro si la persona está organizada o conoce a alguien en esa dirección.

De lo contrario, la gente podría simplemente especificar una dirección aleatoria arbitraria que saben que existe y no significaría nada para usted.

Lo mejor que puede hacer para obtener resultados inmediatos es solicitar al usuario enviar una copia fotografiada/escaneada del jefe de su extracto bancario o alguna otra prueba de residencia reciente, porque al menos entonces tienen que trabajar más duro para Olvídalo y forjarlo dice que las cosas se muestran fácilmente con un nivel básico de análisis forense de imágenes.

1

He utilizado los servicios de http://www.melissadata.com Su "objeto de dirección" funciona muy bien. Es caro, sí. Pero cuando se consideran los costos de escribir sus propias soluciones, el costo de los datos sucios en su aplicación, los envíos de correo devueltos (ventas perdidas, etc.), los costos pueden justificarse.

0

No hay una solución global. Para cualquier país dado es, en el mejor de los casos, complicado.

En el Reino Unido, PostOffice controla las direcciones postales y puede proporcionar (a un costo) información de la dirección con fines de validación.

Las agencias gubernamentales también mantienen una extensa lista de direcciones, que se recopilan centralmente en el NLPG (National Land and Property Gazetteer).

Validar realmente estas listas es muy difícil. La mayoría de las personas ni siquiera saben exactamente cómo es la PostOffice en su dirección. Algunas empresas ni siquiera saben qué número son en una calle en particular.

Su mejor opción es acercarse a una empresa que se especialice en este tipo de cosas.

14

USPS tiene un limpiador de direcciones online, que alguien tiene screen scraped en el servicio web de un hombre pobre. Sin embargo, si está haciendo esto con la suficiente frecuencia, sería una mejor idea solicitar un USPS account y llamar a su propio webservice.

+15

Para salvar a cualquiera del ardor de estómago por hacer eso y recibir una carta de rechazo tres días después, casi nadie está autorizado a usar el propio validador de direcciones de USPS. Es por eso que la pantalla del chico lo raspó en primer lugar. Está estrictamente limitado a organizaciones sin fines de lucro. –

+13

El USPS permitirá el uso comercial IFF no está revendiendo o limpiando sus bases de datos. Calificamos para una cuenta y la usamos para verificar/corregir TODAS las direcciones que ingresan a través de nuestros formularios web. – marklark

+1

Solo puede usar la API de USPS si está verificando una dirección para realizar un envío por correo o hacer envíos: https://secure.shippingapis.com/registration/ - si no realiza envíos o envíos a través de USPS, luego encuentra una API alternativa que no tiene restricciones de licencia. – Matt

10

Lo referiré a mi entrada de blog - A lesson in address storage, voy a algunas de las técnicas y algoritmos utilizados en el proceso de validación de direcciones. Mi pensamiento clave es "No seas perezoso con el almacenamiento de direcciones, ¡no te causará más que dolores de cabeza en el futuro!"

Además, hay otra pregunta de StackOverflow que hace esta pregunta. Titulado How should international geographic addresses be stored in a relational database.

0

Yahoo tiene también un Placemaker API. Es bueno solo para ubicaciones, pero tiene una identificación universal para todas las ubicaciones del mundo.

Parece que no hay un estándar en ISO list.

1

También puede probar las soluciones de calidad de datos de SAP, que están disponibles tanto en una plataforma de servidor que está procesando una gran cantidad de solicitudes como en SDK incrustado si desea ejecutarlo en proceso con su aplicación. Lo usamos en nuestra aplicación y es muy robusto y escalable.

15

Hay una serie de buenas respuestas aquí, pero la mayoría de ellas presuponen que el usuario desea una solución "API" en la que debe escribir código para conectarse a un servicio externo y/o eliminar el USPS. Todo esto está muy bien, pero debe tenerse en cuenta en los requisitos del negocio y los costos asociados con la implementación y, a continuación, sopesar los beneficios deseados.

Según los requisitos del negocio y la forma en que se reciben los datos en el sistema, una solución de procesamiento de direcciones en tiempo real puede ser la mejor opción. Si se requiere una solución en tiempo real, deberá considerar el acuerdo de licencia y las limitaciones técnicas de las API de Google Maps/Bing/Yahoo. Por lo general, limitan la cantidad de llamadas que puede hacer cada día. La API de herramientas web de USPS es la misma en cuanto a que restringen cómo/por qué puede usar su sistema y cómo puede usar los datos posteriormente.

Al mismo tiempo, hay un puñado de excelentes proveedores de servicios que pueden procesar fácilmente una lista estática de direcciones. Esencialmente, le brinda al proveedor del servicio un archivo CSV o un archivo Excel, lo limpian y se lo devuelven. Es un acuerdo de una sola vez sin compromiso u obligación a largo plazo — por lo general.

Descripción completa: Soy el fundador de SmartyStreets. Nos ocupamos de la verificación de direcciones dentro de los Estados Unidos. Podemos fácilmente CASS certify a list y también ofrecemos un address verification web service API. No tenemos tarifas ocultas, contratos ni nada. Utiliza nuestro servicio hasta que ya no lo necesite y pueda alejarse. (A diferencia de las empresas de telefonía celular que requieren un contrato.)

+0

Perfecto, justo lo que estaba buscando. Y déjame decirte que tienes estilo, señor. Buen sitio de aspecto. –

+0

Usamos SmartyStreets y es increíble. – JerSchneid

+7

El costo de SmartyStreet para 1,000 búsquedas es de $ 30. Le ahorré un clic. –

1

Según lo visto en 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); 
0

NAICS.com está saliendo con una API que añadir todo tipo de datos clave de negocio, incluyendo dirección de la calle. Esto sucederá sobre la marcha a medida que se procesen los formularios de su sitio. https://www.naics.com/business-intelligence-api/

6

Durante el desarrollo de un servicio interno de verificación de direcciones en una empresa alemana en la que solía trabajar, he encontrado varias maneras de abordar este problema. Voy a hacer mi mejor esfuerzo para resumir mis hallazgos a continuación:

Software Libre, Open Source

Claramente, la primera vez que alguien enfoque llevaría es un código abierto uno (como openstreetmap.org), que nunca es una mala idea. Pero si realmente puede o no poner esto a un uso bueno y confiable depende mucho de cuánto necesita confiar en los resultados.

Las direcciones son una cosa increíblemente variable. Verificar las direcciones de EE. UU. No es una tarea fácil, pero soportable, pero una vez que se dirige a Europa, especialmente en el Reino Unido con su extenso sistema de Código Postal, el enfoque de fuente abierta simplemente carecerá de datos.

Servicios Web/API

software de negocio

dinero lo consigue hecho, obviamente. Pero no todos los negocios o desarrolladores pueden gastar ~ $ 0.15 por búsqueda de direcciones (eso es $ 150 por 1,000 solicitudes de API), un modelo de negocio muy costoso que la gran mayoría de las API de validación de direcciones han implementado.

Lo que terminé la integración: streetlayer API

Como yo no estaba dispuesto a asumir el enfoque programático de verificación de datos de direcciones manualmente por fin llegaron a la conclusión de que estaba en necesidad de una API con un precio una etiqueta que no haría que mi jefe quisiera despedirme y aun así ofrecer resultados de verificación internacionales sólidos y confiables.

En pocas palabras, terminé integrando una API construida por apilayer, llamada "API de Streetlayer". Me convenció fácilmente una simple integración JSON, resultados de validación sorprendentemente precisos y sus precios favorables para los desarrolladores. Además, 100 solicitudes/mes son completamente gratis.

Espero que esto ayude!

+0

buena respuesta, desafortunadamente la API de StreetLand se cerrará la próxima semana (en 2017-07-03). ¿Hay alternativas por menos de 15 centavos por solicitud? – Chris

0

Fixaddress.com servicio está disponible que proporciona los servicios siguientes,

1) Validación de dirección.

2) Corrección de dirección.

3) Corrección ortográfica de dirección.

4) Corrija las direcciones de los errores fonéticos.

Fixaddress.com utiliza los datos de USPS y Tiger como datos de referencia.

Para más información, visite detalle a continuación enlace,

http://www.fixaddress.com/

1

Usted puede tratar de Pitney Bowes “IdentifyAddress” Api disponible en - https://identify.pitneybowes.com/

analiza el servicio y compara las direcciones de entrada en contra de las bases de datos de direcciones conocidas alrededor del mundo para producir un detalle estandarizado. Corrige direcciones, agrega información postal faltante y la formatea utilizando el formato preferido por la autoridad postal correspondiente. También uso bases de datos de direcciones adicionales para proporcionar detalles mejorados, incluida la calidad de la dirección, el tipo de dirección, la transliteración (como kanji chino a caracteres latinos) y si una dirección se valida para el número de local/casa, calle o ciudad de información de referencia.

Encontrará una gran cantidad de muestras y sdk disponibles en el sitio y me pareció extremadamente fácil de integrar.

0

Un área donde las búsquedas de direcciones deben realizarse de manera confiable es para los servicios de VOIP E911. Conozco a las compañías que utilizan los siguientes servicios de manera confiable para esto:

Ancho de banda.com 9-1-1 acceso API MSAG de validación de direcciones

Guía Dirección MSAG = Calle Maestro

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

SmartyStreet la calle de Estados Unidos Dirección API

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

Cuestiones relacionadas