Искать на карте

На Яндекс.Картах можно найти:

  • Географические области:

    • По названию:

      В результатах поиска для [Москва] вы увидите результаты для города, реки и гостиницы с названием «Москва». В результатах поиска для В результатах поиска для В результатах поиска для

    • По сочетанию названия места и типа места:

      В результатах поиска по [Москва-реке] вы увидите точные результаты для Москвы-реки. В результатах поиска для В результатах поиска для В результатах поиска для

    • По географическим координатам:

      В результатах поиска для [79 ° 30 ′ N 76 ° 54 ′ E] вы увидите остров Визе в Карском море. В результатах поиска для В результатах поиска для

  • Организации:

    • По имени (в результатах поиска для [аптека] вы будут видеть все аптеки, расположенные в пределах текущей области карты).
    • По комбинации названия и названия места (в поиске результаты для [аптека, название улицы] вы увидите аптеки в районе указанной улицы).
  • Маршрут общественного транспорта: по типу и номеру (например, «Автобус 39»). Вы увидите линию маршрута и значки движущихся транспортных средств на карте в реальном времени (для получения дополнительной информации см. Общественный транспорт).

Чтобы найти местоположение:
  1. Введите свой запрос в строку поиска.

    По мере его ввода вы ‘ re предлагаются варианты поиска, чтобы сэкономить ваше время при вводе запроса:

  2. На карте найдены отображаются как метки. Их внешний вид зависит от типа места (например, ). Карточка места или список мест одновременно отображаются на выдвижной панели в левой части экрана.

    Чтобы получить информацию об одном или нескольких местах, наведите курсор на метку, и вокруг появится желтая рамка. это место в списке. Верно и обратное: чтобы выделить метку, наведите курсор на соответствующее место в списке:

  3. Чтобы получить подробную информацию о местоположении, щелкните его метку или название в списке, и откроется карточка места: Вход в здание показан красной стрелкой: .

    Список мест не исчезнет при просмотре карточки места: просто нажмите стрелку« назад »в строке поиска, чтобы вернуться к нему.

    Чтобы закрыть карточку места, щелкните в правом верхнем углу карточки.

    Подробнее о карточках мест.

    Примечание..

    Если вы ищете место, вводя географические координаты, убедитесь, что вы ввели их правильно:

    • Координаты следует вводить как [широта, долгота] (через запятую и указывать в десятичных градусах с десятичной точкой между целым числом и дробью). Например: 55.777044,37.555554 .

      Максимальное количество десятичных знаков — семь.

    • По умолчанию система ищет параметр [Северная широта, Восточная долгота].

      Если вы хотите ввести другие значения, вы можете использовать следующие параметры поиска (N — Север, S — Юг, E — Восток, W — Запад):

      S55.777044, W37.555554 или 55.777044S, 37,555554 Вт .



Поиск на карте

Геокодирование

API предоставляет Служба геокодирования , которая может определять географические координаты объекта на основе его имени (прямое геокодирование) или наоборот, находить имя объекта на основе его координат (обратное геокодирование).

Оба типа геокодирования (прямое и обратное) выполняются с помощью функции геокодирования, которой можно передать имя объекта в виде строки или координаты в виде массива.

  var myGeocoder = ymaps.  geocode ("Петрозаводск") ; var myReverseGeocoder = ymaps.  geocode ([61.79,34.36]) ;  

Функция геокодирования является асинхронной, что означает, что данные обмениваются с сервером во время выполнения .

Асинхронное взаимодействие реализовано с помощью обещаний. Вызов функции геокодирования вызывает немедленное создание объекта типа vow.Promise, который выполняет заданные функции, когда с сервера возвращаются либо результаты геокодирования, либо сообщение об ошибке.

Результат geocode передается в функцию обратного вызова как коллекцию GeoObjectCollection. Этот объект реализует интерфейс IGeoObject, то есть его можно разместить на карте.

  var myGeocoder = ymaps.geocode ("Petrozavodsk"); myGeocoder.then (function (res)  {alert ('Координаты объекта:' + res.geoObjects.get (0) .geometry.getCoordinates ());}, function (err) {alert ('Ошибка');});  

Результаты геокодирования передаются функции обратного вызова в виде коллекции GeoObjectCollection (по умолчанию) или в формате JSON. Формат возвращаемых данных устанавливается в параметре json (true/false). Дополнительные сведения о формате возвращаемых данных см. В разделе Поиск на карте.

Поиск может выполняться по всей карте мира или в указанном ограничивающем поле. Однако ограничивающая рамка не может строго ограничивать поиск.. Это означает, что поиск будет выполняться по всей карте, но чем ближе найденный объект находится к центру bbox, тем выше он будет ранжироваться в результатах.

Для обратного геокодирования значение можно указать тип объекта для поиска (например, здание, улица, район, город или станция метро).

Найденные объекты ранжируются в зависимости от их расстояния от заданной точки.

  var myCoords = [55.754952,37.615319]; myMap.geoObjects.add (new ymaps.Placemark (myCoords, {iconContent: 'Где метро?'}, {preset: 'острова #  greenStretchyIcon '})); var myGeocoder = ymaps.geocode (myCoords, { kind:' metro '}); myGeocoder.then (function (res) {var near = res.geoObjects.get  (0); var name = near.properties.get ('имя'); near.properties.set ('iconContent', name); near.options.set ('preset', 'Islands # redStretchyIcon'); myMap.  geoObjects.add (res.geoObjects);}, function (err) {alert ('Error');});  

