---
metadata:
  - name: generator
    content: Diplodoc Platform v5.39.1
alternate:
  - https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/examples/cases/geocode.md
---
# Геокодирование

<iframe id="LIVE-EXAMPLE" style="width:100%;height: 400px;border-radius: 8px;border: 1px solid rgba(92, 94, 102, 0.14);" frameBorder="0" src="https://yastatic.net/s3/front-maps-static/maps-front-jsapi-v2-0/examples/1/out/s3-cases/ru/geocode/index.html" allow="fullscreen"></iframe>

<a target="_blank" rel="noopener noreferrer" style="display: inline-block;margin-top: 10px;cursor: pointer;border-radius: 4px;padding: 9px 12px;background: #151515;color: white;text-decoration: none;font-weight: 500" href="https://codesandbox.io/p/sandbox/zltt9r?file=index.html">Open in CodeSandbox</a>

<div id="doc">
<div id="references">
    <a href="https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/ready">ready</a>, <a href="https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Map">Map</a>, <a href="https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/map.Container">map.Container</a>,
    <a href="https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/geocode">geocode</a>,
    <a href="https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/map.GeoObjects">map.GeoObjects</a>, <a href="https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/GeoObjectCollection">GeoObjectCollection</a>, <a href="https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Placemark">Placemark</a>,
    <a href="https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/Event">Event</a>
</div>
<p>
    API позволяет определять координаты объекта по его названию и
     название объекта по его координатам
    (<a href="https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/dg/concepts/geocoding">прямое и обратное геокодирование</a>).
</p>
<p>
    Оба вида геокодирования производятся с помощью функции <a href="https://yandex.ru/dev/maps/archive/doc/jsapi/2-0/ru/ref/reference/geocode">geocode</a>. Результат,
    возвращаемый этой функцией, может быть сразу размещён на карте.
</p>
<p>
    В данном примере используются оба вида геокодирования:
    <ul>
        <li>прямое&#160;&#8212; определение координат центра Нижнего Новгорода;</li>
        <li>обратное&#160;&#8212; определение названий станций метро и названия места,
            по которому щёлкнули левой кнопкой мыши.</li>
    </ul>
</p>
</div>

{% list tabs %}

-   index.html

    ```html
    <!DOCTYPE html>

    <html>
        <head>
            <title>Примеры. Прямое и обратное геокодирование</title>
            <meta
                http-equiv="Content-Type"
                content="text/html; charset=utf-8"
            />
            <!--
            Укажите свой API-ключ. Тестовый ключ НЕ БУДЕТ работать на других сайтах.
            Получить ключ можно в Кабинете разработчика: https://developer.tech.yandex.ru/keys/
        -->
            
            

            
        </head>

        <body>
            <div id="map" />
        </body>
    </html>
    ```

-   geocode.js

    ```js
    ymaps.ready(init);

    function init() {
        // Поиск координат центра Нижнего Новгорода.
        ymaps.geocode("Нижний Новгород", { results: 1 }).then(
            function (res) {
                // Выбираем первый результат геокодирования.
                var firstGeoObject = res.geoObjects.get(0),
                    // Создаем карту с нужным центром.
                    myMap = new ymaps.Map("map", {
                        center: firstGeoObject.geometry.getCoordinates(),
                        zoom: 11,
                    });

                myMap.container.fitToViewport();
                attachReverseGeocode(myMap);

                // Поиск станций метро.
                // Делаем запрос на обратное геокодирование.
                ymaps
                    .geocode(myMap.getCenter(), {
                        // Ищем только станции метро.
                        kind: "metro",
                        // Ищем в пределах области видимости карты.
                        boundedBy: myMap.getBounds(),
                        // Запрашиваем не более 20 результатов.
                        results: 20,
                    })
                    .then(function (res) {
                        // Задаем изображение для иконок меток.
                        res.geoObjects.options.set(
                            "preset",
                            "twirl#metroMoscowIcon"
                        );
                        // Добавляем полученную коллекцию на карту.
                        myMap.geoObjects.add(res.geoObjects);
                    });
            },
            function (err) {
                // Если геокодирование не удалось, сообщаем об ошибке.
                alert(err.message);
            }
        );

        // При щелчке левой кнопкой мыши выводится
        // информация о месте, на котором щёлкнули.
        function attachReverseGeocode(myMap) {
            myMap.events.add("click", function (e) {
                var coords = e.get("coordPosition");

                // Отправим запрос на геокодирование.
                ymaps.geocode(coords).then(function (res) {
                    var names = [];
                    // Переберём все найденные результаты и
                    // запишем имена найденный объектов в массив names.
                    res.geoObjects.each(function (obj) {
                        names.push(obj.properties.get("name"));
                    });
                    // Добавим на карту метку в точку, по координатам
                    // которой запрашивали обратное геокодирование.
                    myMap.geoObjects.add(
                        new ymaps.Placemark(
                            coords,
                            {
                                // В качестве контента иконки выведем
                                // первый найденный объект.
                                iconContent: names[0],
                                // А в качестве контента балуна - подробности:
                                // имена всех остальных найденных объектов.
                                balloonContent: names.reverse().join(", "),
                            },
                            {
                                preset: "twirl#redStretchyIcon",
                                balloonMaxWidth: "250",
                            }
                        )
                    );
                });
            });
        }
    }
    ```

{% endlist %}
