Google地图绘图工具:使用Directions API

时间:2015-06-08 15:54:47

标签: javascript google-maps google-maps-api-3

这是我提出的另一个问题的后续问题,没有得到任何答案。我做了更多的研究,并想出了我需要做的事情,但不幸的是我无法弄清楚如何去做。

我有一张Google的绘图工具设置地图。用户需要能够绘制多边形以定义交付区域。将每个新点添加到多边形(完成之前)后,该线应自动跟随地图上的道路,以便从上一个点到新点。结果应该允许延迟绘制的多边形与道路完全匹配,而不需要付出额外的努力。

Here is my in-progress Codepen

我之前使用Roads API snap-to-road 功能,但发现它不够准确。我需要从很远的缩放级别绘制路径,并且仍然可以捕捉到他们可以找到的任何道路。

这是最相关的函数,它应该在每个新点的创建上运行(现在它附加到polygoncomplete事件,因为我还没有想到它):

function runSnapToRoad(poly, path, color) {
  console.log('Run snap to road');

  var pathValues = [];
  for (var i = 0; i < path.getLength(); i++) {
    pathValues.push(path.getAt(i).toUrlValue());
  }

  service.route({
    origin: path.getAt(path.getLength() - 1),
    destination: pathValues.join('|'),
    travelMode: google.maps.DirectionsTravelMode.DRIVING
  }, function(result, status) {
    if (status == google.maps.DirectionsStatus.OK) {
      for (var i = 0, len = result.routes[0].overview_path.length;
          i < len; i++) {
        path.push(result.routes[0].overview_path[i]);
      }
    }
  });
}

简而言之,我的问题如下:

如何获取先前添加的点和最近添加的不完整多边形点,并将它们用作路线服务的“原点”和“目的地”?

0 个答案:

没有答案