Roman Shuvalov: "J'ai eu l'idée de faire un rendu 3D de la carte OpenStreetMap"



Roman Shuvalov est un développeur de jeux indépendants basé à Togliatti qui a publié Generation Streets plus tôt cette année, sur la base de données OpenStreetMap. Il n'y a pas si longtemps, il a ouvert une partie du code de son projet. Pourquoi l'a-t-il fait, comment le jeu est apparu et pourquoi le choix est tombé sur OSM - Roman a raconté tout cela dans une interview.



- Comment et quand avez-vous entendu parler du projet OpenStreetMap?



- Cela s'est passé il y a environ 5 ans - en 2014-2015, lorsque je cherchais des solutions qui permettraient aux utilisateurs de créer des cartes pour leurs propres besoins. À cette époque, j'avais déjà un petit projet Web - une carte des routes et des chemins de la forêt de Togliatti. Il a été réalisé sur le service Yandex.Maps, au-dessus de l'arrière-plan standard sur lequel un calque vectoriel avec les objets dont j'avais besoin était superposé. D'ailleurs, cette couche a été réalisée sur la base de traces GPS enregistrées par moi et les membres de notre club de cyclisme. C'était un peu comme une carte thermique Strava. À un moment donné, j'ai réalisé que je voulais quelque chose de plus et j'ai commencé à réfléchir à la façon de mettre à niveau ma carte.







En conséquence, j'ai découvert OpenStreetMap. Quand je l'ai vu pour la première fois, j'ai été très surpris: j'ai été frappé par l'incroyable ouverture et la flexibilité du projet. Je pouvais non seulement utiliser librement ses données initiales, mais aussi participer au dessin de la carte, ce qui était assez important pour moi.



Petit à petit, à l'aide des traces GPS dont je dispose, j'ai dessiné la forêt de Togliatti et l'infrastructure associée dans OSM . Après avoir fait mon propre rendu, il peut être vu sur la carte des vélos de la région de Samara... Sa particularité est que même à petite échelle (à partir de 10), des chemins et autres objets pouvant être utiles à un cycliste sont affichés. Alors que sur les rendus standard à l'échelle 10e et même 12e, la carte a un niveau de détail assez bas, ce qui est particulièrement visible lorsque vous essayez de construire une piste cyclable à travers champs et forêts.





Carte cyclable de la région de Samara. Les petits sentiers et les colonies sont visibles même à grande échelle.



- Pourquoi avez-vous fini par rester dans le projet? Après tout, ils ne pouvaient dessiner que les chemins dont vous avez besoin et c'est tout.



- Dessiner une carte dans OSM est une activité dangereuse, car c'est incroyablement addictif, il est alors difficile de s'arrêter. Comment cela se produit-il habituellement? J'ai marqué le chemin, mais j'ai vu qu'il y avait un bâtiment à proximité, mais ce n'était pas sur la carte. Ajoutée. Puis j'ai réalisé qu'il devait encore y avoir un trottoir, et derrière lui une route ... et ainsi de suite. Vous êtes animé par le sentiment de beauté: vous voulez que tout soit beau, et pas seulement là où vous vivez, mais partout. C'est pourquoi je suis resté dans le projet. Certes, maintenant je ne dessine plus autant qu'avant, mais je continue lentement à rendre OSM plus précis. En gros, je corrige des inexactitudes mineures ou je mets à jour la carte - j'ajoute de nouveaux objets qui apparaissent progressivement à l'endroit qui m'intéresse.



- Pourquoi vous intéressez-vous à la cartographie? Pourtant, un passe-temps assez inhabituel.



