我在JavaScript应用程序中使用Mapbox方向,以成功地将几何数据和路由数据(在两对经/长对之间)返回给浏览器。我试图最终显示连接它们的地图上的路线多段线,但即使数据在那里,我也无法从结果对象访问路线数据。Mapbox方向:如何从结果中提取方向数据
这里是请求代码:
L.mapbox.accessToken ='pk.eyJ1Ij...9Uk_Z8JqMOQ';
L.mapbox.id = 'tom...ibb';
var startLatLng = L.latLng(38.935899, -77.022353);
var endLatLng = L.latLng(38.90, -77.10);
var directions = L.mapbox.directions();
directions.setOrigin(startLatLng);
directions.setDestination(endLatLng);
var route = directions.query();
console.dir(route);
注意console.dir线。这是我在控制台中看到的路线:
_initHooksCalled:true
_query:null
_requests:Array[0]
_waypoints:Array[0]
destination:Object
directions:Object
options:Object
origin:Object
这是我在控制台中看到的route.destination,route.options和route.origin对象:
console.log(route.destination);
=> Object {type: "Feature", geometry: Object, properties:...
console.log(route.origin);
=> Object {type: "Feature", geometry: Object, properties:...
console.log(route.options);
=> Object {units: "imperial"}
但是,当我试图看到route.directions,它是未定义的。
console.log(route.directions);
=> undefined
当“打开”控制台整个路由对象(通过console.dir)我看到了方向的数据我要找:访问时
directions:Object
destination:Object
origin:Object
routes:Array[2]
0:Object
distance:10460
duration:862
geometry:Object
steps:Array[26]
...
为什么会变成这样“不确定”它与route.directions,特别是当我可以看到其他“子对象”(例如route.options)使用相同的点语法的内容?
最后,当我 “字符串” 路由对象var routeJson = JSON.stringify(route);
我看到这一点:
{"options":{
"units":"imperial"
},
"_waypoints":[],
"_initHooksCalled":true,
"origin":{
"type":"Feature",
"geometry":{
"type":"Point",
"coordinates":[-77.022353,38.935899]
},
"properties":{"query":[-77.022353,38.935899]}
},
"destination":{
"type":"Feature",
"geometry":{
"type":"Point",
"coordinates":[-77.1,38.9]},
"properties":{"query":[-77.1,38.9]}
},
"_requests":[],
"_query":{}}
同样,没有方向的内容!任何想法将不胜感激!
也许如果你传递'instructions'和/或'geometry'参数,这些信息将被返回?该文档有点模糊...... –