我目前正在学习一门算法,并且必须做一个与图形相关的项目,更具体地说是在一组位置中找到最短路径。问题是我们不仅要考虑点之间的距离,我们还需要知道它们的高度。现在,我搜索了openstreetmaps、谷歌海拔api等,但我还没有找到一种方法来获取海拔。据我了解,osm 只有少量节点的提升。
这 是一个使用 open-elevation API 中的 curl 的示例。有没有办法制作一个简单的程序(最好是 C/C++)来做我想做的事?我已经尝试过,但无法让它工作。
我的第一个想法是使用 system()。如果它有效,那么我可以读取位置并创建一个字符串以传递给函数。但是,我遇到了很多与引号相关的编译器错误。我不是已经逃避一切了吗?这是代码:
#include <stdlib.h>
int main()
{
system("curl -X POST \\
https://api.open-elevation.com/api/v1/lookup \\
-H \'Accept: application/json\' \\
-H \'Content-Type: application/json\' \\
-d \'{
\"locations\":
[
{
\"latitude\": 41.1488064,
\"longitude\": -8.6094618
},
{
\"latitude\":20,
\"longitude\": 20
},
{
\"latitude\":41.161758,
\"longitude\":-8.583933
}
]
}\'");
return 0;
}
编辑:显然删除空格有效。即使那样,有没有更好的方法来做到这一点?