Suite

Empêcher la carte OpenLayers 3 de dépasser la ligne de date


J'ai une carte OL3 qui se répète constamment. J'ai contenu les couches WMS, bien que les couches vectorielles aiment se répéter. Ce qui est vraiment important, c'est d'empêcher l'utilisateur de se déplacer vers nulle part, c'est-à-dire d'empêcher l'utilisateur de faire défiler les pôles et la ligne de date. J'ai ajouté une étendue à la vue, mais cela ajoute toujours une carte au-delà de la ligne de date et des pôles. Une idée de comment empêcher cela?

vue : nouvelle vue ol.({ centre : [0, 0], zoom : 8, minZoom : 2, maxZoom : 13, étendue : [-20037508.34, -20037508.34, 20037508.34, 20037508.34] })

Est-ce que mon code actuel

Edit : Les solutions des questions précédentes sont toutes OpenLayers 2. OpenLayers 3 est un framework complètement différent qui ne partage pratiquement rien en dehors du nom.


Pour désactiver l'emballage, définissezwrapXà faux pour chaque source de couche.

L'étendue configurée sur la vue restreint le centre de la carte. Pour restreindre l'étendue, vous pouvez faire quelque chose comme

map.on('postrender', function() { var view = map.getView(); var zoom = view.getZoom(); var worldExtent = view.getProjection().getExtent(); var extent = view.calculateExtent( map.getSize()); if (!ol.extent.containsExtent(worldExtent, extent)) { var newExtent = ol.extent.getIntersection(extent, restreintExtent); view.fit(newExtent, map.getSize()); } });

Voir également https://github.com/openlayers/ol3/pull/2777 pour une pull request qui permettra de le faire d'une manière plus agréable.


J'ai fini par utiliser les limites -180,75,180,-75 et accepter un emballage de date et ne pas pouvoir utiliser une partie du nord et du sud. EXTRÊMEMENT frustrant qu'il n'y ait pas de maxExtent dans 3.10.1. Cela semble être un énorme défaut. L'habillage de la carte est moche, tout comme l'espace blanc.


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