Closed GMalard closed 1 year ago
Merci Guillaume pour ton retour qui permet d'améliorer velobs. A généraliser dans une prochaine version pour que d'autres puissent en bénéficier et qu'on n'ait pas à refaire ces modifs à chaque nouvelle version.
Par exemple, appliquer le même fonctionnement qu'avec les fonds de cartes (tableau mapLayersArray dans lib/js/key.js.template):
Bonjour Gerald (et merci pour le dev de Velobs !)
tu te sens de faire un fork + merge request avec ces modifs?
Oui ça marche, peut-être pas dans l'instant mais promis je m'y attèle
Bonjour,
Velobs est en cours de test sur Albi avec l'association TAVPA (velobs.tavpa.fr). Pour personnaliser le fond de carte, plutôt que d'utiliser OpenCycleMap, nous avons récupéré les données du plan cyclable de l'agglo au format vectoriel et nous les avons insérés dans la carte publique sous forme de fichiers kml. Dans cette solution, un peu rapide, chaque type d'aménagement est une couche distincte, même s'il serait plus propre de n'avoir qu'une couche et un style variant en fonction des attributs des objets dans le kml.
Voici les quelques lignes ajoutées dans map.js juste avant "publicMap.addLayer(layerNewObservation);"
var layerBC = new OpenLayers.Layer.Vector("Bandes cyclables", {strategies: [new OpenLayers.Strategy.Fixed()], projection: new OpenLayers.Projection("EPSG:4326"), reportError:true,styleMap:stylePole, visibility: true, displayInLayerSwitcher: true, protocol: new OpenLayers.Protocol.HTTP({ url: "resources/kml/reseau_ALBI_BC.kml", format: new OpenLayers.Format.KML({format: OpenLayers.Format.KML})}), style: {strokeColor: "lightgreen", strokeWidth: 5, strokeOpacity: 0.8} } ); layerBC.setZIndex(3);
var layerchaucidou = new OpenLayers.Layer.Vector("Chaucidoux", {strategies: [new OpenLayers.Strategy.Fixed()], projection: new OpenLayers.Projection("EPSG:4326"), reportError:true,styleMap:stylePole, visibility: true, displayInLayerSwitcher: true, protocol: new OpenLayers.Protocol.HTTP({ url: "resources/kml/reseau_ALBI_chaucidou.kml", format: new OpenLayers.Format.KML({format: OpenLayers.Format.KML})}), style: {strokeColor: "blue", strokeWidth: 5, strokeOpacity: 0.5} } ); layerchaucidou.setZIndex(3);
var layerDS = new OpenLayers.Layer.Vector("Doubles sens cyclables", {strategies: [new OpenLayers.Strategy.Fixed()], projection: new OpenLayers.Projection("EPSG:4326"), reportError:true,styleMap:stylePole, visibility: true, displayInLayerSwitcher: true, protocol: new OpenLayers.Protocol.HTTP({ url: "resources/kml/reseau_ALBI_DS.kml", format: new OpenLayers.Format.KML({format: OpenLayers.Format.KML})}), style: {strokeColor: "red", strokeWidth: 5, strokeOpacity: 0.5} } ); layerDS.setZIndex(3);
var layerPPV = new OpenLayers.Layer.Vector("Pistes piétons vélos", {strategies: [new OpenLayers.Strategy.Fixed()], projection: new OpenLayers.Projection("EPSG:4326"), reportError:true,styleMap:stylePole, visibility: true, displayInLayerSwitcher: true, protocol: new OpenLayers.Protocol.HTTP({ url: "resources/kml/reseau_ALBI_PPV.kml", format: new OpenLayers.Format.KML({format: OpenLayers.Format.KML})}), style: {strokeColor: "Fuchsia", strokeWidth: 5, strokeOpacity: 0.5} } ); layerPPV.setZIndex(3);
var layerProjet = new OpenLayers.Layer.Vector("Projets", {strategies: [new OpenLayers.Strategy.Fixed()], projection: new OpenLayers.Projection("EPSG:4326"), reportError:true,styleMap:stylePole, visibility: true, displayInLayerSwitcher: true, protocol: new OpenLayers.Protocol.HTTP({ url: "resources/kml/reseau_ALBI_projet.kml", format: new OpenLayers.Format.KML({format: OpenLayers.Format.KML})}), style: {strokeColor: "Red", strokeWidth: 5, strokeOpacity: 0.5, strokeDashstyle: "dot"} } ); layerProjet.setZIndex(3);
var layerVV = new OpenLayers.Layer.Vector("Véloroutes / Voies vertes", {strategies: [new OpenLayers.Strategy.Fixed()], projection: new OpenLayers.Projection("EPSG:4326"), reportError:true,styleMap:stylePole, visibility: true, displayInLayerSwitcher: true, protocol: new OpenLayers.Protocol.HTTP({ url: "resources/kml/reseau_ALBI_VV.kml", format: new OpenLayers.Format.KML({format: OpenLayers.Format.KML})}), style: {strokeColor: "DarkGreen", strokeWidth: 5, strokeOpacity: 0.5} } ); layerVV.setZIndex(3);
var layerZR = new OpenLayers.Layer.Vector("Zones de rencontre", {strategies: [new OpenLayers.Strategy.Fixed()], projection: new OpenLayers.Projection("EPSG:4326"), reportError:true,styleMap:stylePole, visibility: true, displayInLayerSwitcher: true, protocol: new OpenLayers.Protocol.HTTP({ url: "resources/kml/reseau_ALBI_ZR.kml", format: new OpenLayers.Format.KML({format: OpenLayers.Format.KML})}), style: {strokeColor: "Gold", strokeWidth: 5, strokeOpacity: 0.5} } ); layerZR.setZIndex(3);
publicMap.addLayer(layerBC); publicMap.addLayer(layerchaucidou); publicMap.addLayer(layerDS); publicMap.addLayer(layerPPV); publicMap.addLayer(layerVV); publicMap.addLayer(layerZR); publicMap.addLayer(layerProjet);