PROJ
   
    
    
    什么是PROJ
   
    Proj是一个免费的GIS工具。 它专注于地图投影的表达,以及转换。采用一种非常简单明了的投影表达PROJ,比其它的投影定义简单,但很明显。很容易就能看到各种地理坐标系和地 图投影的参数,同时它强大的投影转换功能,也是非常吸引人的。许多的 GIS软件中也将其集成在内。Proj可以在 window的命令下有可运行的 EXE文件,其实它更主要的是一个
    
     库
    
    !可以用来编一些批处理。在 Linux下除了可以直接运行外,还可以作为库来进行更高功能的开发。
   
    
    
    PROJ下载方式
   
    
     官方下载链接
    
    
    进入官网后,点击Current Release下的下载链接。
    
     
   
    
    
    资源结构
   
    下载好后,解压后的结构应该与下方图片中相似。
    
     
   
    
    
    编译PROJ
   
    需要事先安装CMake。
    
     下载链接
    
   
    1、打开CMake,并且点击左侧的【Browse Source】和【Browse Build】按钮添加对应的路径。
    
    这里我源码路径为
    
     F:/C++Project/proj-9.1.1
    
    ,编译路径为:
    
     F:/C++Project/proj-9.1.1-build
    
    。你需要修改为自己合适的路径。
    
     
   
    2、点击左下角的【configure】按钮。
    
    
    
    3、如果你的编译路径不存在,那么将会有弹窗提醒你。这里你只需要点击yes即可。(注:如果你手动创建了编译目录那么这一步是不需要的。)
    
    
    
    4、开始配置环境
    
    【Specify the generator for this project】表示让你选择合适的编译器。这里我选择
    
     Visual Studio 2022
    
    。你需要选择自己合适的VS版本。
    
    【Optional platform for generator(if empty, generatoar uses: x64)】表示你需要选择合适的平台。默认将选择64位。如果你需要其他环境就需要手动选择。
    
     
   
其他均默认即可。然后点击【Finish】按钮。
     
   
    5、这一步只需要等待
    
    
    
    6、到下面这个图时,你需要配置SQLite3的路径。具体SQLite3的库生成见此文章:
    
     SQLite3源码下载与编译(开发环境:Win10+VS2022)
    
    
     
   
设置完成后就可以点击【Generate】按钮。进行生成即可。
    
    
    9、这一步只需要等待生成完成即可
   
     
   
    9、出现下面这些日志则表示生成成功。
    
    
    
    10、点击【Open Project】按钮,打开工程。
    
     
   
    11、出现下面这个界面就表示工程打开成功了。然后选择合适的环境(debug/release)。
    
    
    
    12 首先右击解决方案,然后点击生成解决方案。
   
     
   
    13 等待漫长的编译过程吧。
    
    
    
    14 如果你到这一步,那么就说明你以及编译成功了。如果你编译失败了。请把错误贴在评论区一起来商讨。
    
     
   
    
    
    打包编译成功的库
   
    在某一个磁盘根目录创建一个文件夹名为
    
     proj
    
    ,再到proj文件夹中以此创建include、lib和bin文件夹。用于将proj所有的头文件、静态库、动态库都放进去。
    
    
     1、打包头文件
    
    
    将
    
     F:\C++Project\proj-9.1.1\src\*.h
    
    复制到
    
     D:\proj\include
    
    
    将
    
     F:\C++Project\proj-9.1.1\src\*.h
    
    复制到
    
     D:\proj\include
    
    
    将
    
     F:\C++Project\proj-9.1.1\include\*.h
    
    复制到
    
     D:\proj\include
    
    
     2、打包静态库
    
    
    将
    
     F:\C++Project\proj-9.1.1-build\lib\release\proj_d.lib
    
    复制到
    
     D:\proj\lib\release\proj_d.lib
    
    
    将
    
     F:\C++Project\proj-9.1.1-build\lib\debug\proj_d.lib
    
    复制到
    
     D:\proj\lib\debug\
    
    
    将
    
     F:\C++Project\proj-9.1.1-build\lib\RelWithDebInfo\proj_d.lib
    
    复制到
    
     D:\proj\lib\release\
    
    
    如果你还需要其他环境也一并拷过去。如果你只需要某一个环境那么也可只拷贝一种即可。
   
    
     3、打包动态库
    
    
    注:这里文件的移动还需要将后面的文件名中的版本信息给删去,方便后面调用。
    
    将
    
     F:\C++Project\proj-9.1.1-build\lib\release\proj_9_1_d.dll
    
    复制到
    
     D:\proj\lib\release\proj_d.lib
    
    
    将
    
     F:\C++Project\proj-9.1.1-build\lib\release\proj_9_1_d.pdb
    
    复制到
    
     D:\proj\lib\release\proj_d.pdb
    
    
     效果图
    
    
     
   
 
