计算地点之间的行驶距离

时间:2018-12-28 16:51:19

标签: javascript php html openstreetmap osrm

我设法通过Maptiler API(OSMNames)为表单输入提供了自动完成功能(因为我发现Google Maps API更加令人困惑)。

所以这是一个实际的问题,我想借助我创建的两个输入中的自动完成功能,获得我输入的两个地方之间的行车距离。

我正在尝试使用OSRM (Open Source Routing 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获取地点的坐标。

当前,当用户单击列表上的建议位置之一时,name项仅被写入input框中。相反,我想写GPS坐标,而不是name,以便我可以用它们发送HTTP请求(下一步)。

单击时显示的内容是

What is being written when I click

下一步我需要什么:

What I need for the next step

顺便说一句,在其他相关问题中,我看到了一些邀请使用“ Nominatim”的答案。正如我所说,我目前使用的是“ OSMNames”,有什么区别吗?我应该更改我的地理编码器吗?

然后,我还需要在HTTP GET请求中获取这些坐标,如代码所示。

最后,我想从OSRM response中获取距离中的一项。否则,我将得到整个答复。

由于我是一名仍在该领域入门的学生,所以我实际上不知道如何执行任何所述步骤。

如果您能在这里帮助我,那将是很好的。

我尽量避免将所有代码放在此处,因为我在阅读时会感到困惑,但是如果您出于任何原因需要其余代码,请告诉我!

感谢您的帮助! :)

0 个答案:

没有答案