Поэтому я пишу приложение, которое позволяет пользователю-администратору создавать путешествие по определенному месту с разными точками остановки.
Для отображения карты, добавления маркеров, местоположения flyTo и т. д. я использую Mapbox GL
.
Я использовал cURL
реализацию Mapbox
API, чтобы прокладывать маршруты и рисовать линию на карте.
Итак, в качестве примера вызова 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
, чего я не хочу. Мне нужно только нарисовать маршрут и не позволять публичному пользователю изменять его.
Любые советы?