gif-jungle

BlogBlog JungleworksTookan

Développement de solutions cartographiques

Par Team Tookan 28ème Septembre 2016

optimisation-itinéraire-05

Le besoin pressant

Nous avons souvent tendance à tenir Google pour acquis, surtout si nous sommes le consommateur de tous les jours, c'est-à-dire que nous consommons des choses en amont, y compris des applications et d'autres services. Le fait que nous ayons un smartphone, et un accès à Internet pour le compléter, nous semble suffisant pour exclure l'implication de Google et une certaine liberté qui vient avec leur tag "gratuit" pour la plupart des services. Malheureusement, on ne peut pas en dire autant du développeur ou de l'entreprise qui a à voir avec la logistique.

Google Maps, l'un de leurs services phares, est considéré comme LE service incontournable pour presque toutes les solutions de cartographie. C'est du moins le cas du scénario indien – comme c'est le cas aux États-Unis. Si vous êtes une entreprise impliquée dans les activités de logistique et de transport, vous pouvez encourir des coûts importants pour Google. Supposons que vous soyez dans le secteur de la livraison de meubles, vous devrez payer pour automatiser le flux de travail logistique sur la carte, car les adresses se trouvent dans le domaine cartographique de Google, même si ces adresses appartiennent à vos clients fidèles et aux commerçants impliqués. Vous devez également faire ceci à plusieurs reprises.

Les raisons pour lesquelles ces coûts surviennent sont simples - peu de gouvernements investissent dans un ensemble de données publiques ou des solutions de cartographie de leur propre incitation - faisant ainsi de Google la seule option viable. Faire payer aux entreprises quelque chose qu'elles possèdent déjà semble une injustice banale, surtout dans le sillage de gouvernements négligents. La Suède, le Danemark, la France et l'Allemagne sont des exemples d'exceptions à cette règle - ils ont pris des mesures importantes pour rendre les données cartographiques et autres informations de ce type dans le domaine public. Le fait que ces gouvernements soient proactifs et progressistes peut être mis en évidence par leur relative prospérité économique et leur niveau de vie – ils n'ont pas réussi à maintenir cela en étant simplement réactifs aux crises. On peut peut-être prendre un exemple, peut-être pas.

Quoi qu'il en soit, nous avons besoin d'un remède à cette situation. En termes simples, nous avons besoin d'une solution de cartographie, ce qui est plus facile à dire qu'à faire. Les personnes qui ont des coûts de cartographie importants se tournent vers divers fournisseurs de services à bas prix comme Mapbox, Mapzen, MapQuest, etc. Vous pouvez également développer vos propres solutions. Cette tâche n'est pas tout à fait impossible - cependant, il est difficile de développer un service de cartographie adaptative, avec le service OSM (OpenStreetMap) qui reçoit des mises à jour régulières et torrentielles. Un autre problème concerne l'infrastructure numérique. Développer une solution peut fonctionner avec une précision significative en Occident, mais la même chose ne peut pas être revendiquée pour tous les pays.

Les mesures nécessaires

Le processus de développement de vos propres solutions de cartographie comporte trois étapes importantes :

  1. Géocodage et géocodage inversé
  2. Cartographie
  3. Routage

L'ordre de mise en œuvre ici n'est pas important et varie en fonction des besoins de l'entreprise en question. Supposons que votre entreprise se spécialise dans la résolution de problèmes d'itinéraires de véhicules. Ici, il serait évident que si vous avez vos propres systèmes de routage, ce service aura plus de valeur !

La tâche est assez énorme, si l'on croque les chiffres. Devoir résoudre les problèmes sur un itinéraire singulier pour 10 villes implique (10 !) permutations. C'est le signe factoriel, donc c'est à peu près 10*9*8….*1 ce qui équivaut à 3.62 millions de façons qui doivent être écrasées. Les chiffres dans cette région sont tout simplement incompréhensibles - ainsi, trouver des itinéraires optimaux sur plusieurs pays, avec de nombreux véhicules, points de livraison, (sans parler des postes de péage et de mille autres contraintes et variables complexes !) devient une tâche herculéenne, qui engage résolument de lourds coûts en ce qui concerne Google.

Quelle est donc la meilleure solution ? Nous recommandons OSRM (Open Source Resource Manager) pour convenir à cette tâche. Nous pouvons créditer le projet OSM (mentionné ci-dessus) pour ce joyau - comme il est écrit en C/C++, il se trouve également qu'il est rapide.

