Je cherche une bibliothèque de cartographie personnalisée mais pas pour afficher une zone géographique réelle mais pour afficher un plan d'étage personnalisé. Je cherche depuis un certain temps mais la plupart des solutions que j'ai trouvées concernent les zones géographiques.
Je souhaite personnaliser quelques niveaux de zoom (probablement 3 niveaux) et idéalement je recherche une solution JavaScript, HTML5 (canvas, SVG).
Est-ce que quelqu'un a des suggestions?
Réponses:
J'ai créé ma propre application de carte en utilisant mes propres images. Notre université s'est déplacée vers un nouveau campus et je cartographie 7 étages (intérieurs), avec 5 niveaux de zoom, à partir de cartes dessinées à la main.
Leaflet est capable de travailler avec des tuiles de carte personnalisées! J'ai suivi ce guide (omarriott.com/aux/leaflet-js-non-geographical-imagery), juste que j'ai fait quelques essais et erreurs avec les numéros de niveau de zoom pour m'assurer que la carte s'est affichée (suivre le guide exactement n'a pas travaille pour moi).
Il existe un plugin appelé Leaflet Indoor mais il repose sur geoJson, que je n'avais pas. Tout ce que j'ai, ce sont des coordonnées d'image personnalisées et mon propre Json personnalisé. Quoi qu'il en soit, le dépliant est capable de convertir les coordonnées de l'image en lat lng (et vice versa) avec les méthodes de non-projet et de projet.
Ce que j'ai fait pour créer différents étages, c'était d'utiliser le contrôle des calques à la place. Bien sûr, il faut un certain temps pour comprendre l'API et s'assurer que tout fonctionne comme il se doit. Par exemple, j'ai regroupé mes marqueurs pour chaque étage et codé un moyen de les rendre bien à travers différents niveaux de zoom. Et le chargement d'un étage différent nécessite également un gestionnaire pour charger correctement les marqueurs.
Je sais que Leaflet a une tonne d'exemples basés sur des cartes géographiques et il peut laisser des gens comme nous dans le noir, mais je veux vous assurer qu'il est possible de le faire pour des cartes personnalisées. Vous avez besoin de l'image, la tuile correctement (avec des noms corrects), la chargez sur un CDN comme Amazon, puis utilisez l'API Leaflet.
la source
Ne connaissant pas votre cas d'utilisation, vous voudrez peut-être jeter un œil à la bibliothèque D3.js (Data Driven Documents) pour la visualisation des données. Bien que je ne sais pas s'il prend en charge les «niveaux de zoom» en soi, mais il prend en charge les cartes zoomables .
Jetez un œil à leurs nombreux exemples ici: https://github.com/mbostock/d3/wiki/Gallery
la source
Traitez le plan d'étage comme une zone géographique. OpenLayers ou Leaflet ne se soucient pas de savoir si les éléments qu'ils affichent sont à l'intérieur ou à l'extérieur - tant que vous pouvez définir un système de coordonnées, tout ira bien.
la source