Widget:Geocoder
Внешний вид
<script> function initGeocoder() {
var addressInput = document.querySelector('input[name="address"]');
var latField = document.querySelector('input[name="lat"]');
var lonField = document.querySelector('input[name="lon"]');
var geocodeButton = document.getElementById('geocode-button');
if (!addressInput || !latField || !lonField || !geocodeButton) {
console.log('Поля не найдены');
return;
}
geocodeButton.addEventListener('click', function() {
var address = addressInput.value;
if (!address) {
alert('Введите адрес');
return;
}
var ymapsApiKey = '16841d22-e258-4ddd-9b6c-822c69f4bcc4';
var url = 'https://geocode-maps.yandex.ru/1.x/?apikey=' + ymapsApiKey + '&geocode=' + encodeURIComponent(address) + '&format=json';
fetch(url)
.then(response => response.json())
.then(data => {
var geoObject = data.response.GeoObjectCollection.featureMember[0];
if (geoObject) {
var coordinates = geoObject.GeoObject.Point.pos.split(' ');
lonField.value = coordinates[0];
latField.value = coordinates[1];
alert('Координаты найдены!');
} else {
alert('Адрес не найден');
}
})
.catch(error => {
console.error(error);
alert('Ошибка');
});
});
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initGeocoder);
} else {
initGeocoder();
} </script>