#ifndef sdLib_h
#define sdLib_h

#include <pthread.h>

#include <iostream>
#include <string>

#include "BindRoad.h"
#include "CoordSys.h"
#include "World.h"

namespace jf {

class SdLib {
   public:
    SdLib();

    // 集成接口
    void Init(const std::string &configJsonPath);

    bool GetDataByWid(const Point &ingps, int wid, SdNode &out);
    // 得到绑路结果
    void GetBindRoadResult(const BindRoadInput &in, BindRoadOutput &o);
    // 得到最近的node
    const SdNode *GetNearestNode(const Point &ingps, const Rect2D &r, double &distance);
    // 得到sdNodeId前后多少米的点，并返回ingps在第几个index间
    /*
    bool getSdNearbyPoints(
        const point &ingps,
        int prev_meter,
        int next_meter,
        std::vector<SdNode> &out,
        int &out_index);
        */

    // 测试用
    // std::vector<Point> LoadGpses();

   private:
    BindRoad *a;
};
}  // namespace jf

#endif