google-code-prettify

星期五, 2月 14, 2020

【GIS】MapWinGIS ocx 建置

口白:
流動的水沒有形狀,漂流的風找不到蹤跡,任何案件的 Coding 都取決於心
唯一看透真相的是,外表看似卜朧共,智慧卻低於常人的 名卜朧共 刻爛
(謎之音:把 Code 刻到爛簡稱刻爛.爛..爛...)
Music:
#表升半音 []表高八度
4 3 2 6 4 2 3 #6 6 5 4 5 4 5 6 4 3 2 5 4 3 4 2 6 4 5 [2] [1] #6 6 5 6
4 3 2 6 4 2 3 #6 6 5 4 5 4 5 6 4 3 2 4 3 2 4 2 6 4 5 [2] #6 6 5 6
口白:
刻爛:真実はいつも一つ!

流程主軸:
1. 下載檔案( MapWinGIS V5.1.1、gdal and mapserver 需選擇對應開發工具及版本)
2. 環境說明
2.1 基礎環境
2.2 必要安裝
3. 原碼編譯
3.1 解壓縮
3.2 編譯 SupportLibs
3.3 編譯 MapWinGIS

1. 下載檔案
下載 MapWinGIS V5.1.1


下載  GDAL and Mapserver
有分 64bit  or 32bit  版本並且有對應開發工具 MSVC 2017 與 MSVC 2015 等等版本,
依據開發工具對應下載吧

使用 VS2015
release-1900-gdal-2-4-2-mapserver-7-4-0.zip、
release-1900-gdal-2-4-2-mapserver-7-4-0-libs.zip
使用 VS2017、VS2019(2017 老子不爽裝,2019 硬幹啦)
release-1911-gdal-2-4-2-mapserver-7-4-0.zip、
release-1911-gdal-2-4-2-mapserver-7-4-0-libs.zip
(有很多對應版本,只測成功過VS2015 x86 對 1900;VS2019 對 1911)

在 [Tutorial] Compiling MWGis in VS2017 有說了一段話
所以,只測過 32bit 版本囉(謎之音:有病嗎?頻寬很多嗎?抓那麼多檔案是有收集癖)

2. 環境說明
2.1 基礎環境
作業系統:Windows 10 64Bit
開發工具:Microsoft Visual Studio Enterprise 2019
2.2 必要安裝
安裝完 Visual Studio 2019 後,使用 Visual Studio Installer 安裝環境
需要安裝 【.NET 桌面開發】
【使用 C++ 的桌面開發】 需要 v142 建置工具的 C++ MFC(x86 & x64...)
【使用 C++ 的桌面開發】 需要 Windows 10 SDK (10.0.17...)

3. 原碼編譯
3.1 解壓縮
分別解壓縮兩個壓縮檔
release-1900-gdal-2-4-2-mapserver-7-4-0.zip
release-1900-gdal-2-4-2-mapserver-7-4-0-libs.zip

release-1911-gdal-2-4-2-mapserver-7-4-0.zip
release-1911-gdal-2-4-2-mapserver-7-4-0-libs.zip

Visual Studio 2015 對的版本號是 v140( MapWinGIS-4.9.3.6编译方法 ) ;
Visual Studio 2017 對的版本號是 v141( youtube 上是這樣教的);
Visual Studio 2019 對的版本號是 v142(嘗試把v142目錄建立起來,編譯是成功的)
將 release-1900-gdal-2-4-2-mapserver-7-4-0 壓說檔內的 bin 資料夾的檔案複製到
MapWinGIS-5.1.1.1\support\GDAL_SDK\v140\bin\win32\ 資料夾中



將 release-1900-gdal-2-4-2-mapserver-7-4-0-libs 壓說檔內
include 資料夾的檔案複製到
MapWinGIS-5.1.1.1\support\GDAL_SDK\v142\include\win32\ 資料夾中

lib 資料夾的檔案複製到
MapWinGIS-5.1.1.1\support\GDAL_SDK\v142\lib\win32\ 資料夾中


3.2 編譯 SupportLibs
以管理員身份使用 VS2019 打開 MapWinGIS-5.1.1.1\support\ 資料夾裡的 SupportLibs.sln
編譯 cqlib.lib 和 spatialindex-mw.lib

在【解決方案】上,按右鍵  打開【屬性】 設定界面,將【通用屬性】中的【起始專案】
改成多個啟始專案

在【解決方案】上,點選它,然後點選【屬性】頁籤,
將【使用中的組態】的屬性改成 Release|Win32

完成以上設定後,就可以按下 F6  來建置方案
建置完成就會產生 spatialindex-mw.lib、cqlib.lib

3.3 編譯 MapWinGIS
以管理員身份使用 VS2019 打開 MapWinGIS-5.1.1.1\src 資料夾裡的 MapWinGIS.sln
修改 AngleHelper.cpp 檔案

s.Format(format + L"?, angle); //L"%.1f?
改成
s.Format(format + L"%.1f", angle); //L"%.1f?

接下來就可以建置它囉
完成後會產出 MapWinGIS.ocx

建置是成功了能不能用不知道啦
下次搭配 MapWindow 試看看好了
下回可能跟冨樫 yoshirin 的獵人一樣不知何時才會有下ㄧ回不要期待吧

                                                                                                                                                 (未完待續…)

參考文獻:
【Github】MapWinGIS v5.1.1
GDAL and MapServer Older Releases
【Blog】MapWinGIS-4.9.3.6编译方法
[Tutorial] Compiling MWGis in VS2017
【Youtube】Compiling MWGis in VS2017