Итак, я пишу приложение, которое позволяет пользователю администратора создавать путешествие по определенному месту с различными точками остановки.Mapbox gl направления API
Для отображения карты, добавления маркеров, местоположения 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
, которого я не хочу. Мне нужно только нарисовать маршрут и не разрешать публичному пользователю изменять его.
Все советы?
гм, интересный подход, хотя для меня это звучит как взломать. То, что я также хочу, - это расширяемость для создания таких маршрутов, как из A-> B-> C-> D, следуя этой схеме. Но мне все равно нравится твой путь! –
@AndrejsGubars: Я обновил ответ выше с некоторыми примечаниями о добавлении путевых точек, как вы просили об этом. Также добавлены некоторые замечания по созданию решения. Надеюсь, это поможет. –
Да, место на! Это именно то, что я хотел сделать. Наверное, я был слишком амбициозен и ожидал чего-то, что делает целая библиотека :) Но спасибо за ваши советы! –