Как получить широту / долготу искомой позиции с помощью поиска листовок? - PullRequest
0 голосов
/ 10 июля 2019

Я использую поиск листовок, чтобы локализовать меня без каких-либо автоматических методов локализации. Мне нужно поработать с латом, длинным из найденного места после нажатия на какой-нибудь фильтр.

Я прочитал это и попытался использовать это: Получение и отображение длинного адреса с помощью функции Leaflet Control Search

Мой звонок в функции обмена фильтра:

var loc = searchControl._getLocation(this._input.value);
console.log("Latitude: " + loc.lat);
console.log("Longitude: " + loc.lng);

Но получил эту ошибку: Uncaught TypeError: Cannot read property 'value' of undefined

Полагаю, я вызываю функцию _getLocation поздно, searchControl очищается, верно? Так, когда / как я мог получить последние данные из него? Есть ли какой-нибудь обработчик события "искомое место найдено"?

1 Ответ

1 голос
/ 10 июля 2019

может быть, как это?


searchControl.on('search:locationfound', function(e) {
    var locLat = e.latlng.lat;
    var locLng = e.latlng.lng;
    console.log(locLat+', '+locLng);
});

Я предполагаю, что метод _getLocation() является асинхронным, например, ваши операторы console.log() пытаются прочитать значения, прежде чем они существуют.

, но если я посмотрюв код Я сомневаюсь, что это будет работать, вызывая _getLocation() напрямую, так как событие вызывается в _handleSubmit(), который сам вызывает метод _getLocation(), а затем запускает это событие ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...