Suite

Comment obtenir l'échelle actuelle dans OpenLayers 3


Je suis nouveau avec OpenLayers 3. Je travaille avec la projectionEPSG : 4326.

Je peux obtenir la résolution actuelle deview.getResolution(), mais j'ai du mal à obtenir l'échelle actuelle de la carte. Merci de me donner une solution au plus vite.


Vous trouverez ci-dessous une fonction pour obtenir la résolution à partir de l'échelle, vous devriez pouvoir transformer l'inverse en utilisant la même logique :

getResolutionForScale(scale, units) { var dpi = 25,4 / 0,28 ; var mpu = ol.proj.METERS_PER_UNIT[unités] ; var poucesParMètre = 39,37 ; return parseFloat(scale) / (mpu * inchesPerMeter * dpi); }

Je pense que l'échelle n'est pas très utile pour les appareils à écran, vous pouvez obtenir l'échelle en obtenant la résolution et en la multipliant par le nombre de pixels dans l'unité souhaitée. La première réponse à cette question, Obtenir les dimensions physiques de l'écran / dpi / densité de pixels dans Chrome sur Android, explique avec beaucoup de détails comment les pixels de référence correspondent aux unités réelles, donc 96 pixels devraient être égaux à un pouce et votre échelle serait 1: (résolution*96). Je pense qu'une meilleure approche consiste à tracer une ligne d'échelle comme le font la plupart des sites, et OpenLayers 3 a ol.control.ScaleLine pour cela.


Voir la vidéo: Openlayers 6 Tutorial #6 - Layer Switcher (Octobre 2021).