- Probablement, cela vient d'un désir intérieur de savoir ce qui vous entoure, et bien plus loin que vos yeux ne peuvent le voir. Et j'ai toujours eu ce sentiment. Je me souviens que déjà au lycée j'ai expérimenté le SIG, par exemple, j'ai écrit une application en Delphi (alors je ne pouvais y programmer que) une application qui construisait une carte en trois dimensions de la région de Samara. De plus, à cette époque, il n'y avait pas d'ensembles de données ouverts, ou je ne savais tout simplement rien à leur sujet, et j'ai donc pris les données d'altitude d'un atlas papier ordinaire. Je l'ai scanné et construit un modèle 3D en utilisant un plugin. Je m'intéresse donc depuis longtemps à la cartographie, ou plutôt à la visualisation du monde environnant.



- Parlons de votre jeu 3D, Generation Streets, basé sur des données OSM. Comment est-elle née?



- Je noterai tout de suite que je développe des jeux depuis 2010. Quant à ce jeu en particulier, il y a quelques années, tout à fait par accident, l'idée m'est venue à l'esprit: faire un rendu en trois dimensions d'une carte OSM. Et la planète entière à la fois. J'ai regardé des projets similaires déjà existants ( F4map , OSM Buildings ), mais, malheureusement, aucun d'entre eux ne m'a satisfait - ils sont trop schématiques. Je voulais un rendu plus réaliste: avec des textures, des débris visuels sous forme d'arbres, de lanternes, etc. En un mot, avec ce non-sens que l'on ne remarque généralement pas, mais sans lequel le monde n'a pas l'air vivant.







- Et comment as-tu commencé à développer?



- De la recherche d'une méthode de traitement de masse de données, puisque je voulais faire la planète entière à la fois. Cela m'a pris beaucoup de temps. Au début, j'ai essayé de le faire via une base de données basée sur osm2vectortiles . Mais cela n'a pas fonctionné parce que j'avais un ordinateur faible.



Au final, je me suis installé sur deux petits programmes: Osmconvert et Osmfilter . Pour leur travail, il n'est pas nécessaire de monter la base de données. Ils prennent les données OSM au format PBF et vous permettent de découper les éléments souhaités via des paramètres de ligne de commande. Ainsi, j'ai eu l'opportunité de découper la planète entière en tuiles sans problèmes inutiles.



Mais j'ai tout de suite rencontré ce qui suit: le format PBF n'est pas tout à fait pratique pour générer un rendu tridimensionnel, et il était donc nécessaire de le convertir dans un format adapté à cela. Pour ce faire, j'ai dû écrire plusieurs utilitaires auxiliaires, dont j'ai déjà présenté le code source sous licence libre sur GitHub. Ils sont en partie basés sur la bibliothèque ogr2ogr .



En conséquence, j'ai réussi à créer mon propre format de tuile vectorielle, ce qui, je pense, est très pratique pour lire à l'intérieur du moteur de rendu et générer des modèles 3D. De plus, il vous permet de combiner des tuiles dans de grandes archives, ce qui simplifie leur stockage. Grâce à cette fonctionnalité, je n'ai pas des milliards de fichiers, mais seulement quelques centaines.







- Pourquoi avez-vous décidé de créer votre propre format? Je suppose qu'il existe déjà des solutions toutes faites.



- Oui, vous avez raison: des formats prêts à l'emploi existent déjà, y compris des formats vectoriels, par exemple de Mapbox, mais le fait est qu'ils sont focalisés sur une image plate - en deux dimensions. Et ils ont une caractéristique désagréable: si un bâtiment heurte la jonction des tuiles, il est coupé. Pour moi, c'était absolument inacceptable, car pour que je puisse plus tard faire un modèle 3D du bâtiment, il fallait qu'il soit entier. Il n'y avait pas de solution toute faite à ce problème. Je pense que personne n'a jamais rencontré cela auparavant. J'ai donc décidé de faire quelque chose par moi-même.







- Pourriez-vous partager vos statistiques sur le jeu? Quels sont les avis?



