Intégration Openstreetmap
Bonjour,
Je cherche à intégrer une mini-carte OSM dans l'un de mes articles ; j'ai trouvé cet exemple qui fonctionne bien sur une page html seule, mais je ne parviens pas à adapter le code pour le mettre dans un article.
Merci d'avance
Je cherche à intégrer une mini-carte OSM dans l'un de mes articles ; j'ai trouvé cet exemple qui fonctionne bien sur une page html seule, mais je ne parviens pas à adapter le code pour le mettre dans un article.
Merci d'avance
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Essaies, si tu peux de passer par une page statique pour ce genre de besoin.
Essaye en collant dans une page statique le code suivant. Il reprend celui de ton lien, sans les balises <html><head><body>, mais avec le contenu de <head> et <body> uniquement + l'appel de la fonction javascript init() en fin de page
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
J'ai essayé ceci dans une page statique :
Par contre à l'enregistrement la dernière div est supprimée.
En revanche l'exemple minimal fonctionne dans un article :
mais pas l'exemple suivant.
Désolé
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
est-il possible de feinter en appelant la page qui fonctionne au sein d'un article ?
Vérifie si le bloc n'est pas écrasé en mettant une bordure (border:1px solid red;) à la div recevant la carte. Si tu ne vois qu'un trait, c'est que la hauteur n'est pas prise en compte. Il faut alors la mettre en unité absolue (en pixel) pour forcer le bloc à avoir une hauteur fixe.
Le code suivant fonctionne (il met 3 plombes à charger mais il fonctionne).
J'ai modifié le fichier header de mon thème en ajoutant au niveau de la balise body le code suivant :
On pourrait affiner la condition pour que le script ne s'affiche que lors de l'appel de la bonne page, mais je n'ai pas trop chercher. Je te laisse le soin de le faire .
Si tu es sous Firefox et que ça ne s'affiche toujours pas, essaie de cliquer sur Maj+crtl+s (ou Maj+cmd+s sur mac) pour afficher la page sans css. Si le script fonctionne, la carte s'affiche. Si c'est le cas, c'est un problème de css.
Il faut bien sûr également modifier le header comme expliqué précédemment.
Pour plus de faciliter de mise en page, tu peux utiliser un bloc contenair ainsi :
J'utilise le thème dark and blue, voici mon header.php après modification :
J'ai essayé tes différentes propositions, en particulier la dernière, la place est bien réservée mais la carte n'apparait pas, y compris quand la page est affichée sans css.
As-tu essayé avec Maj+crtl+s et Firefox ? La carte n'apparait pas forcément d'emblée mais tu peux l'apercevoir en scrollant la page.
et le code de l'article :
Je suis sous firefox, Maj+Ctrl+S entre en conflit avec un raccourci de noscript, je suis passé par affichage -> style de la page -> aucun style
Alors on va reprendre depuis le début comme je vois des bonnes et des mauvaises choses.
Ce qui va suivre fonctionne: testé avec le thème par défaut de PluXml et une installation de la 5.1.6
1) créer à la racine de votre pluxml, un fichier around_lake.gpx et coller dedans le code suivant
2) dans le dossier de votre theme, dupliquer le fichier static.php et nommer le static-osm.php, afin de créer un template de page statique qui sera utilisé lors de l'affichage d'une seule page statique (rappel: la structure du nom d'un fichier template est static-xxxxx.php, article-xxxxx.php, etc...)
3) coller dans le fichier static-osm.php le code suivant
4) Aller dans l'administration, créer une nouvelle page statique. Cliquer sur le lien "Editer" (colonne action) de la page statique.
5) Dans le déroulant "Template", sélectionner "static-osm.php". Sauvegarder
6) Coté visiteur, accèder à la page statique
Ici en utilisant un template, le code pour visualiser la carte n'est chargé que lors de la visualisation de la page statique.
On peut ajouter ou modifier le contenu de la page, tout en préservant l'affichage de la carte.
Pour faire des modification sur l'affichage proprement dit de la carte il faut le faire dans le fichier static-osm.php qui est dans le dossier du thème utilisé.
L'affichage est valide W3C, fonctionne avec la réécriture d'url et la compression gzip
La partie de code qui affiche la carte dans le fichier static-osm.php est
Il utilise 2 classes css: mapContainer et map.
Ces classes sont à utiliser dans un fichier static-osm.css et en mettant dedans le code nécessaire
Rappel: lorsqu'un fichier template (static-osm.php) est utilisé, si un fichier portant le même nom mais avec l'extension css existe, il est automatiquement chargé par PluXml au moment de l'affichage de la page statique. D'où la création et l'utilisation du fichier static-osm.css
7) il ne reste plus qu'à faire les modifs voulues au niveau de la carte (coordonnées) et la mise en page (fichier css)
Consultant PluXml
Ancien responsable et développeur de PluXml (2010 à 2018)
Par contre avec le thème dark-blue sur une page statique avec le template static-osm le menu latéral est renvoyé en dessous. J'ai essayé de réduire la largeur de la carte par la css, sans succès.
J'abuse de votre patience mais y-a-t'il un moyen d'adapter la même chose en articles ? Vu que c'est pour des trajets de randonnée, je trouve plus pratique de faire un article par rando plutôt qu'une page statique.
encore merci, ouro
1) Tu crées un fichier article-osm.php dans ton dossier de thème avec le code source d'un article normal.
2) Tu crées un fichier article-osm.css également dans ce dossier et tu y colles le code suivant : 3) Dans le fichier header de ton thème, avant la balise </body>, tu places le code suivant : Cela te permettra d'utiliser le css spécifiquement pour un template donné.
4) Dans un article, si tu utilises ckeditor, clique sur le bouton "Source" et colle le code suivant : 5) Utilise le template précédemment créé article-osm.php pour cet article. Tu peux le sélectionner dans la liste déroulante en bas à gauche de la page d'édition de ton article.
6) Si tu dois mettre plusieurs cartes avec différentes coordonnées, il vaut mieux créer différents fichiers gpx. Dans mon exemple, je les ai mis dans le dossier data/cartes/ qu'il faudra bien entendu créer. Dedans, il faudra placer le fichier around_lake.gpx (pour le code, voir post précédents) et les futurs autres.
on y prend gout et l'on devient exigeant sur le rendu.
Aussi je ne peux que te conseiller de commencer par créer un dossier OpenLayers qui contiendra les archives de scripts et CSS propres à OpenLayers. OpenStreetMap étant un dérivé de OL.
Des lors que tu auras mis au point le format du rendu de carte que tu désires, il te suffit d'intégrer tes cartes
par un simple iframe dans tes articles pluxml. Iframe dont tu ajusteras les dimensions selon le template pluxml que tu auras choisi.
Avantages:
1- coté pluxml juste le bout de code à coller dans ton article - bien en entendu sans passer par l'éditeur.
2- coté édition de cartes, tu n'auras besoin que de préciser l'url de ton fichier.gpx et les coordonnées de centrage de ta carte pour chaque rando dans ton fichier html...... :-)
exemples de carte html qui intègrent du google street de l'ign et autres OpenStreetMap:
http://pofableau.com/Cartes_OL/a_tous_circuits/carte_generale_ol.html
Détail, OpenStreetMap n'est pas l'idéal pour une restitution topographique terrain.
En résumé pluxml te permettra d'intégrer toutes les cartes que tu souhaites selon différentes approches
le plus dur étant de maitriser les codes sources d'OpenLayers ou de l'API de l'IGN ......
Bon courage.
souhaitant partager mes points sublimes, les cartes IGN sont plus magiques que celles de Google.
Merci du partage