|
|
|
|
@ -42,12 +42,13 @@ export function KartaPage() {
|
|
|
|
|
pinImage.src = pin;
|
|
|
|
|
pinImage.onload = () => mapRef.current.addImage("pin-marker", pinImage);
|
|
|
|
|
|
|
|
|
|
const icons = initial ? ["prishvin", "ostrovskiy", "brusov"] : [];
|
|
|
|
|
icons.map((i) => {
|
|
|
|
|
const iconImage = new Image();
|
|
|
|
|
iconImage.src = `./markers/${i}.png`;
|
|
|
|
|
iconImage.onload = () =>
|
|
|
|
|
mapRef.current.addImage(`${i}-marker`, iconImage);
|
|
|
|
|
const markers = initial.map(article => ({markerName: `marker-${article.id}`, markerUrl: `${host}${article.attributes.marker.data.attributes.formats.thumbnail.url}`}));
|
|
|
|
|
markers.map((m) => {
|
|
|
|
|
const markerImage = new Image();
|
|
|
|
|
markerImage.crossOrigin = "Anonymous"; // https://stackoverflow.com/questions/22097747/how-to-fix-getimagedata-error-the-canvas-has-been-tainted-by-cross-origin-data
|
|
|
|
|
markerImage.src = m.markerUrl;
|
|
|
|
|
markerImage.onload = () =>
|
|
|
|
|
mapRef.current.addImage(m.markerName, markerImage);
|
|
|
|
|
});
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
@ -56,7 +57,6 @@ export function KartaPage() {
|
|
|
|
|
fetch(`${host}/api/articles?populate=*`)
|
|
|
|
|
.then((r) => r.json())
|
|
|
|
|
.then((d) => {
|
|
|
|
|
console.log(d.data);
|
|
|
|
|
setInitial(d.data);
|
|
|
|
|
setArticles(d.data);
|
|
|
|
|
});
|
|
|
|
|
@ -265,24 +265,18 @@ export function KartaPage() {
|
|
|
|
|
}
|
|
|
|
|
layout={{
|
|
|
|
|
"icon-image": [
|
|
|
|
|
"match",
|
|
|
|
|
["get", "id"],
|
|
|
|
|
6,
|
|
|
|
|
"ostrovskiy-marker",
|
|
|
|
|
7,
|
|
|
|
|
"brusov-marker",
|
|
|
|
|
1,
|
|
|
|
|
"prishvin-marker",
|
|
|
|
|
"pin-marker",
|
|
|
|
|
"concat",
|
|
|
|
|
"marker-",
|
|
|
|
|
["get", "id"]
|
|
|
|
|
],
|
|
|
|
|
"icon-size": [
|
|
|
|
|
"interpolate",
|
|
|
|
|
["linear"],
|
|
|
|
|
["zoom"],
|
|
|
|
|
12,
|
|
|
|
|
0.05,
|
|
|
|
|
0.4,
|
|
|
|
|
14,
|
|
|
|
|
0.1,
|
|
|
|
|
0.8,
|
|
|
|
|
],
|
|
|
|
|
}}
|
|
|
|
|
minzoom={12}
|
|
|
|
|
|