beerbuddy/openlayers/modules/changeResolutionHandler.js

26 lines
795 B
JavaScript

/**
* @module changeResolutionHandler
*/
/** Maximum zoom level to show pins
* @constant {number}
* @default 5
*/
const CUTOFF = 5;
/** Adds or removes pin vector layer depending on zoom level
* @param {boolean} pinning - Boolean to toggle between new pin creation and viewing existing pins. If this is true, existing pins are not visible.
* @param {ol.Map} map - OpenLayers map to center
* @param {ol.layer.Vector} pinLayer - OpenLayers vector layer for pins
*/
const changeResolutionHandler = (pinning, map, pinLayer) => {
map.getView().getZoom() < CUTOFF
? map.getLayers().removeAt(1)
: (() => {
if (map.getLayers().getLength() === 1) {
if (!pinning) map.getLayers().extend([pinLayer]);
}
})();
};
export default changeResolutionHandler;