Curl 如何使用开放高程等获取一组位置的高度?

Curl 如何使用开放高程等获取一组位置的高度?,curl,openstreetmap,altitude,Curl,Openstreetmap,Altitude,我目前正在学习一类算法,并且必须做一个与图形相关的项目,更具体地说,在一组位置中寻找最短路径。问题是我们不仅要考虑点之间的距离,还要知道它们的高度。 现在,我已经搜索了openstreetmaps、google elevation api等,但我还没有找到一种获取高程的方法。据我所知,osm只有少量节点的提升 是一个使用OpenElevation API中的curl的示例。有没有办法制作一个简单的程序(最好是C/C++)来做我想做的事情?我已经试过了,但没能成功 我的第一个想法是使用syste

我目前正在学习一类算法,并且必须做一个与图形相关的项目,更具体地说,在一组位置中寻找最短路径。问题是我们不仅要考虑点之间的距离,还要知道它们的高度。 现在,我已经搜索了openstreetmaps、google elevation api等,但我还没有找到一种获取高程的方法。据我所知,osm只有少量节点的提升

是一个使用OpenElevation 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;
}
#包括
int main()
{
X柱系统\\
https://api.open-elevation.com/api/v1/lookup \\
-H \“接受:应用程序/json \”\\
-H \'内容类型:应用程序/json \'\\
-d'{
\“位置\”:
[
{
\“纬度\”:41.1488064,
\“经度\”:-8.6094618
},
{
\“纬度\”:20,
\“经度\”:20
},
{
\“纬度\”:41.161758,
\“经度\”:-8.583933
}
]
}\'");
返回0;
}

编辑:显然删除空格是有效的。即使这样,还有更好的方法吗?

我是您使用的开放式提升服务的作者:)请随时问我任何问题


使用system()通常不是一种好的做法。您应该查看一个库,该库允许您在C中发出简单的GET请求。既然您已经知道如何使用cURL,下面是一个有趣的技巧!你可以,然后适应它。只需将
--libcurl
选项传递给它

告诉我们您尝试了什么,以及任何错误消息。@Mozahler对不起,我知道我在主帖子中添加了代码,我不是投反对票的人。我对你的问题进行了升级投票,以便让更多的人看到。你看到了哪些错误消息,你能复制它们并更新问题以包含这些错误消息吗?感谢伟大的项目。但它似乎在下降。我找不到提供日期的来源?它来自哪里?谢谢:)