javascript - 计算地点之间的行驶距离
问题描述
我设法使用 Maptiler API (OSMNames) 为表单输入提供了一个自动完成功能(因为我发现 Google Maps API 更令人困惑)。
因此,实际问题来了,我想借助我创建的两个输入中的自动完成功能来获取我输入的两个地方之间的行驶距离。
我正在尝试使用OSRM(开源路由机) 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
函数从 中获取地点的坐标。
目前,当用户单击列表中的建议位置之一时,只有该name
项目被写入input
框中。相反,我想获取 GPS 坐标,而不是name
,以便我可以使用它们发送 HTTP 请求(下一步)。
单击时正在写入的内容:
我下一步需要什么:
顺便说一句,我在其他相关问题中看到了一些邀请使用“ Nominatim ”的答案。正如我所说,我目前正在使用“ OSMNames ”,有什么区别吗?我应该更改我的地理编码器吗?
然后,我还需要在 HTTP GET 请求中获取这些坐标,如代码所示。
最后,我想从OSRM 响应中获取其中一项,即距离。否则,我只会得到整个回应。
我实际上不知道如何执行任何所述步骤,因为我是一名仍在该领域入门的学生。
如果你能在这里帮我一把,那就太好了。
我尽量避免将所有代码放在这里,因为我在阅读时发现它令人困惑,但是如果您出于任何原因需要其余代码,请告诉我!
谢谢你的帮助!:)
解决方案
推荐阅读
- java - 如何从外部条码阅读器直接输入?
- python - 为什么这个 Python 程序没有给出理想的结果?
- javascript - Html Form提交EventListener不起作用,不知道为什么?
- function - powershell函数参数如何使用
- r - 无法使用 plot3d() 在同一图中共同可视化对象
- java - 如何限制kafka消费者的事件消费速度,使服务不受影响
- python - Python:合并数据框的几列而没有重复的数据
- r - 检查哪个值虚拟变量 R 分配给您的分类变量
- ruby-on-rails - 为什么你可以在铁路参数的 require 的返回值上调用 permit?
- xslt - 使用 XLST 1.0 进行多项更改(大写元素首字母、顺序元素、聚合/组合元素)