0
0
mirror of https://github.com/Maks1mS/free-ozon-dpr.git synced 2024-12-23 18:42:59 +03:00

Compare commits

...

2 Commits

Author SHA1 Message Date
964009cdc3 feat: add info button 2024-06-10 20:58:19 +03:00
9b68dea419 update 2024-06-10 20:11:14 +03:00
6 changed files with 369 additions and 42 deletions

View File

@ -551,6 +551,196 @@
"name": "Донецк, бул. Шевченко, 66",
"address": "Донецк, бул. Шевченко, 66",
"operationTime": "неизвестно"
},
{
"coordinates": [
37.795933,
48.021495
],
"link": "https://ozon.ru/point/538086",
"name": "Донецк, ул. Университетская 76",
"address": "Донецк, ул. Университетская 76",
"operationTime": "неизвестно"
},
{
"coordinates": [
36.792245,
46.755007
],
"link": "https://ozon.ru/point/538187",
"name": "г. Бердянск проспект Победы 11 б",
"address": "г. Бердянск проспект Победы 11 б",
"operationTime": "неизвестно"
},
{
"coordinates": [
37.864259,
48.009494
],
"link": "https://ozon.ru/point/538180",
"name": "г. Донецк, пр.Шевченко 129",
"address": "г. Донецк, пр.Шевченко 129",
"operationTime": "неизвестно"
},
{
"coordinates": [
38.48274,
48.043203
],
"link": "https://ozon.ru/point/538091",
"name": "г. Шахтёрск, улица Крупская,1( района автовокзала)",
"address": "г. Шахтёрск, улица Крупская,1( района автовокзала)",
"operationTime": "неизвестно"
},
{
"coordinates": [
38.144865,
48.037727
],
"link": "https://ozon.ru/point/538092",
"name": "г.Харцызск, ул.Вокзальная, 67",
"address": "г.Харцызск, ул.Вокзальная, 67",
"operationTime": "неизвестно"
},
{
"coordinates": [
38.150597,
48.042505
],
"link": "https://ozon.ru/point/538093",
"name": "г.Харцызск, ул.Первомайская,1а",
"address": "г.Харцызск, ул.Первомайская,1а",
"operationTime": "неизвестно"
},
{
"coordinates": [
37.806057,
47.958853
],
"link": "https://ozon.ru/point/538181",
"name": "г. Донецк, Куприна 3а",
"address": "г. Донецк, Куприна 3а",
"operationTime": "неизвестно"
},
{
"coordinates": [
37.849239,
48.009934
],
"link": "https://ozon.ru/point/538177",
"name": "г. Донецк, бул. Шевченко 66",
"address": "г. Донецк, бул. Шевченко 66",
"operationTime": "неизвестно"
},
{
"coordinates": [
37.807773,
48.004304
],
"link": "https://ozon.ru/point/538094",
"name": "Донецк, пр. Гурова 22",
"address": "Донецк, пр. Гурова 22",
"operationTime": "неизвестно"
},
{
"coordinates": [
37.830563,
48.000753
],
"link": "https://ozon.ru/point/538179",
"name": "Донецк, пр. Ильича 27",
"address": "Донецк, пр. Ильича 27",
"operationTime": "неизвестно"
},
{
"coordinates": [
37.778856,
48.044234
],
"link": "https://ozon.ru/point/538182",
"name": "Донецк, пр. Киевский 24",
"address": "Донецк, пр. Киевский 24",
"operationTime": "неизвестно"
},
{
"coordinates": [
37.921544,
47.966117
],
"link": "https://ozon.ru/point/538369",
"name": "Донецк, ул. Буденновских партизан",
"address": "Донецк, ул. Буденновских партизан",
"operationTime": "неизвестно"
},
{
"coordinates": [
37.769504,
47.959492
],
"link": "https://ozon.ru/point/538095",
"name": "Донецк, ул. Кольцова 15",
"address": "Донецк, ул. Кольцова 15",
"operationTime": "неизвестно"
},
{
"coordinates": [
37.753595,
48.028286
],
"link": "https://ozon.ru/point/538096",
"name": "Донецк, ул. Куйбышева 169 Б",
"address": "Донецк, ул. Куйбышева 169 Б",
"operationTime": "неизвестно"
},
{
"coordinates": [
37.68995,
47.948377
],
"link": "https://ozon.ru/point/538097",
"name": "Донецк, ул. Ляшенко 1а",
"address": "Донецк, ул. Ляшенко 1а",
"operationTime": "неизвестно"
},
{
"coordinates": [
37.798996,
47.988688
],
"link": "https://ozon.ru/point/538186",
"name": "Донецк, ул. Первомайская",
"address": "Донецк, ул. Первомайская",
"operationTime": "неизвестно"
},
{
"coordinates": [
37.806093,
47.990949
],
"link": "https://ozon.ru/point/538183",
"name": "Донецк, ул. Постышева 43",
"address": "Донецк, ул. Постышева 43",
"operationTime": "неизвестно"
},
{
"coordinates": [
37.964035,
48.100134
],
"link": "https://ozon.ru/point/538184",
"name": "Макеевка, ул. 50 лет образования СССР 24а",
"address": "Макеевка, ул. 50 лет образования СССР 24а",
"operationTime": "неизвестно"
},
{
"coordinates": [
37.995841,
47.413247
],
"link": "https://ozon.ru/point/538178",
"name": "пгт. Тельманово ул. Ленина 251",
"address": "пгт. Тельманово ул. Ленина 251",
"operationTime": "неизвестно"
}
]
}

