Версия:
Популярные примеры
Карта
Геообъекты
Балун и хинт
Элементы управления
Активные области
Кластеризация
GeoQuery
Поведения и события
Поиск по карте
Пробки
Местоположение пользователя
Маршрутизация
YMapsML
GeoXML
ObjectManager
Модульная система
Панорамы
Внешние модули

Поиск ближайшего объекта

Сохранить как файлыЭкспорт на JSFiddle

С помощью объекта GeoQueryResult можно создавать объекты на карте из их JSON-описания.

В данном примере рассматривается, как найти объекты выборки, ближайшие к произвольному объекту на карте (например к метро). А также как находить объекты, ближайшие к месту клика.

\r\n\r\n\r\n","find_closest_object.js":"ymaps.ready(init);\r\n\r\nfunction init() {\r\n var myMap = new ymaps.Map(\"map\", {\r\n center: [55.73, 37.75],\r\n zoom: 12\r\n }, {\r\n searchControlProvider: 'yandex#search'\r\n }),\r\n cafe, metro;\r\n \r\n function findClosestObjects () {\r\n // Найдем в выборке кафе, ближайшее к найденной станции метро,\r\n // и откроем его балун.\r\n cafe.getClosestTo(metro.get(0)).balloon.open();\r\n \r\n // Будем открывать балун кафе, который ближе всего к месту клика\r\n myMap.events.add('click', function (event) {\r\n cafe.getClosestTo(event.get('coords')).balloon.open();\r\n });\r\n }\r\n \r\n // Описания кафе можно хранить в формате JSON, а потом генерировать\r\n // из описания геообъекты с помощью ymaps.geoQuery.\r\n cafe = ymaps.geoQuery({\r\n type: 'FeatureCollection',\r\n features: [{\r\n type: 'Feature',\r\n properties: {\r\n balloonContent: 'Кофейня \"Дарт Вейдер\" - у нас есть печеньки!'\r\n },\r\n geometry: {\r\n type: 'Point',\r\n coordinates: [55.724166, 37.545849]\r\n }\r\n }, {\r\n type: 'Feature',\r\n properties: {\r\n balloonContent: 'Кафе \"Горлум\" - пирожные прелесть.'\r\n },\r\n geometry: {\r\n type: 'Point',\r\n coordinates: [55.717495, 37.567886]\r\n }\r\n }, {\r\n type: 'Feature',\r\n properties: {\r\n balloonContent: 'Кафе \"Кирпич\" - крепкий кофе для крепких парней.'\r\n },\r\n geometry: {\r\n type: 'Point',\r\n coordinates: [55.7210180,37.631057]\r\n }\r\n }\r\n ]\r\n // Сразу добавим точки на карту.\r\n }).addToMap(myMap);\r\n\r\n // С помощью обратного геокодирования найдем метро \"Кропоткинская\".\r\n metro = ymaps.geoQuery(ymaps.geocode([55.744828, 37.603423], {kind: 'metro'}))\r\n // Нужно дождаться ответа от сервера и только потом обрабатывать полученные результаты.\r\n .then(findClosestObjects);\r\n}\r\n"},"resources":[],"directory":"https://sandbox.api.maps.yandex.net/examples/ru/2.1/find_closest_object/"}
Пишете на JavaScript? У нас есть вакансии
Sun Sep 18 2022 20:10:14 GMT+0300 (Moscow Standard Time)