首页 > 解决方案 > 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++gisgeojsoncpprest-sdk

解决方案


推荐阅读