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

61 lines
1.6 KiB
JavaScript

import map from "./map";
import { Overlay } from "ol";
import QRCode from "qrcode";
import { el } from "./utils";
import { toLonLat } from "ol/proj";
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();
const [lon, lat] = toLonLat(coordinates);
popupName.textContent = feature.get("name");
popupAddress.textContent = feature.get("address");
popupAddress.href = `https://yandex.ru/maps/?whatshere[point]=${lon},${lat}&whatshere[zoom]=18&l=map`
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);