0
0
mirror of https://github.com/Maks1mS/free-ozon-dpr.git synced 2024-12-23 18:42:59 +03:00
free-ozon-dpr/popup.js
2024-06-05 14:56:19 +03:00

57 lines
1.4 KiB
JavaScript

import map from "./map";
import { Overlay } from "ol";
import QRCode from "qrcode";
import { el } from "./utils";
const container = el("popup");
const closer = el("popup-closer");
const popupName = el("popup-name");
const popupAddress = el("popup-address");
const popupLink = el("popup-link");
const popupCanvas = el("popup-canvas");
const popupSource = el("popup-source");
const popupOperationTime = el("popup-operation-time");
const overlay = new Overlay({
element: container,
autoPan: true,
autoPanAnimation: {
duration: 250,
},
});
map.addOverlay(overlay);
function close() {
overlay.setPosition(undefined);
closer.blur();
return false;
}
function onClick(event) {
const feature = map.forEachFeatureAtPixel(event.pixel, function (feature) {
return feature;
});
if (!feature) return close();
const coordinates = feature.getGeometry().getCoordinates();
popupName.textContent = feature.get("name");
popupAddress.textContent = feature.get("address");
popupLink.href = feature.get("link");
popupSource.href = feature.get("source");
popupOperationTime.textContent = feature.get("operationTime") ?? "неизвестно";
QRCode.toCanvas(popupCanvas, feature.get("link"), function (error) {
if (error) console.error(error);
console.log("success!");
});
overlay.setPosition(coordinates);
}
closer.addEventListener("click", close);
map.on("singleclick", onClick);