selva-gif

BlogBlog Trabajos en la selvaTookán

Desarrollo de soluciones cartográficas

Por el equipo Tookan 28 de septiembre 2016

optimización-de-ruta-05

La necesidad apremiante

A menudo, tendemos a dar por sentado a Google, especialmente si somos consumidores cotidianos, es decir, consumimos cosas en el front-end, incluidas aplicaciones y otros servicios. El hecho de que tengamos un teléfono inteligente y acceso a Internet para complementarlo parece ser suficiente para que impidamos la participación de Google y cierta libertad que viene con su etiqueta 'gratis' para la mayoría de los servicios. Lamentablemente, no se puede decir lo mismo del desarrollador, ni del negocio que tiene que ver con la logística.

Google Maps, uno de sus servicios insignia, se considera EL servicio de referencia para casi todas las soluciones de mapas. Este es al menos el caso con el escenario indio, como lo es en los Estados Unidos. Si usted es una empresa que se dedica al negocio de la logística y el transporte, puede incurrir en costos significativos para Google. Supongamos que está en el negocio de entrega de muebles, deberá pagar para automatizar el flujo de trabajo logístico en el mapa, ya que las direcciones se encuentran dentro del dominio del mapa de Google, incluso si estas direcciones pertenecen a sus clientes leales y comerciantes involucrados. También tienes que hacer esto repetidamente.

Las razones por las que surgen estos costos son simples: no muchos gobiernos invierten en un conjunto de datos públicos o en soluciones de mapeo de su propio incentivo, por lo que Google es la única opción viable. Hacer que las empresas paguen por algo que ya poseen parece una trillada injusta, especialmente después de gobiernos negligentes. Suecia, Dinamarca, Francia y Alemania son ejemplos de las excepciones a esta regla: han dado pasos significativos para hacer que los datos de mapas y otra información como parte del dominio público. El hecho de que estos gobiernos sean proactivos y progresistas puede destacarse por su relativa prosperidad económica y niveles de vida; no han logrado mantener eso simplemente siendo reactivos a las crisis. Tal vez podamos tomar un ejemplo, tal vez no.

Independientemente, necesitamos un remedio a esta situación. En pocas palabras, necesitamos una solución de mapeo, que es algo más fácil de decir que de hacer. Las personas que tienen costos de mapeo significativos se están cambiando a varios proveedores de servicios de bajo costo como Mapbox, Mapzen, MapQuest, etc. También puede desarrollar sus propias soluciones. Esta tarea no es del todo imposible; sin embargo, es difícil desarrollar un servicio de mapeo adaptativo, ya que el servicio OSM (OpenStreetMap) recibe actualizaciones periódicas y torrenciales. Otro problema tiene que ver con la infraestructura digital. Desarrollar una solución puede funcionar con una precisión significativa en Occidente, pero no se puede afirmar lo mismo para todos los países.

Las medidas necesarias

Hay tres pasos importantes en el proceso de desarrollo de sus propias soluciones de mapeo:

  1. Geocodificación y geocodificación inversa
  2. Mapeo
  3. enrutamiento

El orden de implementación aquí no es importante y varía según las necesidades del negocio en cuestión. Supongamos que su empresa se especializa en resolver problemas de enrutamiento de vehículos. Aquí, sería obvio que si tiene sus propios sistemas de enrutamiento, ¡este servicio tendrá más valor!

La tarea es bastante enorme, si uno analiza las cifras. Tener que resolver los problemas en una ruta singular para 10 ciudades implica (¡10!) permutaciones. Ese es el signo factorial, por lo que es aproximadamente 10*9*8….*1 lo que equivale a 3.62 millones de formas que se deben analizar. Las cifras en esta región son simplemente incomprensibles; por lo tanto, encontrar rutas óptimas en varios países, con muchos vehículos, puntos de entrega, (¡sin mencionar las cabinas de peaje y mil otras restricciones y variables intrincadas!) se convierte en una tarea hercúlea, que incurre firmemente en grandes costos en lo que respecta a Google.

Entonces, ¿cuál es la mejor solución? Recomendamos OSRM (Administrador de recursos de código abierto) para que sea adecuado para esta tarea. Podemos dar crédito al proyecto OSM (mencionado anteriormente) por esta joya; como está escrito en C/C++, también resulta ser rápido.

Ahora, no abogamos por buscar esto inmediatamente a escala planetaria, ya que eso también sería una gran inversión monetaria. La idea es definir la necesidad del momento y construir una versión adecuada a pequeña escala desde el principio. Más tarde, podemos escalarlo como se desee.

