Service de terrain, applications sur la carte, géolocalisation. Choix du service cartographique. Vue latérale du produit

Bonjour à tous! Nous développons Okdesk , un Helpdesk basé sur le cloud pour le service après-vente pour les clients B2B. Parmi les utilisateurs de notre produit, il y a les centres de chauffage central et d'automatisation pour les caisses enregistreuses, les intégrateurs pour l'automatisation du commerce, les services d'exploitation de réseaux de vente au détail, les sociétés de services immobiliers commerciaux et de nombreuses autres sociétés de services. La spécificité du service dans ces entreprises est une grande quantité de travail «sur le terrain»: travaux avec équipements, maintenance des infrastructures, travaux de maintenance programmés - tout cela nécessite la présence physique d'un spécialiste sur le site. Cette circonstance impose un certain nombre d'exigences supplémentaires pour la solution Helpdesk, à savoir: le poste de travail mobile de l'ingénieur et la visualisation du travail prévu sur la carte avec l'affichage des employés les plus proches. L'application mobile Okdesk pour ingénieurs (pour iOS et Android) est apparue il y a longtemps et nous continuons à la développer activement. Mais l'affichage des applications et des employés les plus proches sur la carte que nous avons publiée l'autre jour.

image

Mais l'article ne se concentrera pas sur les nouvelles fonctionnalités - les personnes intéressées peuvent obtenir un compte d'essai gratuit de 14 jours sur le site et découvrir le système par elles-mêmes. Il s'agira du choix des services de cartographie pour la mise en œuvre des fonctionnalités et des exigences de produits qui devraient leur être présentées. Si pour votre projet la tâche de choisir des solutions pour les modules cartographiques est pertinente - bienvenue chez cat.

Problèmes et critères de sélection des décisions


Alors que voulons-nous? Nous voulons transférer l'adresse au service de carte et obtenir l'affichage de cette adresse sur la carte. Mais ça ne marche pas comme ça. Seules les coordonnées peuvent être affichées sur la carte. Ainsi, vous devez d'abord traduire la représentation sous forme de chaîne de l'adresse dans les coordonnées. Dans le jargon SIG, cela s'appelle le «géocodage».

Comment faire Une petite digression devrait être faite ici. Le fait est que dans les spécificités du service b2b, les demandes de service sont liées à des adresses pré-fixées (objets de service). Une application ne peut pas avoir une adresse arbitraire et précédemment inconnue. Toutes les adresses sont fixées à la conclusion d'un contrat de service, et l'ajout de nouvelles adresses ne se produit pas subitement lors du processus de nouvelles demandes. Par conséquent, l'option pourrait nous convenir, lorsque l'administrateur, lors de la saisie de l'adresse dans la base de données, examine les coordonnées de la structure correspondante sur les cartes Yandex publiques et les saisit manuellement dans la carte de l'objet de service:



Mais cette approche ne nous a pas enthousiasmés - l'utilisateur ne serait pas à l'aise (bien que, je le répète, dans notre cas, il s'agisse d'une opération unique lorsque l'objet de service a été inséré dans le système). Et nous avons décidé de chercher un moyen de remplir automatiquement les coordonnées à l'adresse. Il existe de tels services, il ne reste plus qu'à choisir. Et pour cela, vous devez définir les critères de sélection. Nous sommes partis des exigences suivantes:

  • Le géocodage devrait fonctionner aux adresses de la Russie et de l'ex-URSS russophone (le principal marché d'Okdesk aujourd'hui). Il serait idéal de trouver un seul service de géocodage qui fonctionne bien partout dans le monde, mais pour l'avenir, je dirai que nous ne l'avons pas trouvé;
  • Le géocodage devrait permettre de stocker les coordonnées dans notre base de données sans aucune restriction. Nous ne voulons pas effectuer de géocodage chaque fois que nous devons afficher cette adresse sur la carte (cette exigence peut sembler étrange, mais tous les services ne le permettent pas);
  • Coût et conditions d'utilisation raisonnables (le géocodage est l'une des fonctions auxiliaires d'Okdesk, et aujourd'hui nous ne sommes pas prêts à payer des centaines de milliers de roubles par an pour cela);
  • Le géocodage doit proposer des suggestions lors de la saisie d'une adresse (lorsqu'un utilisateur saisit des caractères d'adresse, l'utilisateur dispose de manière dynamique d'options de sélection correspondant aux caractères saisis):


