Мне удалось получить функцию автозаполнения для ввода формы с помощью API Maptiler (OSMNames) (поскольку я нахожу API Карт Google еще более запутанным).
Итак, возникает актуальная проблема, я хотел бы получить проезжая расстояние между двумя местами, которые я ввел с помощью функций автозаполнения в двух созданных мной входах.
Я пытаюсь сделать это с помощью OSRM (Open SourceRouting Machine) API
Вот мои текущие сценарии:
<!--AUTOCOMPLETE-->
<script>
var autocomplete = new kt.OsmNamesAutocomplete(
'search1', 'https://geocoder.tilehosting.com/', '#My_Maptiler_API_Code');
</script>
<script>
var autocomplete = new kt.OsmNamesAutocomplete(
'search2', 'https://geocoder.tilehosting.com/', '#My_Maptiler_API_Code');
</script>
<!--GET INFO-->
<script>
function loadXMLDoc() {
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
document.getElementById("result").innerHTML =
this.responseText;
}
if (this.readyState == 4 && this.status == 429) {
document.getElementById("result").innerHTML =
"Servidor sobrecargado, inténtelo más tarde."
}
};
xhttp.open("GET", "http://router.project-osrm.org/table/v1/driving/{longitude1},{latitude1};{longitude2},{latitude2}", true);
xhttp.send();
}
</script>
Сначала , мне нужно получить координатыместа из inputs
с помощью функции autocomplete
.
В настоящее время, когда пользователь нажимает на одно из предложенных мест в списке, в * 1023 записывается только элемент name
.* коробка.Вместо этого я хотел бы записать координаты GPS, а не name
, чтобы я мог использовать их для отправки HTTP-запроса (следующий шаг).
Что пишется при нажатии:
Что мне нужно для следующего шага:
Кстати,Я видел некоторые ответы на другие связанные вопросы, предлагающие использовать « Nominatim ».Как я уже сказал, я сейчас использую " OSMNames ", есть ли разница?Должен ли я изменить свой геокодер?
Затем мне также необходимо получить эти координаты в HTTP-запросе GET, как показано в коде.
Инаконец, , я бы хотел получить только один из пунктов ответа OSRM , расстояние.Поскольку в противном случае я просто получил бы полный ответ.
Я буквально не знаю, как выполнить какой-либо из указанных шагов, так как я студент, который еще только начинает изучать эту область.
Если бы вы только могли протянуть мне руку помощи, это было бы замечательно.
Я стараюсь избегать размещения всего кода здесь, потому что я нахожу его непонятным при чтении, но остальная часть кода вам понадобится по любой причине,пожалуйста, дайте мне знать!
Спасибо за вашу помощь!:)