我想使用mapbox作为mapView的驱动方向API。我想使用此api为我提供已定义的两个位置之间的路由。假设我们知道位置,不,我们应该画出它们之间的路线。此外,用户应该能够改变的位置(市场/销在地图上),以任何他们想要的位置,因此mapbox应绘制相应的适当路线。
这是可以做的事情,与mapbox驾驶方向,但我也希望能够获得位置,例如,当用户在输入框中键入或使用市场来定位起点和目的地,在后端,我希望能够跟踪这些位置和记录它们。
Javascript Mapbox PHP
<div id='map'></div>
<div id='inputs'></div>
<div id='errors'></div>
<!--
<div id='directions'>
<div id='routes'></div>
<div id='instructions'></div>
</div>
-->
<script>
L.mapbox.accessToken = 'pk.eyJ1IjoiZmFyc2hpZGFsYXZpIiwiYSI6ImNpZjNmNTRrYzQ0b2xzNWx1bXN5MnlmdjUifQ.IvZZfdiPe4rxQNolE88fhg';
var start = {lat: '<?php echo $__logbook->__route[0]->latitude ?>', lng: '<?php echo $__logbook->__route[0]->longitude ?>'};
var finish = {lat: '<?php echo end($__logbook->__route)->latitude ?>', lng: '<?php echo end($__logbook->__route)->longitude ?>'};
var map = L.mapbox.map('map', 'mapbox.streets', {zoomControl: false}).setView([start.lat, start.lng], 6);
map.attributionControl.setPosition('bottomleft');
var directions = L.mapbox.directions();
directions.setOrigin(L.latLng(start.lat, start.lng));
directions.setDestination(L.latLng(finish.lat, finish.lng));
directions.query();
var directionsLayer = L.mapbox.directions.layer(directions).addTo(map);
var directionsInputControl = L.mapbox.directions.inputControl('inputs', directions).addTo(map);
var directionsErrorsControl = L.mapbox.directions.errorsControl('errors', directions).addTo(map);
var directionsRoutesControl = L.mapbox.directions.routesControl('routes', directions).addTo(map);
var directionsInstructionsControl = L.mapbox.directions.instructionsControl('instructions', directions).addTo(map);
console.log(L.mapbox.directions.inputControl);
$('#btn').click(function() {
var obj = $('#live');
obj.html('I just changed!!!');
obj.trigger('contentchanged');
});
$('#inputs').bind('contentchanged', function(e) {
console.log(L.mapbox.directions.inputControl);
});
</script>
发布于 2016-01-14 09:35:52
我找到了解决方案,我把directions.js加载到我的本地库中,做了很多修改,实际上我把它和我的角度和作用域(部署)合并在一起,它工作得很棒。我很乐意公开我的一些代码,给我留下一个下午谢谢
https://stackoverflow.com/questions/34148483
复制相似问题