Почему ymaps.geocode возвращает самый точный результат вторым?
Есть скрипт, в котором я запрашиваю координаты точки по адресу.
document.addEventListener('DOMContentLoaded', function() {
ymaps.ready(initYa);
function initYa() {
var myMap = new ymaps.Map('YaMap', {
center: [55.751574, 37.573856],
zoom: 9,
controls: []
});
ymaps.geocode('Россия, Московская область, Пушкино, Набережная улица, 16').then(function(res) {
console.log('Первый результат - '+res.geoObjects.get(0).properties.get('text'));
console.log('Второй результат - '+res.geoObjects.get(1).properties.get('text'));
});
}
});
<html>
<head>
<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&apikey=c161ad77-2e7b-4dc0-b5fc-a5bd6b1e1b86" type="text/javascript"></script>
<style>
#YaMap {
width: 100%;
height: auto;
min-height: 300px;
}
</style>
</head>
<body>
<div id="YaMap"></div>
</body>
</html>
Однако первым возвращается результат с адресом: "Россия, Московская область, Пушкино, Набережная улица, 8", a требуемый результат возвращается вторым. Почему? Ведь по идее, первым должен быть результат, наиболее близкий к запросу.
results: 1 ничего не меняет. Всё работает, отдаётся один результат, но опять же Набережная 8.
Ответы (1 шт):
Не совсем понятен код, так как в карте записываете координаты, а у геокодера запрашиваете адрес. Вы полученный адрес запрашиваете у геокодера? Или вводимые пользователем - данные? Не до конца понятна реализация составляющих...
Но в любом случае, если Вы запрашивает у геокодера адрес, которые ввел пользователь - Вам необходимо предоставить выбор для пользователя - какой адрес будет являться более подходящим к запросу пользователя.
Есть механизм suggest - подойдет ли он для реализации задачи?
Например: https://yandex.ru/dev/maps/jsbox/2.1/input_validation или https://yandex.ru/dev/maps/jsbox/2.1/suggest, проверьте адрес, который вводит пользователь, и отправляйте его в геокодер, получите точные координаты адреса.
Повторюсь - задача не совсем понятна, надеюсь что чем то помог )