Suite

Obtenir une barre d'échelle, une carte Web avec GeoExt ?


J'ai essayé de créer une carte Web avec GeoExt et tout fonctionne, mais je ne vois pas de barre d'échelle.

var mapPanel, tree; Ext.application({ name : 'test', launch : function() { mapPanel = Ext.create('GeoExt.panel.Map', { title : 'test', border : true, region : "center", map : {allOverlays : false}, centre : [14.000000,47.00000], zoom : 11, calques : [ new OpenLayers.Layer.WMS("OpenStreetMap", "http://ows.terrestris.de/osm-gray/service?" , {couches : 'OSM-WMS' }, { attribution : '© terrestris GmbH & Co. KG 
' + 'Données © OpenStreetMap ' + 'contributeurs' } ),… ] var store = Ext.create('Ext.data.TreeStore', { model : 'GeoExt.data.LayerTreeModel', root : { expand : true, children : [ { plugins : ['gx_overlaylayercontainer'] , développé : vrai, texte : "Layer" }, { plugins : ['gx_baselayercontainer'], étendu : vrai, texte : "Base Maps" } ] } }); tree = Ext.create('GeoExt.tree.Panel', { border: true, region: "west", title: "Layers", width: 285, height: 200, split: true, collapsible: true, collapseMode: " mini", autoScroll : true, store : store, rootVisible : false, lines : false, tbar : true }); Ext.create('Ext.Viewport', { layout:"fit", hideBorders: true, items: { layout: "border", background: "red", deferredRender: false, items: [mapPanel, tree, { contentEl: "desc", région : "north", bodyStyle : {"padding": "5px"}, pliable : true, collapseMode : "mini", split : true, largeur : 200, hauteur : 150, titre : "test" } ] } }); } });

Comment puis-je changer le code pour obtenir la barre d'échelle pour l'OSM ?


Vous pouvez par exemple définir la carte comme une variable et pointer sur cette variable lorsque vous créez votre MapPanel :

var your_map=new OpenLayers.Map({allOverlays: false}); mapPanel = Ext.create('GeoExt.panel.Map', { title: 'test', border: true, region: "center", map: your_map, center: [14.000000,47.00000],… // vos autres paramètres } ); var your_scalebar=new OpenLayers.Control.ScaleLine(); votre_carte.addControl(votre_barre d'échelle);

Edit1 : jsfiddle ajouté : http://jsfiddle.net/expedio/rxr2mhee/


Vous pourrez peut-être créer un contrôle OpenLayers et l'afficher sur votre carte.

nouveau OpenLayers.Control.ScaleLine({})

Documentation trouvée ici.

On dirait que GeoExt explique un peu les contrôles OpenLayers ici aussi.


Voir la vidéo: Comment faire une carte facilement en géographie avec QGis 3: Tuto! (Octobre 2021).