mirror of
https://github.com/Maks1mS/free-ozon-dpr.git
synced 2024-12-24 02:52:58 +03:00
Compare commits
2 Commits
799de028da
...
964009cdc3
Author | SHA1 | Date | |
---|---|---|---|
964009cdc3 | |||
9b68dea419 |
@ -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": "неизвестно"
|
||||
}
|
||||
]
|
||||
}
|
@ -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"
|
||||
}
|
||||
]
|
@ -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>
|
||||
|
@ -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();
|
||||
});
|
||||
});
|
||||
|
81
src/map.js
81
src/map.js
@ -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: [
|
||||
'© <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: ['© <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;
|
||||
|
@ -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;
|
||||
}
|
Loading…
Reference in New Issue
Block a user