c++ - GeoJSON 解析坐标并将值设置为自定义结构
问题描述
我需要将 GeoJSON 坐标设置为此结构:
struct coord {
double lat,
double lon
};
我的示例 JSON:
{
"geometry": {
"type": "LineString",
"coordinates": [
[
75.9814453125,
10.919617760254697
],
[
76.2451171875,
11.30770770776545
],
[
76.728515625,
11.350796722383672
],
[
76.904296875,
10.919617760254697
]
]
}
}
代码片段:
auto array = value.as_object()["coordinates"].as_array();
for(auto v = array.begin() ; v < array.end() ; v++ ){
auto a = (*v).as_array();
coords.push_back(createCoord(a));
}
amp::AmpFeature::coordinate createCoord(web::json::array coordsJson) {
coord c;
if(a.size() == XY){
c.lon = a.at(0).as_double();
c.lat = a.at(1).as_double();
}
}
在上面的代码中,我需要一些其他方法来设置结构值。这是使用 cpprest-sdk json 解析器完成的。我们正在从 sqlite db 中获取数据。
我们正在处理成千上万个这样的 lineString 几何图形。有没有更有效和更快的方法来设置这些值?
环境:
操作系统:Ubuntu 18.04
C++ 版本:17
解决方案
推荐阅读
- c++ - 尝试获取指向向量大小的指针时出现编译错误
- python - 二维数组 - 切片和索引
- python - 更改熊猫中的特定列
- php - 如何在 php exec 中使用 cgroups
- c - 如何使用 CFFI 在 C 中访问 Python dunder 方法?
- java - 无法推断基本网址。这在使用动态 servlet 注册或 API 位于 API Gateway swagger 2.10.5 后面时很常见
- flutter - 颤振:未处理的异常:无法加载资产:资产/语言/en
- swift - Vapor 4 - 创建一个列出所有可用路线的路线
- javascript - 等待 for 循环的完成
- signalr - Azure Function V2 dotnet signalr 和 cosmos 异常