Lorsque les coordonnées de l'adresse sont déjà connues, elles peuvent être affichées sur la carte. Nous avions les exigences minimales pour un service de carte):

  • La pertinence des informations sur la carte;
  • Coût et conditions d'utilisation raisonnables.

Nous avons donc décidé de quels outils nous avons besoin et selon quels critères nous les choisirons. Il est donc temps d'analyser les services disponibles et de choisir la configuration appropriée pour résoudre le problème.

Candidats


Pour sélectionner une solution, nous avons identifié une liste de candidats potentiels. Ils sont devenus:

  1. Service dadata.ru (géocodage);
  2. Géoservices 2GIS (géocodage et cartes);
  3. Services géographiques Google (géocodage et cartes);
  4. Services de géolocalisation Yandex (géocodage et cartes);
  5. Services du projet OpenStreetMaps (géocodage et cartes).

Sélection de géocodage


Dadata.ru


Dadata.ru dispose de nombreux services utiles pour travailler avec des données. Dans notre cas, nous parlons du service "Pourboires à l'adresse" . Dadata présente de nombreux avantages. Les conseils fonctionnent «prêts à l'emploi» et sont techniquement intégrés aux produits tiers. Non seulement les coordonnées, mais aussi d'autres informations sont renvoyées à l'adresse (dans notre cas, cela n'est pas pertinent, mais cela peut être utile à quelqu'un). Les données sont «fraîches» et peuvent être stockées à la maison. Il existe un tarif gratuit, limité à 10 000 demandes par jour, mais le tarif payé a plus qu'un prix abordable (de 7 000 roubles par an pour les organisations et 5 000 roubles par an pour les particuliers).

Mais il y a un inconvénient: le service fonctionne uniquement aux adresses russes.

Géoservices 2GIS


