坐标加密配置
系统提供坐标加密工具,支持通过设置加密算法来对指定数据的坐标信息进行加密。如果想要坐标加密工具起作用,首先需要基于特定加密算法进行相关配置。
使用说明
首先,用户需要具备必要的加密算法。
接着,编译生成用于坐标加密的动态库,该库中必须包含ListTransform函数以及加密函数。
在头文件(*.h)中声明ListTransform函数和加密函数。示例代码见下方:
#ifdef WIN32 #define USER_EXPORT __declspec(dllexport) #else #define USER_EXPORT #endif //加密函数1。 extern "C" USER_EXPORT bool Transform1(double srcX, double srcY, double srcZ, double& desX, double& desY, double& desZ); //加密函数2。 extern "C" USER_EXPORT bool Transform2(double srcX, double srcY, double srcZ, double& desX, double& desY, double& desZ); //ListTransform用于获取加密函数的列表。 extern "C" USER_EXPORT bool ListTransform(std::map<std::string,std::string>& mapFuncAnd);
在源文件(*.cpp)中实现ListTransform函数和加密函数。示例代码见下方:
//加密函数的实现。这里,src代表原始坐标值,des代表加密后的坐标值。如果不对坐标Z值进行加密,则在加密函数实现中写明desZ = srcZ。 //加密函数1的实现。 bool Transform1(double srcX, double srcY, double srcZ, double & desX, double & desY, double & desZ) { ...... } //加密函数2的实现。 bool Transform2(double srcX, double srcY, double srcZ, double & desX, double & desY, double & desZ) { ...... } //ListTransform函数的实现。ListTransform中必须添加正确的加密函数名,否则会导致加密失败。 bool ListTransform(std::map<std::string,std::string>& mapFuncAnd) { mapFuncAnd.emplace("Transform1", "加密算法1的描述"); mapFuncAnd.emplace("Transform2", "加密算法2的描述"); return !mapFuncAnd.empty(); }
编译完成后,将结果库文件改名为SuStaticPluginUserPointTransform.upt,并将其放入SuperMap iDesktopX产品包/bin文件夹。
如果坐标加密算法还依赖其他动态库,一并将其拷贝粘贴至SuperMap iDesktopX产品包/bin文件夹。
完成后,启动SuperMap iDesktopX,使用坐标加密工具,其中加密算法参数填入要使用的加密算法名称,例如Transform1、Transform2等。