35 votos

A granel registros Geocode 20 millones

¿Existen las bases de datos gratis o a precios razonables para los Estados Unidos que se pueden buscar y devolver la información de latitud y longitud?

30voto

FlySwat Puntos 61945

Para que muchos registros, ni siquiera considerar la posibilidad de un servicio web. Se acelerador o que cortar antes de que pueda terminar su tarea.

Así que, a continuación, la opción se vuelve a ejecutar de forma local, y para eso hay varios comerciales o libres de opciones.

Las opciones libres utilizará el censo de TIGRE conjunto de datos que tendrá que cargar en una base de datos espaciales. Usted puede encontrar bibliotecas que geocodificar contra TIGRE para PostGIS o incluso sqlite. Heck, usted puede incluso utilizar ArcGIS para geocodificar contra TIGRE. Por supuesto, ArcGIS no es libre, lo que me lleva a la siguiente opciones comerciales. Si usted tiene una licencia de ArcGIS las ocasiones son usted han StreetMap DVD con un TeleAtlas (me refiero a Tom Tom) o Navteq conjunto de datos. Eso depende de si tienes StreetMap Premium incluido. Cualquiera de los dos conjuntos de datos probablemente le dará resultados más consistentes de TIGRE.

Hazte un favor y hacer varias copias de la calle de la base de datos una vez que los datos se carga y se ejecuta el proceso de geocodificación en varias máquinas con un subconjunto de los datos de entrada. No trate de ejecutar en una sola máquina, o estará esperando días para que termine por no hablar de que lo más probable es cualquier proceso en ejecución, probablemente, pérdida de la memoria y el accidente varias veces antes de que finalice. Esto significa que usted desea tener diferentes puntos de control para el proceso.

27voto

Aaron Fischer Puntos 8919

Yo trabajo en SmartyStreets (una verificación de la dirección de la empresa). Nuestro servicio es gratuito para todo el mundo (hasta el nivel básico). Las Startups también puede solicitar el uso de nuestro servicio totalmente gratuito para el primer año. Así que si usted ajuste la clasificación, no hay ningún cargo para nuestro servicio ilimitado por un año..

Ragi recomienda en contra de un servicio web, sin embargo, nuestra API puede fácilmente limpiar, estandarizar y geocodificación de 20 millones de direcciones de alrededor de 5 horas (aproximadamente 1000 por segundo). Algunos de los que el tiempo dependerá de la velocidad de la máquina (cuántos núcleos tiene) y su conexión a la red (no lo intente a través de 3G, pero un estándar de conexión de banda ancha va a hacer muy bien).

Sólo quería señalar que es ciertamente posible con un webservice.

8voto

Adam Musch Puntos 151

He utilizado este tutorial describe cómo construir una postgis usando el geocoder de 2010 TigerLine de datos. Yo estoy corriendo ahora mismo - no es rápido, ya que va a tardar 3 semanas para geocodificar 2 millones de direcciones.

Sin embargo, es gratis, unthrottled, y tuvo que alguien con un mínimo de codificación y postgres habilidades de menos de 2 días para configurar y cargar con una (gran) del estado de datos para comenzar la geocodificación. También he hecho absolutamente nada de postgres de optimización para el sistema y se ejecuta sobre los montajes NFS, por lo que sospecho que hay uno o dos órdenes de magnitud el valor de las ganancias de rendimiento podría salir de ella en caso de que fuera necesario.

En lugar de utilizar los servicios web, se me cargan todas mis direcciones en la base de datos postgres, y luego estoy corriendo rápido y sucio script en perl para geocodificar todas ellas de una en una:

perl -e for ($i=1; $i<[max_key_value]; $i+=1) 
   {printf "UPDATE source_addresses
               SET (rating, new_address, lon, lat) 
                     = (g.rating, pprint_addy(g.addy), 
                       ST_X(g.geomout), ST_Y(g.geomout) ) 
              FROM (SELECT DISTINCT ON (address_id) address_id, (g1.geo).* 
                      FROM (SELECT address_id, (geocode(address)) As geo 
                              FROM source_addresses As ag 
                             WHERE ag.rating IS NULL and address_id = $i 
                           ) As g1 
                     ORDER BY address_id, rating LIMIT 1
                   ) As g WHERE g.address_id = source_addresses.address_id;\n"
  } | psql -d geocoder 

(saltos de línea únicamente para mejorar la legibilidad)

Por lo que se genera un "geocodificar la dirección con este valor de IDENTIFICADOR y el uso de la mejor coincidencia" instrucción update, y tubos para psql para hacerlo. Se sólo se trata de geocodificación de direcciones sin calificación - es decir, que no es ya geocodificada. Así que es reiniciables, y cada uno se hace de forma independiente.

3voto

David Gardiner Puntos 348

¿Supongo que quieres Geocode pero no pagar nada por él? Hay un montón de servicios que puede registros de 20 millones de geocodificación en, pero le costará. Esri, Pitney Bowes y otros ofrecen estos servicios por suscripción o en un coste al x geocodes. 20 millones no es trivial, pero supongo que hay un caso de negocio para este.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X