Получить название региона по точке на Яндекс картах

198
06 декабря 2018, 05:10

Есть скрипт яндекс карт, на карте выбирается точка и адресс точки записывается в input:

<script type="text/javascript" charset="utf-8">
        ymaps.ready(init);
        function init() {
            var  myInput = document.getElementById("address"),
                myPlacemark,
                myMap = new ymaps.Map('map', {
                    center: [55.753994, 37.622093],
                    zoom: 9
                }, {
                    searchControlProvider: 'yandex#search'
                });

            // Слушаем клик на карте.
            myMap.events.add('click', function (e) {
                var coords = e.get('coords');
                // Если метка уже создана – просто передвигаем ее.
                if (myPlacemark) {
                    myPlacemark.geometry.setCoordinates(coords);
                }
                // Если нет – создаем.
                else {
                    myPlacemark = createPlacemark(coords);
                    myMap.geoObjects.add(myPlacemark);
                    // Слушаем событие окончания перетаскивания на метке.
                    myPlacemark.events.add('dragend', function () {
                        getAddress(myPlacemark.geometry.getCoordinates());
                    });
                }
                getAddress(coords);
            });
            // Создание метки.
            function createPlacemark(coords) {
                return new ymaps.Placemark(coords, {
                    iconCaption: 'поиск...'
                }, {
                    preset: 'islands#violetDotIconWithCaption',
                    draggable: true
                });
            }
            // Определяем адрес по координатам (обратное геокодирование).
            function getAddress(coords) {
                myPlacemark.properties.set('iconCaption', 'поиск...');
                ymaps.geocode(coords).then(function (res) {
                    var firstGeoObject = res.geoObjects.get(0),
                        address = firstGeoObject.getAddressLine();
                    myPlacemark.properties
                        .set({
                            // Формируем строку с данными об объекте.
                            iconCaption: [
                                // Название населенного пункта или вышестоящее административно-территориальное образование.
                                firstGeoObject.getLocalities().length ? firstGeoObject.getLocalities() : firstGeoObject.getAdministrativeAreas(),
                                // Получаем путь до топонима, если метод вернул null, запрашиваем наименование здания.
                                firstGeoObject.getThoroughfare() || firstGeoObject.getPremise()
                            ].filter(Boolean).join(', '),
                            // В качестве контента балуна задаем строку с адресом объекта.
                            balloonContent: address
                        });
                    myInput.value = address;
                });
            }
        }
    </script>

Как здесь из API получить еще Регион точки? Например, в отдельную переменную region.

Answer 1

Метод getAdministrativeAreas() возвращает содержание компонентов адреса, описывающих регион.

Например, в случае адресов в Москве это "Москва", т.к. это город федерального значения, а для такого адреса как "Московская область, городской округ Лосино-Петровский, село Анискино, Весенняя улица, 4" - это уже два элемента иерархии: "Московская область" и "городской округ Лосино-Петровский"

READ ALSO
Применение эффекта после того как мышка покинула элемент

Применение эффекта после того как мышка покинула элемент

Нужно реализовать событие, которое по клику должно затемнять блок, но затемнение должно происходить только после того как пользователь кликнул...

166
Как узнать имя селектора после события в jQuery?

Как узнать имя селектора после события в jQuery?

Есть некий набор элементов, по которым обрабатывается нажатиеКак вернуть именно тот селектор, по которому jQuery отловил нажатие?

168
Ссылка на файл не работает

Ссылка на файл не работает

Есть ссылка для открытия файла и картинка, но они не работают, если по ним кликнуть, но если нажать открыть в новой вкладке, то необходимый...

194
Ошибка записи в базу данных

Ошибка записи в базу данных

Помогите пожалуйста решить проблему с базой данных для онлайн игры

210