Bonjour à tous !
Comme suggéré ici je créé un sujet pour cette problématique qui semble plus complexe que prévue...
Je cherche à définir "en dur" les niveaux d'échelles affiché par l'API.
Je m'explique : je souhaiterais pouvoir passer de l'échelle 1:1000 à 1:2500 puis 1:5000, 1:25 000, 1:50 000, 1:100 000...
Dans le sujet "Zoom mini pour l'API" a été expliqué le code nécessaire pour créer manuellement la carte :
![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
dgrichard
Il faut construire la carte à la main comme suit, par exemple :
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
viewer= new Geoportal.Viewer.Default(
"GeoportalDiv",
OpenLayers.Util.extend({
mode: 'mini',
territory: 'FXX',
projection: new OpenLayers.Projection('IGNF:GEOPORTALFXX'),
displayProjection: ['IGNF:RGF93G'],
minZoomLevel: 5,
maxZoomLevel: 15,
nameInstance: 'viewer',
proxy: 'url_proxy'
},
window.gGEOPORTALRIGHTSMANAGEMENT===undefined? {apiKey:['CLEF']}:gGEOPORTALRIGHTSMANAGEMENT
)
); |
en ayant donc pris soit de ne pas mettre le paramètre
instance au chargement de l'API
![:ccool:](https://www.developpez.net/forums/images/smilies/ccool.gif)
J'ai donc tenté d'y ajouter l'argument "scale" :
scales: [1000000, 633600, 500000, 253440, 250000,126720, 100000, 63360, 50000, 25000,10560,12500,10000,5000,2500,1250,1000,500,250],
mais cela n'a rien changé...
Premier élément de réponse de dgrichard :
![Citation](https://forum.developpez.be/images/misc/quote_icon.png)
Envoyé par
dgrichard
C'est un sujet à part entière ! (je souhaiterai donc une autre discussion que celle-là).
Le problème est que les échelles Géoportail (comme celle de Google, Bings, Yahoo, etc ...) vont de 2 en 2 : 250, 500, 1000, 2000, etc ... Dessiner au 1:1250 revient à étirer/compresser l'image retournée au 1:1000 ou 1:2000. C'est ce mécanisme qui est à regarder dans l'API.
ok pour les échelles "prédéfinies" je comprends qu'il soit compliqué d'étirer ou de réduire les pyramides existantes pour atteindre une échelle précise (1:1250 par exemple) mais comment faire pour simplement mettre l'api à l'échelle 1:2000 par exemple ...?
P.S.: pour lire l'échelle en cours j'utilise :
VISU.getMap().getScale())
Y-a-t-il une fonction de ce genre pour définir l'échelle en cours ? (dans la listes des échelles prédéfinies)
Merci d'avance !
Partager