- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在解析来自 MapQuest API 的 JSON 响应。我需要“演习”下“腿部”节点的所有“叙述”(腿部->演习->获取所有叙述),但我无法弄清楚。
我可以获得大部分值,如下所示:
$(function(){
var mq = jQuery.parseJSON(jsonResponse);
$("#fuel").html(mq.renderMatrixResults[0].route.fuelUsed);
$("#rtime").html(mq.renderMatrixResults[0].route.realTime);
});
JSON 响应的一部分:
{
"renderMatrixResults": [
{
"route": {
"hasTollRoad": true,
"computedWaypoints": [
],
"fuelUsed": 2.24,
"hasUnpaved": false,
"hasHighway": true,
"realTime": 5556,
"boundingBox": {
"ul": {
"lng": -74.240074,
"lat": 40.662548
},
"lr": {
"lng": -74.132072,
"lat": 40.573451
}
},
"distance": 38.998,
"time": 5523,
"hasSeasonalClosure": false,
"locations": [
{
"latLng": {
"lng": -74.18862,
"lat": 40.609712
},
"adminArea4": "Brooklyn",
"adminArea5Type": "City",
"adminArea4Type": "County",
"adminArea5": "Brooklyn",
"street": "1234 Test Lane",
"adminArea1": "US",
"adminArea3": "NY",
"type": "s",
"displayLatLng": {
"lng": -74.188621,
"lat": 40.60971
},
"linkId": 33589148,
"postalCode": "10001-6992",
"sideOfStreet": "L",
"dragPoint": false,
"adminArea1Type": "Country",
"geocodeQuality": "POINT",
"geocodeQualityCode": "P1AAA",
"adminArea3Type": "State"
},
{
"latLng": {
"lng": -74.194858,
"lat": 40.601623
},
"adminArea4": "Brooklyn",
"adminArea5Type": "City",
"adminArea4Type": "County",
"adminArea5": "Brooklyn",
"street": "5678 Example Street",
"adminArea1": "US",
"adminArea3": "NY",
"type": "s",
"displayLatLng": {
"lng": -74.194854,
"lat": 40.601623
},
"linkId": 33361764,
"postalCode": "10001-5483",
"sideOfStreet": "R",
"dragPoint": false,
"adminArea1Type": "Country",
"geocodeQuality": "POINT",
"geocodeQualityCode": "P1AAA",
"adminArea3Type": "State"
}
],
"hasCountryCross": false,
"legs": [
{
"hasTollRoad": false,
"index": 0,
"roadGradeStrategy": [
[
]
],
"hasHighway": false,
"hasUnpaved": false,
"distance": 0.882,
"time": 145,
"origIndex": 1,
"hasSeasonalClosure": false,
"origNarrative": "Go west on some road",
"hasCountryCross": false,
"formattedTime": "00:02:25",
"destNarrative": "Proceed to 789 GIRAFFE STREET",
"destIndex": 1,
"maneuvers": [
{
"signs": [
],
"index": 0,
"maneuverNotes": [
],
"direction": 4,
"narrative": "Start out going south on Elephant Avenue.",
"iconUrl": "https://content.mapquest.com/mqsite/turnsigns/icon-dirs-start_sm.gif",
"distance": 0.57,
"time": 79,
"linkIds": [
],
"streets": [
"Elephant Avenue"
],
"attributes": 0,
"transportMode": "AUTO",
"formattedTime": "00:01:19",
"directionName": "South",
"mapUrl": "https://www.mapquestapi.com/staticmap/v4/getmap?key=Fmjtd|luur20uanq,b0=o5-9ayxdw&type=map&size=225,160&pois=purple-1,40.60971,-74.188621,0,0|purple-2,40.602351999999996,-74.189582,0,0|�er=40.606031,-74.18910149999999&zoom=10&rand=-1416511403&session=53c1fb45-030d-0004-02b7-16b5-00163e4c0d3f",
"startPoint": {
"lng": -74.188621,
"lat": 40.60971
},
"turnType": 2
},
{
"signs": [
],
"index": 1,
"maneuverNotes": [
],
"direction": 7,
"narrative": "Turn right onto Tiger Blvd.",
"iconUrl": "https://content.mapquest.com/mqsite/turnsigns/rs_right_sm.gif",
"distance": 0.269,
"time": 56,
"linkIds": [
],
"streets": [
"Tiger Blvd"
],
"attributes": 0,
"transportMode": "AUTO",
"formattedTime": "00:00:56",
"directionName": "West",
"mapUrl": "https://www.mapquestapi.com/staticmap/v4/getmap?key=Fmjtd|luur20uanq,b0=o5-9ayxdw&type=map&size=225,160&pois=purple-2,40.602351999999996,-74.189582,0,0|purple-3,40.601127,-74.194366,0,0|�er=40.601739499999994,-74.191974&zoom=12&rand=-1416511403&session=53c1fb45-030d-0004-02b7-16b5-00163e4c0d3f",
"startPoint": {
"lng": -74.189582,
"lat": 40.602352
},
"turnType": 2
}
最佳答案
还没有测试过,但这是想法。您可以使用一个函数来遍历对象树并收集路径指定的项目。
function getPath(path, obj) {
var name, value;
path = path instanceof Array ? path: path.split('.'); //convert path to array
name = path.shift(); //get the first name
value = obj[name]; //extract value
if(!path.length || value == null) { //last name or value is null or undefined
return value;
}
if(value instanceof Array) { //if value is array - concat
return [].concat.apply([], value.map(function(item){
return getPath(path.slice(0), item);
}));
}
return getPath(path, value); //else go deeper
}
用法:
var narratives
= getPath('renderMatrixResults.route.legs.maneuvers.narrative', mq);
我相信这条路是正确的。
关于javascript - 从 MapQuest API 迭代 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24725976/
截至今天 2016-07-11,MapQuest 已停止直接访问其图块。它们似乎只支持 Leaflet、iOS 和 Android SDK。知道如何让 Openlayers 再次与 MapQuest
我需要能够注册事件回调来标记拖动事件,以便我可以运行反向查找并获取dragend末尾的地址。另外,在拖动时,我需要在调试窗口中将“拖动”显示为文本。在 google map api 中这是可能的,但在
我尝试使用 MapQuest map 库来显示我的位置,我看到示例中已设置 android:apiKey="aa" 应用程序可以在我的手机上运行...... 有人可以解释为什么要设置 apiKey 吗
我正在使用 Mapquest javascript map API 来显示优化路线。页面加载时出现错误 我http://www.mapquestapi.com/sdk/js/v7.2.s/mqa.to
我们已经使用 MapQuest API key 几年了,但在过去 24 小时左右的某个时刻, map 已停止工作,并且我们收到错误:“此 key 未获得此服务的授权。” 我登录后发现我们的旧 key
我正在尝试在MQMapView上绘制路线。我在模拟器中对routeLoadFinished()进行了以下回复, 400 No sessionId found in request. You must
我正在尝试使用 MQA.TileMap.zoomToRect 设置给定边界框的视口(viewport)。 var cust; var rect = new MQA.RectLL(); for (var
我似乎找不到从 MapQuest 中的现有标记获取纬度和经度的方法。 我目前使用以下方法设置路线图: var map = L.mapquest.map('map', { center: [se
我需要将 MapQuest 的 map 替换为我的图 block 服务器 URL,如下所示 http://tile.openstreetmap.org/ {z}/{x}/{y}.png 通过保持控件不
大家好,我在解析 Mapquest API 查询中的信息时遇到问题。我正在尝试从 geocode_data 列中解析数据并将其放入单独的列中。我正在尝试提取地址,特别是下面的地理编码数据中的以下组件。
我正在使用 MapQuest Leaflet Api 绘制一条包含多个站点的路线(自定义标记)。一切都快完成了。我得到一条路线多个标记和一条折线。 我有两个问题 如何绘制点击时的优化路线 按钮路线优化
我正在使用现有的 MapQuest map ,我必须实现限制用户双击和缩放 map 的功能,从 API 文档中我只能看到禁用选项,但没有代码片段。 window.map = new MQA.TileM
我想在 MapQuest 上定位我的自定义标记,因为位置指向图标的中间,而不是图标的底部(图标是“图钉”的图像)。 var icon=new MQA.Icon("/images/market.png"
对 MapQuest 旧 map 的直接图 block 访问已停止。现在我们需要在开发者网络上注册计划。 如何在其他中配置MapQuest帐户以在ckan平台中使用它? 现在我的所有 ckan 站点中
我试图理解什么是什么,但我有点困惑: OpenStreetMap 可免费使用 map 。此 map 可能的 API 是: -OpenLayer -MapQuest 为什么 OpenLayer 在 Op
我想在 MapQuest 上定位我的自定义标记,因为位置指向图标的中间,而不是图标的底部(图标是“图钉”的图像)。 var icon=new MQA.Icon("/images/market.png"
这个想法是为了消除在一系列方向上的无意义的旅行: 'N' = 北 'S' = 南 'E' = 东 'W' = 西 因此,如果我们有数组 ['S', 'E', 'W', 'W'],我们需要 mapQue
已结束。此问题正在寻求书籍、工具、软件库等的推荐。它不满足Stack Overflow guidelines 。目前不接受答案。 我们不允许提出寻求书籍、工具、软件库等推荐的问题。您可以编辑问题,以便
我正在解析来自 MapQuest API 的 JSON 响应。我需要“演习”下“腿部”节点的所有“叙述”(腿部->演习->获取所有叙述),但我无法弄清楚。 我可以获得大部分值,如下所示: $(func
我使用 MapQuest 地理编码 API 和 Leaflet 库来创建 map 并让用户前往特定位置。我可以使用这个 API 或库来获取正确的缩放级别或特定区域(如城市、国家、州等)的边界吗?我还没
我是一名优秀的程序员,十分优秀!