Показать сообщение отдельно
  #7 (permalink)  
Старый 19.01.2023, 18:47
Аспирант
Отправить личное сообщение для Frost56ru Посмотреть профиль Найти все сообщения от Frost56ru
 
Регистрация: 19.03.2016
Сообщений: 42

Сообщение от рони Посмотреть сообщение
по ссылке всё в порядке -- путь
response.GeoObjectCollection.featureMember[0].GeoObject.metaDataProperty.GeocoderMetaData.AddressDetails.Country.AddressLine
должен работать
К сожалению не работает:

Код:
ymaps.ready(init);
var myMap;

function init () {
    myMap = new ymaps.Map("map", {
        center: [55.7519, 37.6116], // MSK
        zoom: 11
    }, {
        balloonMaxWidth: 500,
        searchControlProvider: 'yandex#search'
    });

    // Обработка события, возникающего при щелчке
    // левой кнопкой мыши в любой точке карты.
    // При возникновении такого события откроем балун.
    myMap.events.add('click', function (e) {
        if (!myMap.balloon.isOpen()) {
            var coords = e.get('coords');
            myMap.balloon.open(coords, {
                contentHeader:'Поиск адреса для доставки...',
                contentBody:
                    '<p>Это ваш дом?' + [
                    coords[0].toPrecision(6),
                    coords[1].toPrecision(6)
                    ].join(', ') + '</p>',
                contentFooter:'<sup>Щелкните еще раз чтобы закрыть</sup>'
            });
            var sjoin = [coords[0].toPrecision(6),coords[1].toPrecision(6)].join(',');
            const xhr = new XMLHttpRequest();
            xhr.open('GET', 'https://geocode-maps.yandex.ru/1.x/?apikey=80544-a071-416d-908a-66ad26bf029d&geocode='+sjoin+'&sco=latlong&format=json');
            xhr.responseType="json";
            xhr.onload = () => {
                if(xhr.status !== 200){
                    console.log(`Ошибка ${xhr.status}: ${xhr.statusText}`);
                    return;
                }
                const response = xhr.response;
                console.log(response.GeoObjectCollection.featureMember[0].GeoObject.metaDataProperty.GeocoderMetaData.AddressDetails.Country.AddressLine);

            };
            xhr.onerror = () => {
              console.log(`Ошибка выполнения запроса`);
            };
            xhr.send();

        }
        else {
            myMap.balloon.close();
        }
    });

    // Обработка события, возникающего при щелчке
    // правой кнопки мыши в любой точке карты.
    // При возникновении такого события покажем всплывающую подсказку
    // в точке щелчка.
    myMap.events.add('contextmenu', function (e) {
        myMap.hint.open(e.get('coords'), 'Отметьте свой дом на карте');
    });
    
    // Скрываем хинт при открытии балуна.
    myMap.events.add('balloonopen', function (e) {
        myMap.hint.close();
    });
}


Ответ в логе:
Код:
event_properties.js:38 Uncaught TypeError: Cannot read properties of undefined (reading 'featureMember')
    at xhr.onload (event_properties.js:38:58)
Ответить с цитированием