Esto es para fines de enrutamiento. Si está involucrado con el mapeo, entonces la geocodificación y la geocodificación inversa son necesarias. La geocodificación es el acto de procesar un conjunto de fragmentos de datos relacionados con una determinada ubicación. Esto puede ser en forma de descripciones, coordenadas, direcciones, etc. Estos fragmentos de datos luego se traducen a una ubicación real en la Tierra. Si bien el proceso suena simplista, es el aspecto más desafiante de tratar de desarrollar sus propios sistemas.

Geocodificación y desafíos

El primer problema es el de la normalización y el análisis de direcciones para agregar a sus conjuntos de datos. Por ejemplo, muchos lugares tienen las mismas direcciones: existe una avenida Mayflower en muchas ciudades y crea redundancias de datos. Sin embargo, pueden surgir otros problemas. Cualquiera con unas capacidades literarias básicas puede diferenciar entre 'Strand' y 'Stanford'. Sin embargo, las extensiones entran en juego: ¿qué pasa si me estoy refiriendo a la Iglesia de Stanford y no a la Universidad?

Las letras y otras extensiones crean problemas mayores. 36W 26 St. Fl#7 se puede leer como – 36W, 26th Street, y la F puede ser cualquier cosa, desde Floor, Flat, hasta Florida. Lo que se analiza cambiará drásticamente el resultado en su geocodificador. Las diferentes identidades para los mismos nombres también son comunes: W St John's St, W Saint John's St, W St John's Street y West Saint John's Street son todos equivalentes.

Las direcciones internacionales lo hacen más tedioso. Francia utiliza una combinación de los sistemas decimal (base 10) y vigesimal (base 20). Douze de cuatro vingt aquí se traduce a noventa y dos, donde quatre es 40, multiplicado por 20 (vingt) con 12 agregados, lo que lo convierte en 92. Los esquemas de direcciones para diferentes países varían significativamente en gran medida.

Hay luz en este túnel aparentemente tedioso e infestado de datos. Gran parte del trabajo duro lo han hecho muchos entusiastas del código abierto. 'Libpostal' es un analizador de direcciones internacional multilingüe que utilizan muchas bases de datos de código abierto. Es una solución de aprendizaje automático que tiene un alto grado de precisión. 'Usaddress' es otra solución; pero, solo funciona para los Estados Unidos. A medida que avanza la flexibilidad con las soluciones de código abierto, puede definir su propio esquema y personalizarlo según sus necesidades.

Existen varios proveedores de soluciones de bajo costo para Geocodificación MapQuest Open Initiative, PickPoint, OpenCage Geocoder, LocationIQ, MapZen, etc. Si tuviéramos que elegir, OpenCage sería la mejor opción entre estos, ya que proporcionan una puntuación de precisión según el tamaño del cuadro delimitador.

Todos estos nombres utilizan “Nominatim” (un geocodificador proporcionado por OSM) detrás de sus instancias. En caso de que esté buscando su solución de código abierto, también puede alojarla.

La mayor parte de esto requiere una traducción de datos, como se ha enfatizado. Por lo tanto, si desea transformar 'a' en 'b', el número de cambios, eliminaciones, etc. necesarios para cambiar 'a' en 'b' se denomina distancia de Levenshtein. Un uso prudente del análisis de direcciones y el filtrado del geocódigo correcto será el que posea la distancia de Levenshtein más baja con respecto a la dirección real proporcionada. Garantizar una alta precisión en este caso requiere un poco de ingeniería inversa.

Compatible con Mapzen pelia es otra solución en la que puede crear su propio conjunto de datos y esquema. Utiliza Elasticsearch para la base de datos en su arquitectura. Si bien es fácil de instalar, con su instalación vagabunda disponible en Github, su precisión no es tan buena. La flexibilidad tiene un costo obvio.

Entonces, aquí hay una idea aproximada de cómo desarrollar una solución de mapeo para su empresa de una manera que optimice los costos y no comprometa demasiado la calidad del sistema de mapeo involucrado. Con los dedos cruzados, uno solo puede esperar desarrollos en ese frente en la dirección positiva.

¡Suscríbase para mantenerse a la vanguardia con las últimas actualizaciones y conocimientos empresariales!

  • Comparte este artículo:

  • Blog Trabajos en la selva Blog Trabajos en la selva Blog Trabajos en la selva
Habla con nosotros