1 votos

Minzoom de Openlayers para ver todo el mapa

Estoy usando openlayers con OSM como fuente de mapas. Me gustaría cambiar la configuración del mapa co no se puede ampliar más que el tamaño del mapa .

enter image description here

Ahora es una situación. No quiero ver el espacio en blanco. No quiero que el mapa envuelva a X (ya lo hice con wrapX : false en el constructor OSM). Pero, ¿cómo puedo configurar el mapa para verlo sólo una vez? Intenté ajustar el zoom mínimo a algún valor, pero seguía viendo el espacio en blanco.

Esta es mi función init

    this._source = new OSM({
        cacheSize: 10000,
        wrapX : false
    });

    this._layer = new OlTileLayer({
        source: this._source
    });

    this._view = new OlView({
        center: [-7916041.528716288, 5228379.045749711],
        zoom: 4,
        minZoom: 2
    });

    this.map = new OlMap({
        target: 'map',
        layers: [this._layer],
        view: this._view,
        controls: [
            new OlControlZoom(),
            new OlControlZoomSlider()
        ]
    });

¿Puede alguien ayudarme?

1voto

rymn Puntos 448

Como comento en la pregunta, se puede utilizar extent que limita las coordenadas del centro para moverse dentro del rango.
Averigua cuáles son las coordenadas exactas de las imágenes de los mapas (por ejemplo, para OSM, es [-20027724.40316874, -20027724.40316874, 20027724.403168738, 20032616.372978993] ), y luego establecerlo como extent entonces el centro del mapa no se sale del mapa.
Esto es lo que puede hacer por ahora aunque puede ver media zona de espacio en blanco cuando llegue a su límite.

Otra forma es, si soporta pocos niveles, establecer extent como un poco dentro de los puntos de la frontera para que pueda mostrar las imágenes del mapa en lugar de blanco. pero extent se basa en las coordenadas y no se preocupa por las cosas visuales, por lo que al acercarse o alejarse, se perderán las imágenes de los límites si se establecen coordenadas demasiado profundas dentro de los límites, y se verán espacios en blanco si se establecen coordenadas demasiado superficiales dentro de los límites.

https://codepen.io/anon/pen/eMBeMM es un ejemplo para zoom:2, ancho:500px, alto: 600px con OSM

view: new ol.View({
  center: [0, 0],
  zoom: 2,
  minZoom: 2,
  extent: [-7435794.111581946, -8766409.899970295, 8688138.383006273, 9314310.518718438]
})

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X