
сразу ошибку дает.
пробовал и с HTTP и с HTTPS - тоже самое.
Но мысль в нужную сторону)
Вот есть страница с выводом карты:
<!DOCTYPE html>
<html>
<head>
<title>map</title>
<meta charset="utf-8">
<!-- стили карты -->
<link rel="stylesheet" href="https://unpkg.com/leaflet@1.9.4/dist/leaflet.css" integrity="sha256-p4NxAoJBhIIN+hmNHrzRCf9tD/miZyoHS5obTRR9BMY=" crossorigin=""/>
<script src="https://unpkg.com/leaflet@1.9.4/dist/leaflet.js" integrity="sha256-20nQCchB9co0qIjJZRGuk2/Z9VM+kNiyxNV1lvTlZBo=" crossorigin=""></script>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
min-height: 100vh;
display: grid;
place-content: center;
place-items: center;
background-color: rgb(241, 241, 241);
}
#map {
width: 680px;
height: 420px;
border-radius: 6px;
box-shadow: 0px 0px 10px #000;
}
button {
padding: 0.25em 0.75em;
margin: 1em 0.5em;
cursor: pointer;
user-select: none;
}
</style>
</head>
<body>
<div id="map" class="map map-home" style="height: 420px; margin-top: 50px"></div>
<button id="my_position">My Position</button>
<script type="text/javascript">
var map = L.map('map').setView([51.505, -0.09], 13);
L.tileLayer('https://tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
L.marker([51.5, -0.09]).addTo(map)
.bindPopup('A pretty CSS popup.<br> Easily customizable.')
.openPopup();
</script>
</body>
</html>
И уже есть этот скрипт:
<script type="text/javascript">
window.addEventListener("DOMContentLoaded", function() {
const status = document.querySelector("#status");
const mapLink = document.querySelector("#map-link");
mapLink.href = "";
mapLink.textContent = "";
status.textContent = "Locating…";
fetch("//ip-api.com/json/?lang=en&fields=lat,lon").then(function (res) {
return res.json();
}).then(function(data) {
status.textContent = "";
mapLink.href = `https://www.openstreetmap.org/#map=18/${latitude}/${longitude}`;
mapLink.textContent = `Latitude: ${data.lat} °, Longitude: ${data.lon} °`;
}).catch(function () {
status.textContent = "Unable to retrieve your location";
});
});
</script>
как это объединить?)
Чтобы в коде страницы с картой вместо фиксированных координат:
Цитата:
|
var map = L.map('map').setView([51.505, -0.09], 13);
|
и
Цитата:
|
L.marker([51.5, -0.09]).addTo(map)
|
подставлялись нужные из скрипта.
В общем, не знаю как правильно сформулировать... Но нужно чтобы зайдя на страницу с картой, скрипт получил координаты и вывел результат с меткой на карте по вычисленным координатам)
Как именно это реализовать - для меня это неразрешимая задача, поэтому я тут)
Всё что мог найти подходящего - я нашел. Но как это обобщить - я без понятия...