26 lines
795 B
JavaScript
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;
|