При поиске улиц, кварталов/регионов или городов/поселков их соответствующие здания не включаются независимо от размера.

  var myGeocoder = ymaps.geocode ('Новый Арбат, 10'); myGeocoder.then (function (res) {var coords = res  .geoObjects.get (0) .geometry.getCoordinates ();  var myGeocoder = ymaps.geocode (координаты, {вид: 'улица'});  myGeocoder.then (function (res) {var street = res.geoObjects.get (0); var name = street.properties.get ('name');//Выводит «улицу Большая Молчановка»,//даже при обратном геокодировании //выдает координаты дома 10 на Новом Арбате. alert (name);});});  

Элемент управления «Поиск на карте»

Элемент управления «Поиск на карте» дает пользователям возможность для поиска нужных объектов на карте. Когда пользователь вводит запрос в поле поиска, API автоматически выполняет поиск, а затем отображает результаты на карте. Пользователи могут искать объекты по адресу или по географическим координатам. Кроме того, этот элемент управления можно использовать для поиска предприятий.

Реализован элемент управления «Поиск по карте» классом control.SearchControl. В приведенном ниже примере показано, как добавить этот элемент управления на карту:

 //Создание элемента управления «Поиск на карте». Var searchControl = new ymaps.control.SearchControl ({options  : {//Поиск будет выполняться по топонимам и компаниям. Provider: 'yandex # search'}});//Добавление элемента управления на карту .myMap.controls.add (searchControl);  
Примечание. Чтобы сделать возможным поиск предприятий, а также топонимов, передайте параметр provider: 'yandex # search' классу control.SearchControl .

Чтобы программно выполнить поиск некоторого объекта, вызовите функцию search (). Поиск объектов будет выполняться в пределах текущего ограничивающего прямоугольника.

searchControl.search('Starbucks');

Класс control.SearchControl предоставляет следующие методы для работы с результатами поиска:

getResult

Метод который возвращает объект, найденный по указанному индексу. Метод работает асинхронно. Он возвращает объект Promise, который разрешен найденным объектом или отклонен с ошибкой.

  var searchControl = new ymaps.control.SearchControl ({options: {//Поиск  будет выполняться для топонимов и предприятий. provider: 'yandex # search'}}); var result = searchControl.getResult (0); result.then (function (res) {console.log ("Results" + res);}  , function (err) {console.log ("Ошибка");});  

getResultsArray

Возвращает массив, содержащий все текущие результаты.

  var searchControl = new ymaps.control.SearchControl (  {options: {//Поиск будет выполняться по топонимам и компаниям provider: 'yandex # search'}});//Подписка на событие выбора результатов поиска. searchControl.events.add ('resultselect', function (e)  {//Получение массива результатов. Var results = searchControl.  getResultsArray () ,//Индекс выбранного объекта. Selected = e.get ('index  '),//Получение координат выбранного объекта.  point = results [selected] .geometry.getCoordinates ();})  

getResponseMetaData

Возвращает метаданные географического поиска.

  var searchControl = new ymaps.control.SearchControl ({options: {//Поиск будет выполняться по топонимам и компаниям. Provider: 'yandex # search'}}); searchControl.search ('Starbucks'); searchControl.events.add ('resultselect', function (e) {var index = e  .get ('index'), results = searchControl.getResponseMetaData (); console.log (results.SearchRequest.request);//Starbucks console.log (results.SearchRequest.results);//20})   

getResultsCount

Возвращает количество найдены результаты.

  var searchControl = new ymaps.control.SearchControl ({options: {//Поиск будет выполняться по топонимам и компаниям. provider: 'yandex # search'  }});//Подписка на событие получения поиска  результаты из server.searchControl.events. add ('load', function (e) {var count = searchControl.getResultsCount (); console.log ("Количество найденных результатов поиска:" + count);})  

getSelectedIndex

Возвращает индекс выбранного элемента.

  var searchControl = new ymaps.control.SearchControl ({options: {//Поиск будет выполняться по топонимам и компаниям. provider: 'yandex # search'}});//Подписка  к событию получения результатов поиска с сервера. searchControl.events.add ('resultselect', function (e) {var index = searchControl.getSelectedIndex (e); console.log ("Индекс выбранного элемента:" + index  );})  

showResult

Отображает результат на карте.

 //Мы хотим всегда показывать первый результат//независимо от количества объектов,//найденных на карте (  1 или более) .var searchControl = new ymaps.control.SearchControl ({options: {n  oSelect: true}}); searchControl.events.add ('load', function (event) {//Проверяем, что это событие не просто завершает загрузку результатов//и что по запросу найден хотя бы один результат.  если (! event.get ('пропустить') && searchControl.getResultsCount ()) {searchControl.showResult (0);  }});  

hideResult

Скрывает результат, показанный на карте.

 //Если мы отобразили результат на карте с помощью control.SearchControl.showResult//или он был показан автоматически, когда  поиска, мы можем скрыть его,//например, нажав кнопку. var myButton = new ymaps.control.Button ("Скрыть результаты"); myButton.events.add ('click', function () {searchControl.hideResult  ();}, это); myMap.controls.add (myButton, {selectOnClick: false});  

Все доступные методы перечислены в справочном руководстве.

Вы можете посмотреть пример использования элемента управления .SearchControl в песочнице.

Оцените статью
clickpad.ru
Добавить комментарий