View File

@ -802,5 +802,89 @@
"operationTime": "неизвестно",
"source": "https://dostavka.7telecom.ru",
"provider": "7dostavka"
},
{
"coordinates": [
36.792245,
46.755007
],
"link": "https://ozon.ru/point/538187",
"name": "г. Бердянск проспект Победы 11 б",
"address": "г. Бердянск проспект Победы 11 б",
"operationTime": "неизвестно",
"source": "https://dostavka.7telecom.ru",
"provider": "7dostavka"
},
{
"coordinates": [
38.48274,
48.043203
],
"link": "https://ozon.ru/point/538091",
"name": "г. Шахтёрск, улица Крупская,1( района автовокзала)",
"address": "г. Шахтёрск, улица Крупская,1( района автовокзала)",
"operationTime": "неизвестно",
"source": "https://dostavka.7telecom.ru",
"provider": "7dostavka"
},
{
"coordinates": [
38.144865,
48.037727
],
"link": "https://ozon.ru/point/538092",
"name": "г.Харцызск, ул.Вокзальная, 67",
"address": "г.Харцызск, ул.Вокзальная, 67",
"operationTime": "неизвестно",
"source": "https://dostavka.7telecom.ru",
"provider": "7dostavka"
},
{
"coordinates": [
38.150597,
48.042505
],
"link": "https://ozon.ru/point/538093",
"name": "г.Харцызск, ул.Первомайская,1а",
"address": "г.Харцызск, ул.Первомайская,1а",
"operationTime": "неизвестно",
"source": "https://dostavka.7telecom.ru",
"provider": "7dostavka"
},
{
"coordinates": [
37.806057,
47.958853
],
"link": "https://ozon.ru/point/538181",
"name": "г. Донецк, Куприна 3а",
"address": "г. Донецк, Куприна 3а",
"operationTime": "неизвестно",
"source": "https://dostavka.7telecom.ru",
"provider": "7dostavka"
},
{
"coordinates": [
37.849239,
48.009934
],
"link": "https://ozon.ru/point/538177",
"name": "г. Донецк, бул. Шевченко 66",
"address": "г. Донецк, бул. Шевченко 66",
"operationTime": "неизвестно",
"source": "https://dostavka.7telecom.ru",
"provider": "7dostavka"
},
{
"coordinates": [
37.995841,
47.413247
],
"link": "https://ozon.ru/point/538178",
"name": "пгт. Тельманово ул. Ленина 251",
"address": "пгт. Тельманово ул. Ленина 251",
"operationTime": "неизвестно",
"source": "https://dostavka.7telecom.ru",
"provider": "7dostavka"
}
]

View File

@ -66,7 +66,7 @@
</style>
</head>
<body>
<div class="info-popup">
<div id="info-popup" class="info-popup">
<div class="info-popup-content">
<h1>Важная информация перед использованием сайта</h1>
<h2>Пожалуйста, прочитайте внимательно</h2>

View File

