mirror of
https://github.com/Maks1mS/free-ozon-dpr.git
synced 2024-12-24 19:04:44 +03:00
Compare commits
2 Commits
799de028da
...
964009cdc3
Author | SHA1 | Date | |
---|---|---|---|
964009cdc3 | |||
9b68dea419 |
@ -551,6 +551,196 @@
|
|||||||
"name": "Донецк, бул. Шевченко, 66",
|
"name": "Донецк, бул. Шевченко, 66",
|
||||||
"address": "Донецк, бул. Шевченко, 66",
|
"address": "Донецк, бул. Шевченко, 66",
|
||||||
"operationTime": "неизвестно"
|
"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": "неизвестно",
|
"operationTime": "неизвестно",
|
||||||
"source": "https://dostavka.7telecom.ru",
|
"source": "https://dostavka.7telecom.ru",
|
||||||
"provider": "7dostavka"
|
"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>
|
</style>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body>
|
||||||
<div class="info-popup">
|
<div id="info-popup" class="info-popup">
|
||||||
<div class="info-popup-content">
|
<div class="info-popup-content">
|
||||||
<h1>Важная информация перед использованием сайта</h1>
|
<h1>Важная информация перед использованием сайта</h1>
|
||||||
<h2>Пожалуйста, прочитайте внимательно</h2>
|
<h2>Пожалуйста, прочитайте внимательно</h2>
|
||||||
|
@ -3,24 +3,49 @@ import { el } from "./utils.js";
|
|||||||
|
|
||||||
const HIDE_INFO_POPUP = "hideInfoPopup";
|
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 () {
|
document.addEventListener("DOMContentLoaded", function () {
|
||||||
const infoPopup = document.querySelector(".info-popup");
|
infoPopup = el("info-popup");
|
||||||
const noShowCheckbox = document.querySelector('input[name="no-show"]');
|
const noShowCheckbox = document.querySelector('input[name="no-show"]');
|
||||||
const confirmButton = document.querySelector(".info-popup footer button");
|
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) {
|
if (!hidePopupCookie) {
|
||||||
infoPopup.style.display = "block";
|
showPopup();
|
||||||
map.style.display = "none";
|
|
||||||
}
|
}
|
||||||
|
|
||||||
confirmButton.addEventListener("click", function () {
|
confirmButton.addEventListener("click", function () {
|
||||||
if (noShowCheckbox.checked) {
|
setHidePopup(noShowCheckbox.checked);
|
||||||
Cookies.set(HIDE_INFO_POPUP, "true", { expires: 400 });
|
hidePopup();
|
||||||
}
|
|
||||||
|
|
||||||
infoPopup.style.display = "none";
|
|
||||||
map.style.display = "block";
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
81
src/map.js
81
src/map.js
@ -1,40 +1,63 @@
|
|||||||
import 'ol/ol.css';
|
import "ol/ol.css";
|
||||||
import Map from 'ol/Map';
|
import Map from "ol/Map";
|
||||||
import View from 'ol/View';
|
import View from "ol/View";
|
||||||
import TileLayer from 'ol/layer/Tile';
|
import TileLayer from "ol/layer/Tile";
|
||||||
import { fromLonLat } from 'ol/proj';
|
import { fromLonLat } from "ol/proj";
|
||||||
import { XYZ } from 'ol/source';
|
import { XYZ } from "ol/source";
|
||||||
|
import { Control, defaults as defaultControls } from "ol/control.js";
|
||||||
// import { createXYZ } from 'ol/tilegrid';
|
// 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_CENTER = fromLonLat([37.57725139554275, 48.02287702854201]);
|
||||||
const MAP_ZOOM = 8.5;
|
const MAP_ZOOM = 8.5;
|
||||||
|
|
||||||
const customTileSource = new TileLayer({
|
const customTileSource = new TileLayer({
|
||||||
source: new XYZ({
|
source: new XYZ({
|
||||||
attributionsCollapsible: false,
|
attributionsCollapsible: false,
|
||||||
attributions: [
|
attributions: ['© <a href="https://wikimapia.org/">Wikimapia</a>'],
|
||||||
'© <a href="https://wikimapia.org/">Wikimapia</a>'
|
tileUrlFunction: ([z, x, y]) => {
|
||||||
],
|
const s = (x % 4) + (y % 4) * 4;
|
||||||
tileUrlFunction: ([z, x, y]) => {
|
return `https://i${s}.wikimapia.org/?x=${x}&y=${y}&zoom=${z}&type=map&lng=1`;
|
||||||
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,
|
||||||
},
|
}),
|
||||||
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({
|
export const view = new View({
|
||||||
center: MAP_CENTER,
|
center: MAP_CENTER,
|
||||||
zoom: MAP_ZOOM,
|
zoom: MAP_ZOOM,
|
||||||
})
|
|
||||||
|
|
||||||
const map = new Map({
|
|
||||||
target: MAP_TARGET,
|
|
||||||
layers: [
|
|
||||||
customTileSource
|
|
||||||
],
|
|
||||||
view,
|
|
||||||
});
|
});
|
||||||
|
|
||||||
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;
|
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