为OSRM路由获取JSON
Getting JSON for OSRM routing
我已经使用cloudmade API在我的网站上成功实现了一个路由系统。我也想做同样的OSRM路由系统(https://github.com/DennisOSRM/Project-OSRM),但我有一些麻烦得到OSRM json输出。
下面是从cloudmade API中检索json的示例:
使用美元。ajax - http://jsfiddle.net/mayooresan/FhfVW/2/
$(function () {
$("#getJSON").click(function () {
var url = "http://routes.cloudmade.com/c6f2762bfe00414f822a9dec443569f5/api/0.3/51.500,0.100,51.500,0.1001/car.js";
$.ajax({
async: false,
dataType: "jsonp",
url: url,
success: function (data) {
test = data.route_geometry;
alert(test);
}
});
});
});
使用美元。getJSON - http://jsfiddle.net/V3qgZ/72/
$(function () {
$("#getJSON").click(function () {
$.getJSON("http://routes.cloudmade.com/c6f2762bfe00414f822a9dec443569f5/api/0.3/51.500,0.100,51.500,0.1001/car.js?callback=?", function (data) {
var test = data.route_geometry;
alert(test);
});
});
});
OSRM的服务器API位于这里:https://github.com/DennisOSRM/Project-OSRM/wiki/Server-api(查询的服务器位置位于http://router.project-osrm.org)。
将上面使用的具有相同坐标的URL (http://router.project-osrm.org/viaroute?loc=51.500,0.100&loc=51.500,0.1001)放入浏览器中,将检索到一个json文件。但无论我尝试使用这个$。getJSON或$。ajax -使用回调,设置数据类型,我不能得到json数据,这让我发疯!我确信这是可能的,因为它在API中有文档。
时间过去了,我想我会回答这个问题,以防有人有同样的问题。
OSRM的JSON响应与Cloudmade返回的JSON响应不同。OSRM wiki在你的问题中回答了这个问题。来自OSRM的JSON是编码的,您需要对此进行特殊处理。引用维基,
长话短说,有人已经让事情变得容易了。看看这个:https://github.com/perliedman/leaflet-routing-machine路由的几何形状以编码的形式传递。
试试这个:(实际上jQuery内部解析json)
检查这个小提琴
$(function () {
$("#getJSON").click(function () {
$.getJSON("http://routes.cloudmade.com/c6f2762bfe00414f822a9dec443569f5/api/0.3/51.500,0.100,51.500,0.1001/car.js?callback=?", function (data) {
var test = data.route_geometry;
alert(JSON.stringify(test));
});
});
});
这是一个jquery的东西:新版本默认添加一个回调参数,所以你的url最终类似http://router.project-osrm.org/viaroute?loc=51.500,0.100&loc=51.500,0.1001&callback=jQuery1504317377423867583_1366895174226&_=1366895275399。OSRM不喜欢这样。
请参阅"为什么使用jQuery AJAX请求将回调参数添加到查询字符串"的答案,了解如何防止这种情况。
- JSON获取用户id's在嵌套数组中
- JSON:获取映射数据
- Jquery从JSON获取数据(未定义)
- 从 JSON 获取键值对而不使用 .(DOT) 在 Java 脚本或 jquery 中
- Django 使用 JSON 获取模型方法的值
- TypeError: 使用 Jquery JSON 获取数据时无效的 'in' 操作数 obj
- JSON获取地理位置在HTML中未返回值
- 从javascript中的JSON获取位置
- Angular Js无法使用浮点形式json获取int
- AngularJS,从json获取单个帖子
- 在服务器端创建html元素VS将数据作为JSON获取,并使用javascript创建标签
- 无效的“in”操作数 obj JQUERY - 尝试从 JSON 获取数据时出现类型错误
- 无法从 JSON 获取值
- 如何将动态数据从JSON获取到jvqmaps中,作为对象而不是来自php mysqli的数组
- 在 react.js 中从 Json 获取数据
- 从特定索引开始从 json 获取字符串值
- 如何在变量中存储从 JSON 获取的数据
- 无法从 JSON 获取数据
- 如何将 API 请求中的 JSON 获取到页面的 javascript 中
- 网格堆栈.js从 JSON 获取位置