@ -3,24 +3,49 @@ import { el } from "./utils.js";
const HIDE_INFO_POPUP = "hideInfoPopup";
let infoPopup;
let map;
function getHidePopup() {
const hidePopupCookie = Cookies.get(HIDE_INFO_POPUP);
return hidePopupCookie === 'true';
}
function setHidePopup(hidePopupCookie) {
Cookies.set(HIDE_INFO_POPUP, hidePopupCookie ? "true" : "false", { expires: 400 });
}
export function showPopup() {
infoPopup.style.display = "block";
map.style.display = "none";
const hidePopupCookie = getHidePopup();
if (hidePopupCookie) {
const noShowCheckbox = document.querySelector('input[name="no-show"]');
noShowCheckbox.checked = true;
}
}
export function hidePopup() {
infoPopup.style.display = "none";
map.style.display = "block";
}
document.addEventListener("DOMContentLoaded", function () {
const infoPopup = document.querySelector(".info-popup");
infoPopup = el("info-popup");
const noShowCheckbox = document.querySelector('input[name="no-show"]');
const confirmButton = document.querySelector(".info-popup footer button");
const map = el("map");
map = el("map");
const hidePopupCookie = getHidePopup();
const hidePopupCookie = Cookies.get(HIDE_INFO_POPUP);
if (!hidePopupCookie) {
infoPopup.style.display = "block";
map.style.display = "none";
showPopup();
}
confirmButton.addEventListener("click", function () {
if (noShowCheckbox.checked) {
Cookies.set(HIDE_INFO_POPUP, "true", { expires: 400 });
}
infoPopup.style.display = "none";
map.style.display = "block";
setHidePopup(noShowCheckbox.checked);
hidePopup();
});
});

View File

@ -1,40 +1,63 @@
import 'ol/ol.css';
import Map from 'ol/Map';
import View from 'ol/View';
import TileLayer from 'ol/layer/Tile';
import { fromLonLat } from 'ol/proj';
import { XYZ } from 'ol/source';
import "ol/ol.css";
import Map from "ol/Map";
import View from "ol/View";
import TileLayer from "ol/layer/Tile";
import { fromLonLat } from "ol/proj";
import { XYZ } from "ol/source";
import { Control, defaults as defaultControls } from "ol/control.js";
// import { createXYZ } from 'ol/tilegrid';
import { showPopup } from "./info-popup.js";
const MAP_TARGET = 'map';
const MAP_TARGET = "map";
const MAP_CENTER = fromLonLat([37.57725139554275, 48.02287702854201]);
const MAP_ZOOM = 8.5;
const customTileSource = new TileLayer({
source: new XYZ({
attributionsCollapsible: false,
attributions: [
'&#169; <a href="https://wikimapia.org/">Wikimapia</a>'
],
tileUrlFunction: ([z, x, y]) => {
const s = x % 4 + (y % 4) * 4
return `https://i${s}.wikimapia.org/?x=${x}&y=${y}&zoom=${z}&type=map&lng=1`
},
maxZoom: 18,
})
source: new XYZ({
attributionsCollapsible: false,
attributions: ['&#169; <a href="https://wikimapia.org/">Wikimapia</a>'],
tileUrlFunction: ([z, x, y]) => {
const s = (x % 4) + (y % 4) * 4;
return `https://i${s}.wikimapia.org/?x=${x}&y=${y}&zoom=${z}&type=map&lng=1`;
},
maxZoom: 18,
}),
});
class InfoButton extends Control {
constructor(opt_options) {
const options = opt_options || {};
const button = document.createElement("button");
button.innerHTML = "i";
const element = document.createElement("div");
element.className = "info-button ol-unselectable ol-control";
element.appendChild(button);
super({
element: element,
target: options.target,
});
button.addEventListener("click", this.showInfo.bind(this), false);
}
showInfo() {
showPopup();
}
}
export const view = new View({
center: MAP_CENTER,
zoom: MAP_ZOOM,
})
const map = new Map({
target: MAP_TARGET,
layers: [
customTileSource
],
view,
center: MAP_CENTER,
zoom: MAP_ZOOM,
});
export default map;
const map = new Map({
controls: defaultControls().extend([new InfoButton()]),
target: MAP_TARGET,
layers: [customTileSource],
view,
});
export default map;

View File

@ -77,4 +77,9 @@ body {
text-decoration: underline;
}
.info-popup-content > p { text-align:justify; }
.info-popup-content > p { text-align:justify; }
.info-button {
top: 5em;
left: .5em;
}