驾驶/行走时更新Mapbox方向指示+添加方向指示符

时间:2018-08-22 16:31:30

标签: geolocation mapbox directions

我正在构建一个Web应用程序,以查看附近的特色步行路线。

  1. 用户打开应用程序并查看所有不同的路线。
  2. 应用获取当前位置并检查附近的大部分路线。
  3. 应用程序请求到我其中一条特色路线的路线。

用户可以使用该应用从我附近的特色路线导航至标记。

我正在使用路线服务,该服务可以给我这样的步行说明清单:

mapbox walking instructions

我现在正在尝试将路线与当前位置合并。这样做的最佳选择是什么?我想根据当前位置更新说明,例如,如果我朝东走在Amstelkade上,我想在顶部看到下一条说明。我提出了以下建议:

将GeolocateControl添加到Mapbox

let geolocate = new mapboxgl.GeolocateControl({ positionOptions: { enableHighAccuracy: true }, trackUserLocation: true }) map.addControl(geolocate);

在地理位置更改事件上放置一个侦听器,并更新起始位置(来源)以获取最新的指示。

geolocate.on('geolocate', function(location) {
    currentLocation = location;
    setOrigin(location);
    setDestination(location);
});

function setOrigin(location){
  if(Object.keys(directions.getOrigin()).length === 0){
     directions.setOrigin([location.coords.longitude, location.coords.latitude]);
  }
}

如果这是一个适当的解决方案,我会迷茫,因为这样我发出了很多请求(尽管可以在geolocate事件上放置一个反跳器)。有没有更好的方法来解决此问题并使它更加用户友好?

问题2:是否可以像Google一样向Mapbox添加方向指示器(您要驶向的蓝色光束)? gmaps

谢谢!

0 个答案:

没有答案