Maintenant, nous ne préconisons pas de chercher cela immédiatement à l'échelle planétaire, car ce serait aussi un investissement monétaire lourd. L'idée est de définir le besoin de l'heure et de construire une version adaptée à petite échelle dès le départ. Plus tard, nous pouvons le mettre à l'échelle comme nous le souhaitons.

C'est à des fins de routage. Si vous êtes impliqué dans la cartographie, le géocodage et le géocodage inversé sont nécessaires. Le géocodage est l'acte de broyer un ensemble de fragments de données à faire avec un certain emplacement. Cela peut prendre la forme de descriptions, de coordonnées, d'adresses, etc. Ces fragments de données sont ensuite traduits en un emplacement réel sur Terre. Bien que le processus semble simpliste, c'est l'aspect le plus difficile d'essayer de développer vos propres systèmes.

Géocodage et défis

Le tout premier problème est celui de la normalisation et de l'analyse d'adresses à ajouter à vos jeux de données. Par exemple, de nombreux endroits ont les mêmes adresses - il existe une Mayflower Avenue dans de nombreuses villes, et crée des redondances de données. Pourtant, d'autres problèmes peuvent survenir. Toute personne ayant des capacités littéraires de base peut faire la différence entre « Strand » et « Stanford ». Cependant, les extensions entrent en jeu - et si je fais référence à l'église de Stanford et non à l'université ?

Les lettres et autres extensions créent de plus gros problèmes. 36W 26 St. Fl#7 peut être lu comme – 36W, 26th Street, et le F peut être n'importe quoi, de Floor à Flat, en passant par Florida. Ce qui est analysé changera radicalement le résultat dans votre géocodeur. Différentes identités pour les mêmes noms sont également courantes - W St John's St, W Saint John's Street, W St John's Street et West Saint John's Street sont tous équivalents.

Les adresses internationales rendent tout cela plus fastidieux. La France utilise un mélange des systèmes décimal (base 10) et vigésimal (base 20). Quatre-vingt douze ici se traduit par quatre-vingt-douze, où quatre est 40, multiplié par 20 (vingt) avec 12 ajoutés, ce qui en fait 92. Les schémas d'adresse pour différents pays varient considérablement dans une très large mesure.

Il y a de la lumière dans ce tunnel apparemment fastidieux et infesté de données. Une grande partie du travail a été fait par de nombreux passionnés de l'open source. « Libpostal » est un analyseur d'adresses multilingue et international utilisé par de nombreuses bases de données open source. Il s'agit d'une solution apprise par machine qui a un haut degré de précision. 'Usaddress' est une autre solution ; mais, cela ne fonctionne que pour les États-Unis. Au fur et à mesure de la flexibilité des solutions open source, vous pouvez définir votre propre schéma et le personnaliser selon vos besoins.

Il existe différents fournisseurs de solutions à faible coût pour le géocodage MapQuest Open Initiative, PickPoint, OpenCage Geocoder, LocationIQ, MapZen, etc. Si nous étions obligés de choisir, OpenCage serait la meilleure option parmi celles-ci, car ils fournissent un score de précision en fonction de la taille de la boîte englobante.

Tous ces noms utilisent « Nominatim » (un géocodeur fourni par OSM) derrière leurs instances. Si vous recherchez votre solution open source, vous pouvez également l'héberger.

La plupart de ces opérations nécessitent une traduction des données, comme cela a été souligné. Donc, si vous voulez transformer 'a' en 'b', alors le nombre de modifications, de suppressions, etc. nécessaires pour changer 'a' en 'b' est appelé le Distance de Levenchtein. Une utilisation prudente de l'analyse d'adresse et du filtrage du bon géocode sera celui qui possède la distance de Levenshtein la plus faible par rapport à l'adresse réelle fournie. Garantir une grande précision dans ce cas nécessite un peu de rétro-ingénierie.

Mapzen pris en charge Pélia est une autre solution où vous pouvez créer votre propre jeu de données et schéma. Il utilise Elasticsearch pour la base de données dans son architecture. Bien qu'il soit facile à installer, avec son installation vagabonde disponible sur Github, sa précision n'est pas si bonne. La flexibilité a un coût évident.

Voici donc une idée approximative de la façon de développer une solution de cartographie pour votre entreprise d'une manière qui optimise les coûts et ne compromet pas trop la qualité du système de cartographie impliqué. Les doigts croisés, on ne peut qu'espérer des développements sur ce front dans le sens positif.

Abonnez-vous pour rester en avance avec les dernières mises à jour et informations entrepreneuriales !

  • Partagez cet article:

  • Blog Jungleworks Blog Jungleworks Blog Jungleworks