Aventurándose en el OpenLayers
código fuente, parece que todo lo relacionado con los niveles de zoom se hace usando resoluciones. Es justo, ya que esto se relaciona directamente con el espacio de la pantalla.
Sin embargo, me gustaría utilizar escalas en su lugar y definir más explícitamente las escalas permitidas.
- ¿Es posible?
Hasta ahora he creado un conjunto de escalas que transformo en resoluciones:
var scales = [500, 1000, 2000, 4000, 10000, 25000, 50000];
var resolutions = [];
for(var i = 0; i < scales.length; i++) {
resolutions.push(OpenLayers.Util.getResolutionFromScale(scales[i], units));
}
map = new OpenLayers.Map('', {
...
minScale: scales[scales.length - 1],
maxScale: scales[0],
resolution: resolutions,
numZoomLevels: scales.length,
...
});
Mi problema es que se respetan la primera y la última escala, pero entre la resolución actual convertida en escala no se encuentra entre las que especifiqué.
- ¿Qué me he perdido?
scales
parámetro en la fuente o en los documentos: dev.openlayers.org/docs/files/OpenLayers/Map-js.htmlLas unidades deben establecerse: unidades: "grados"
Cadena: las unidades en las que se muestra la capa.
Esto afecta el cálculo de la resolución de escala.
Fuente oficial: http://trac.openlayers.org/wiki/SettingZoomLevels
fuente