【问题标题】:How to get array of latitude and longitude array from google maps direction api如何从谷歌地图方向api获取纬度和经度数组
【发布时间】:2018-06-14 16:55:02
【问题描述】:

我正在创建跟踪软件。 Android 设备正在发送其位置,现在我必须检查该位置是否在管理员设置的方向内。

基本上,如果员工发送的位置(纬度,经度)不是在他的路线中,管理员将在网站上收到通知。我需要有关坎帕里森的帮助。只是我想知道员工是否偏离了路线。有可能做到吗?请回答我将不胜感激。

<script>
  function initMap() {
    var directionsService = new google.maps.DirectionsService;
    var directionsDisplay = new google.maps.DirectionsRenderer;
    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 7,
      center: {lat: 41.85, lng: -87.65}
    });
    directionsDisplay.setMap(map);

    var onChangeHandler = function() {
      calculateAndDisplayRoute(directionsService, directionsDisplay);
    };
    document.getElementById('start').addEventListener('change', onChangeHandler);
    document.getElementById('end').addEventListener('change', onChangeHandler);
  }

  function calculateAndDisplayRoute(directionsService, directionsDisplay) {
    directionsService.route({
      origin: document.getElementById('start').value,
      destination: document.getElementById('end').value,
      travelMode: 'DRIVING'
    }, function(response, status) {
      if (status === 'OK') {
          console.log(response);
        directionsDisplay.setDirections(response);
      } else {
        window.alert('Directions request failed due to ' + status);
      }
    });
  }
</script>

我可以从变量响应中提取纬度和经度数组吗?如果有更好的方法请分享。

【问题讨论】:

  • “检查该位置是否在该方向内” 这绝对不清楚。你想和什么比较?也就是说,我看不到任何从您发布的代码中的响应中提取坐标的尝试。
  • 我还没有比较它。这是我的场景,管理员在网站上为员工设置了从 A 点到 B 点的路线(行车方向)。我想检查android设备发送的经纬度是否在他/她的路线上。
  • 你能得到 Lats 和 lons 的数组吗?我正在寻找相同的

标签: javascript php html google-maps


【解决方案1】:

你的问题很广泛,因此我的回答也很广泛,但在评论中写得太多了......

路线服务返回的路线不是点或坐标的集合。它是腿和台阶的集合,具有起点和终点(以及加密的折线)。 See here for details.

附带说明,编码的折线也可以解码,请参阅here 了解更多信息。

您可能从员工设备获得的坐标可能不是 100% 准确的,因此可能不会完全落在路线路径上。所以你需要一些公差计算。

您可能需要检查 Roads API,更具体地说是 Snap to roads 和/或 Nearest 服务。

或者,几何库(您需要通过 API 调用加载)还有一个名为 isLocationOnEdge 的方法,您可以使用它来确定一个点是否落在折线上或附近,基于自定义度数公差。

希望这可以帮助您入门!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多