- Depuis la publicationgames sur Steam (accès anticipé - octobre 2018, version «complète» - février 2020), il a été téléchargé par environ 3 mille personnes. Pour ce type de jeu, l'indie est plutôt bien. Il est également important de considérer le point suivant: le jeu a un mauvais gameplay. Et j'ai tout de suite réalisé que dans le cadre de ce projet je ne pourrais pas le rendre plus amusant. Par conséquent, il est ce qu'il est.



L'intérêt principal de ce jeu est que l'utilisateur a la possibilité de télécharger un territoire intéressant pour lui sur la planète Terre et d'y voler. La plupart des jeux n'ont pas cette option. Par exemple, ceux qui vivent à New York se réjouissent régulièrement de la sortie d'un autre jeu dans lequel cette ville a été recréée avec suffisamment de détails. Et il est peu probable que ceux qui vivent à Togliatti attendent jamais le jeu créé dans les lieux de leur ville. C'est exactement ce sur quoi je parie.



Mais comme beaucoup, en plus de la possibilité de télécharger leur propre ville, s'attendaient également à un gameplay soigneusement conçu, j'ai reçu plusieurs critiques négatives sur cette partie. Ils sont bien mérités. J'étais initialement prêt pour cela, car mon jeu ne concerne pas le gameplay, aussi étrange que cela puisse paraître, mais la visualisation des données et la capacité de voler n'importe où dans le monde.







- Votre jeu utilise des données OSM. Est-il possible de le modifier à travers celui-ci?



- Au départ, je voulais intégrer l'éditeur OSM, mais après une petite expérience j'ai décidé de ne pas le faire. Pendant un certain temps, les utilisateurs ont eu la possibilité d'effectuer des modifications. Ces modifications ne sont pas allées directement à OSM, elles se sont "installées" dans la base de données locale. Il s'est avéré que les joueurs sont loin du monde OSM et qu'ils ont donc réagi de manière très irresponsable à la carte. Maintenant, je pense à désactiver même cet éditeur expérimental et à envoyer tous ceux qui souhaitent accéder à JOSM.



- Autant que je sache, vous avez ouvert le code de votre jeu et l'avez posté sous une licence ouverte. Pourquoi as-tu fait cela? Cette décision a-t-elle été difficile à prendre?



- Je n'ai pas ouvert tout le jeu, mais seulement le code responsable de la génération des modèles 3D. Tout d'abord, je l'ai fait pour partager mon travail avec la communauté, car je me sentais une certaine dette envers lui, car j'ai moi-même utilisé l'open source, écrit par d'autres programmeurs. Deuxièmement, très probablement, je n'apporterai plus de changements sérieux à ce produit, mais en même temps je suppose qu'il peut intéresser quelqu'un et même quelqu'un entreprendra de le développer. Troisièmement, je veux que mon code soit utilisé et qu'il aide les gens à résoudre leurs problèmes. Vous regardez, il y aura plus de projets liés au rendu 3D, et peut-être qu'ils incluront ma ville natale de Togliatti.







- Qu'est-ce que tu aimes dans OSM?



- J'aime la licence ouverte et la possibilité d'obtenir des données, pas seulement des tuiles prêtes à l'emploi. Par exemple, j'ai fait un jeu vidéo. Aucun autre service de carte ne me permettrait de le faire aussi facilement. À tout le moins, vous devrez contacter les développeurs et demander les données initiales. Et je ne suis pas sûr que les géants de l'industrie m'auraient rencontré à mi-chemin. Immédiatement, j'ai pris et téléchargé la planète entière et j'ai fait tout ce dont j'avais besoin avec.

J'aime aussi que tout le monde puisse participer au projet et rendre la carte plus précise. Éditeur JOSMpas si difficile. Et en même temps, vous n'avez pas besoin d'attendre que vos modifications soient acceptées ou approuvées - dès que vous les envoyez, elles sont immédiatement dans la base de données principale, ce qui signifie que vous pouvez les utiliser immédiatement pour vos besoins. Par exemple, mettez à jour la carte dans votre navigateur.



