所以我正在编写一个应用程序,它允许管理员用户创建一个围绕具有不同停靠点的特定位置的旅程。
为了显示地图、添加标记、flyTo 位置等,我正在使用Mapbox GL
.
我正在使用API 的cURL
实现Mapbox
来获取行车路线,然后在地图上画一条线
因此,作为一个cURL
呼叫的例子,我收到了一个代表我的方向的坐标列表。
当我尝试在地图上连接这些点时,问题就来了。
作为一个HTML
例子JS
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<title></title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
<script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.18.0/mapbox-gl.js'></script>
<link href='https://api.tiles.mapbox.com/mapbox-gl-js/v0.18.0/mapbox-gl.css' rel='stylesheet' />
<style>
body { margin:0; padding:0; }
#map { position:absolute; top:0; bottom:0; width:100%; }
</style>
</head>
<body>
<div id='map'></div>
<script>
mapboxgl.accessToken = '<ACCESS TOKEN>';
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v8',
center: [-122.486052, 37.830348],
zoom: 15
});
map.on('load', function () {
map.addSource("route", {
"type": "geojson",
"data": {
"type": "Feature",
"properties": {},
"geometry": {
"type": "LineString",
"coordinates": [
[-155.088899,19.722942],[-155.08565,19.72472],[-155.084661,19.723701],[-155.083569,19.723139],[-155.079557,19.722262],[-155.074227,19.721938],[-155.069939,19.722545],[-155.070061,19.721225],[-155.07007,19.711726]
]
}
}
});
map.addLayer({
"id": "route",
"type": "line",
"source": "route",
"layout": {
"line-join": "round",
"line-cap": "round"
},
"paint": {
"line-color": "#888",
"line-width": 8
}
});
});
</script>
</body>
</html>
您可以看到一组坐标,它们将被连接以绘制一条线。我想知道是否有办法连接这些点,以便线路仅沿着道路行驶(用于驾驶)?
我知道这是对我的问题的非常笼统的解释,但我希望它是可以理解的。
我一直在尝试做一些魔术,Mapbox Gl Directions API
但没有运气,因为我必须添加一个contoller
我不想添加的东西。我只需要画一条路线,不允许公共用户修改它。
有什么建议吗?