【发布时间】:2016-03-26 13:45:01
【问题描述】:
我在 javascript 应用程序中使用 Mapbox Directions 成功地将几何和路由数据(在两个纬度/经度对之间)返回到浏览器。我试图显示 - 最终 - 在地图上连接它们的路线折线,但即使数据存在,我也无法从结果对象访问方向数据。
这里是请求代码:
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参数,那些信息位会被返回?文档有点模糊......
标签: javascript mapbox directions