- Qu'est-ce qu'il ne faut pas aimer?



- Abondance et tags non systématiques. Ce n'est pas toujours bon. De plus, il est temps de proposer quelque chose avec des compensations. Parfois, vous ouvrez une ville et réalisez qu'une personne l'a peinte sans tenir compte de cette nuance. Et vous ne savez pas quoi faire: transférer tout ou continuer à dessiner avec le mauvais décalage? Bien sûr, je comprends que le monde est imparfait, vous devez surmonter certains problèmes. D'une manière générale, OSM présente plus d'avantages que d'inconvénients.



- Qu'est-ce qui serait mieux fait?



- J'aimerais voir un bon éditeur Web. Oui, il existe déjà un iD , mais il est destiné aux débutants. Je veux quelque chose de plus confortable. De plus, il me semble que ce serait beaucoup mieux si les objets à l'intérieur de l'OSM étaient en quelque sorte liés les uns aux autres. Désormais, si des modifications sont apportées à la forme du bâtiment ou à la position de la route qui passe à proximité, cette modification n'affecte en rien les objets voisins. Même si après le changement, par exemple, la route a commencé à passer au-dessus de la maison. Je ne sais pas exactement comment une telle interaction peut être implémentée, mais j'aimerais que des informations sur les dépendances soient disponibles. Ensuite, par exemple, les itinéraires de transports publics ne seraient pas interrompus si la route était modifiée. Je suppose que cela rendra les données OSM encore plus pratiques pour l'édition et leur utilisation ultérieure.



- Utilisez-vous OSM dans votre vie personnelle? Pour le travail? Outre le jeu.



- Dans la vie quotidienne, en utilisant les navigateurs mobiles OruxMaps et maps.me . Les deux sont hors ligne, c'est-à-dire qu'ils vous permettent de travailler avec la carte sans Internet, leurs cartes sont basées sur OSM. Ce que j'aime avec OruxMaps, c'est qu'il vous permet également d'utiliser vos propres cartes au format vectoriel mapsforge .



- Quels conseils donneriez-vous aux débutants? Ou ceux qui ne font que penser: s'impliquer ou non dans le projet.



- Si vous utilisez un navigateur mobile basé sur OSM, envisagez de commencer à rendre la carte que vous utilisez encore plus précise. Après tout, beaucoup ne savent tout simplement pas que la carte peut être modifiée directement à partir du téléphone.

Pour ceux qui connaissent déjà OSM et même un peu de cartographie, le premier et principal conseil est de lire WikiOSM avant d'éditer la carte . Presque tout est là. Cela vous évitera beaucoup d'erreurs, et vous permettra également d'adopter la culture de la cartographie et de prendre davantage conscience de votre responsabilité envers ceux qui utiliseront ensuite la carte que vous éditez. N'oubliez jamais que les données OSM sont utilisées dans un grand nombre de projets, et essayez donc toujours de maintenir un haut niveau de qualité des données saisies.



- Que direz-vous à la fin de la conversation?



- Aussi bruyant que cela puisse paraître, OSM est actuellement le seul projet cartographique ouvert et gratuit au monde. C'est une alternative indépendante aux services de cartographie commerciale. C'est pourquoi il faut y participer et le développer de toutes les manières possibles. Après tout, si OpenStreetMap cesse d'exister, nous serons tous obligés d'utiliser des cartes commerciales aux conditions que quelqu'un nous imposera. Et vous pouvez oublier l'utilisation gratuite des géodonnées.






Les participants russes d'OpenStreetMap communiquent dans le chat Telegram et sur le forum .

Il existe également des groupes sur les réseaux sociaux VKontakte , Facebook , mais ils publient principalement des actualités.



Rejoignez OSM!






Entretiens précédents:
, , , , , , , , , , , , , , , , , wowik, SviMik, , , , , , aka BANO.notIT, , , , , .




All Articles