2GIS possède un grand nombre de géoservices de référence, et le géocodage en fait partie. Selon les données officielles, les services géographiques opèrent dans 370 villes de 9 pays du monde. Cela donne une bonne (mais pire que Dadata) couverture pour la Russie (nous avons sélectivement regardé - dans les villes de 100 000 habitants tout va bien, mais dans les villes plus petites - par 50 000 habitants, le plus souvent il n'y a que des détails dans la rue) et une couverture plutôt faible pour les autres pays de l'ex-URSS russophone (par exemple, la ville relativement grande du Kazakhstan d'Ekibastuz avec 130 000 habitants et plus est manquante dans le répertoire 2GIS). En dehors de l'ex-URSS, le service est ponctuel.

Il y a des inconvénients importants. Premièrement, il est interdit de stocker les données reçues. C'est-à-dire si nécessaire, affichez l'adresse sur la carte, vous devrez faire une demande de coordonnées. Il n'y a pas non plus de tarif gratuit dans le service: le forfait minimum coûte 5000 roubles par mois et comprend 5000 demandes à l'API de géocodage (c'est-à-dire pour un rouble par demande). Avec une augmentation du nombre de demandes, le coût pour 1 demande diminue. Par exemple, si vous effectuez plus de 5 000 000 de demandes par mois, le coût d'une demande passera à 5 kopecks. Fait intéressant, une demande est considérée comme une demande d'indices lors de la saisie d'une adresse et une demande de coordonnées d'une adresse lors du choix parmi les indices (c'est-à-dire que le nombre minimum de demandes d'obtention de coordonnées à une adresse est de 2 pièces). En conjonction avec le fait que les données de géocodage ne peuvent pas être stockées à la maison et chaque fois que vous dessinez un objet sur la carte, vous devez faire une demande de géocodage, l'utilisation du géocodage de 2GIS se traduira par une quantité importante dans notre cas.

Oui, en plus de cela, il y a aussi un «droit d'entrée» - un droit unique de 15 000 roubles lors de la connexion. Cela ressemble à une sorte de méfait :)

(Les informations sur le coût sont pertinentes pour le premier semestre 2019, mais je ne pense pas que tout ait radicalement changé depuis notre immersion dans les possibilités et les conditions du service).

Services Google Geo


Les services géographiques de Google sont fusionnés sous la marque Google Maps Platform . Parmi eux, il y a aussi le géocodage avec des indices. Le site revendique une couverture dans 99% des adresses de notre planète. Nous n'avons pas vérifié 99%, mais nous n'avons vérifié que la Russie. Et, je vous le dis, la qualité et la pertinence des données sur la Russie laissent beaucoup à désirer. Par exemple, selon Google, le complexe résidentiel où j'habite n'existe pas (Moscou, plus de 10 millions d'habitants), bien que les premières maisons aient été mises en service il y a plus de 3 ans. Mais le «complexe résidentiel» dans lequel je suis né et j'ai grandi (Penza, plus de 500 000 habitants) existe toujours, bien qu'en réalité il ait déjà été envoyé en démolition depuis 4 ans. Comme petite excuse pour la plate-forme Google Maps, vous pouvez ajouter que les données dans les panoramas sont beaucoup plus pertinentes - ils ont ma maison actuelle et ma maison «parent» ressemble à ceci:



Cela pourrait mettre fin à l'examen du géocodage de Google - avec la couverture et la pertinence décrites, il ne s'applique pas à nos fins. Mais, pour être honnête, nous avons commencé l'étude du service de l'autre côté: avec des conditions et des prix. Par conséquent, nous écrirons à leur sujet de toute façon.

Donc, les conditions sont assez humaines. Toutes les demandes sont facturées: de 4 à 5 dollars pour 1000 demandes de géocodage, et les pourboires sont facturés séparément - 2,83 dollars pour 1000 demandes. De plus, Google facture chaque mois 200 dollars virtuels au compte, qui peut être utilisé pour payer les services de la plateforme.

Google vous permet même d'enregistrer les résultats du géocodage à la maison. Mais vous ne pouvez les afficher sur une carte que si cette carte est Google Maps, comme indiqué explicitement dans la toute première section du document Politiques de l'API de géocodage :
Affichage des résultats de l'API de géocodage
Vous pouvez afficher les résultats de l'API de géocodage sur une carte Google Map ou sans carte. Si vous souhaitez afficher les résultats de l'API de géocodage sur une carte, ces résultats doivent être affichés sur une carte Google. Il est interdit d'utiliser les données de l'API de géocodage sur une carte qui n'est pas une carte Google.

Il est dommage que tous les collègues en train de lire la décision n'aient pas lu les informations juridiques. Avec cette approche, vous pouvez facilement remplacer vos clients, leur donnant la possibilité de recevoir des résultats de géocodage de Google, mais d'afficher des objets sur, par exemple, OpenStreetMaps.

Services géographiques Yandex


Le service Yandex pour le géocodage est appelé Geocoder . Excellente couverture en Russie - il existe même des adresses pour les colonies de quelques milliers d'habitants. Pour les pays de l'ex-URSS russophone, la couverture n'est pas pire. La couverture mondiale est symbolique. La pertinence des données est élevée.

En général, tout serait parfait sans les conditions d'utilisation des projets commerciaux (pour les projets non commerciaux - gratuitement avec un certain nombre de restrictions).

Les conditions d'utilisation des projets commerciaux sont les suivantes. Le coût minimum est de 120 000 roubles par an et, à ce rythme, la limite quotidienne est de 1 000 demandes. Avec une augmentation du nombre de demandes quotidiennes, le coût pour 1 demande diminue. En général, le coût n'est pas choquant s'il n'y en aurait pas MAIS: si vous souhaitez conserver les données de géocodage à la maison, 500000 roubles supplémentaires seront ajoutés au coût du tarif annuel (je souligne: pas une fois, mais annuellement). En conséquence, le «seuil d'entrée» pour nous commence avec 620 000 roubles par an avec une limite de 1 000 demandes par jour. De telles choses.

Geo Services OpenStreetMaps


OpenStreetMaps (OSM) est un projet de cartographie Web à but non lucratif visant à créer une carte géographique détaillée et gratuite du monde par la communauté des participants - les utilisateurs d'Internet. (c) Wikipédia.

OSM dispose d'un service de géocodage appelé Nominatim . Les données sont conservées et mises à jour «par le monde entier». En général, les données sont pertinentes, mais la couverture n'est pas profonde - en Russie, dans les villes de 20 à 30 000 habitants, les détails du numéro de la maison ne sont souvent pas disponibles.

Conditions d'utilisation - gratuit. Les données peuvent être stockées à la maison, les données peuvent être utilisées de toute manière légale. En général, en tant que source auxiliaire pour le géocodage - cela suffira! (spoiler: nous avons décidé de l'utiliser dans ce statut).

Tableau pivotant de géocodage


Et maintenant, tout est pareil, mais brièvement dans le tableau:
Dadata2GISGoogleYandexOSM
AstucesIl y aIl y aIl y aIl y aNon
CouvertureRussie (très bien).Russie (grandes et moyennes villes), ex-URSS (grandes villes).La Russie et l'ex-URSS sont médiocres et sans objet. Probablement dans les "pays développés" est bon.Russie et ex-URSS (très bien).Le monde entier, mais pour les petites villes souvent des détails médiocres.
Utilisation des donnéesIl peut être stocké et utilisé librement.Vous ne pouvez pas stocker à la maison, mais après avoir reçu les données, vous pouvez les utiliser librement.Vous pouvez le conserver seul, mais vous ne pouvez l'afficher sur les cartes que s'il s'agit de Google Maps.+ 500 000 roubles par an si vous prévoyez de conserver les données à la maison.Gratuit
CoûtIl existe un tarif gratuit avec de larges frontières, un tarif payé à partir de 7000 roubles par an.15 000 roubles ponctuels + à partir de 5 000 roubles par mois.4-5 $ pour 1000 demandes. Mais jusqu'à 200 $ / mois jusqu'à présent (en octobre 2019) gratuitement.De 120 000 roubles par an + 500 000 roubles par an, si vous prévoyez de conserver les données à la maison.Gratuitement

Choix du service de carte


Un peu plus haut, nous avons examiné les avantages et les inconvénients de divers géocodages. Lors du choix des cartes, nous avons été guidés par le fait que les cartes doivent être pertinentes, la couverture est bonne et le coût et les conditions d'utilisation - levage. Étant donné que la pertinence et la couverture des cartes correspondent pleinement à la pertinence du géocodage (et il est inutile de dupliquer ces informations), dans l'aperçu des cartes, nous nous concentrerons uniquement sur les coûts et les conditions.

2GIS Map


Les conditions d'utilisation des cartes de 2GIS sont assez fidèles. La facturation n'est pas basée sur le nombre de demandes / rendu de la carte, mais à un coût fixe. Le coût consiste en un «droit d'entrée» - un montant unique de 15 000 roubles - et un abonnement annuel de 60 000 roubles.

Google maps


Comme dans le cas du géocodage, l'utilisation des cartes de Google est basée sur le nombre de requêtes (requête = affichage de la carte). Mais le coût de la demande dépend de la carte que vous souhaitez afficher et où.

Par exemple, si vous devez afficher une carte statique avec les caractéristiques et les étiquettes spécifiées (c'est-à-dire lorsque vous demandez une carte, Google retournera une image de la pièce donnée avec les étiquettes spécifiées) - cela coûtera 2 $ pour 1000 demandes. Si vous utilisez le même format pour les applications sur Android - gratuitement. Soit dit en passant, pour les applications mobiles, Google maps est largement gratuit. Mais ne vous flattez pas - Google peut à tout moment modifier unilatéralement les conditions d'utilisation. Par exemple, en 2018, Google a multiplié par 14 le coût d'utilisation des cartes dans l'interface Web.

Pour nos scénarios d'utilisation (cartes dynamiques dans l'interface Web), le coût pour 1000 impressions de carte est de 7 $. Lorsqu'il dépasse le nombre d'impressions de 100 000 000 (cent millions) par mois, le coût "tombe" à 5,6 $ pour 1 000 impressions.

Étant donné que le «compte personnel» de l'entreprise est le même pour tous les services de la plate-forme Google Maps, vous pouvez payer pour l'utilisation des cartes Google à partir des mêmes 200 $ virtuels que Google facture à votre compte chaque mois.

Cartes Yandex


Si vous avez un projet gratuit, l'accès aux cartes ne nécessite pas d'enregistrement des utilisateurs dans le projet, et vous passez moins de 25 000 appels aux cartes par jour, alors vous pouvez utiliser Yandex.Maps gratuitement. Sinon, seule une utilisation commerciale est disponible pour votre projet. La demande qu'au géocodeur, aux cartes - est facturée de la même manière. L'abonnement annuel commence à partir de 120 000 roubles par an (1000 demandes par jour sont incluses, 120 roubles pour chaque 1000 demandes suivantes dépassant la limite quotidienne). La limite des demandes de géocodage et de cartes est générale.

Et si vous souhaitez conserver les résultats des requêtes à la maison - vous devez payer un supplément de plus de 500 000 roubles par an.

Ouvrir les plans des rues


Je serai bref: gratuit et gratuit. Mais il y a une nuance - parfois, les cartes en Russie ralentissent.

upd: il y a une nuance de plus - si vous utilisez les services en ligne OSM (et ne les déployez pas sur vos serveurs), il y a des restrictions informelles qui sont exprimées dans la formulation:
Une utilisation intensive (par exemple, la distribution d'une application qui utilise des tuiles de openstreetmap.org) est interdite sans autorisation préalable des administrateurs système. Voir ci-dessous pour les alternatives.

C'est-à-dire Les services OSM ne conviennent pas aux grands projets avec une utilisation intensive de la carte, mais vous pouvez les déployer sur vos serveurs et utiliser sans restrictions.

Tableau récapitulatif


2GISGoogleYandexOSM
Pertinence et couvertureRussie (grandes et moyennes villes), ex-URSS (grandes villes).La couverture de la Russie et de l'ex-URSS est médiocre et non pertinente.Russie et ex-URSS (très bonne couverture et pertinence élevée).Le monde entier, mais pour les petites villes souvent des détails médiocres.
Coût et conditions15 000 roubles ponctuels + 60 000 roubles par an.7 $ pour 1000 demandes. Mais jusqu'à 200 $ / mois jusqu'à présent (en octobre 2019) gratuitement.À partir de 120 000 roubles par an (le prix comprend l'utilisation du géocodage, le nombre total de demandes est de + 500 000 roubles par an, si vous prévoyez de conserver les données à la maison.Libre et gratuit.

Qu'avons-nous choisi?


Géocodage


Pour le géocodage, nous avons choisi une solution hybride du service Dadata.ru et du service Nominatim d'OpenStreetMaps. Le géocodage fonctionne comme suit.

Lorsque vous entrez l'adresse, l'utilisateur affiche des invites du service Dadata.ru. Si les invites contiennent ce que l'utilisateur recherchait, il clique sur l'invite, l'adresse sélectionnée est affichée sur la carte et les coordonnées sont affichées sous la représentation textuelle de l'adresse (reçue de Dadata.ru). Vidéo Youtube .

Si l'adresse saisie par l'utilisateur dans le service Dadata.ru est absente, l'utilisateur peut appuyer sur Entrée et la demande d'adresse ira au service Nominatim. Si l'adresse est trouvée dans les résultats de la recherche, l'utilisateur clique sur l'adresse, l'adresse est affichée sur la carte et les coordonnées sont affichées sous la représentation sous forme de chaîne de l'adresse. Vidéo Youtube .

, , Dadata.ru, Nominatim, — . Youtube .

Les cartes


. OpenStreetMaps. , .

-: Okdesk


, Okdesk:


, 14 .

Source: https://habr.com/ru/post/fr473568/


All Articles