swMap提供基礎的Gis發布功能,目前swMap提供c/s,b/s兩種服務功能,b/s也就是webgis,
apache+openlayers+swGisServer服務器構成了webgis的地圖支持體系。
c/s模式現僅提供基于Qt的C++開發接口,c/s模式可以是本地渲染地圖(可用于單機導航,支持win32,wince,linux),也可以rpc方式訪問地圖服務器,之間采用特殊的通信協議。
演示: http://wallizard.vicp.net/maps/test/test_map.html 這是adsl主機,上行出口比較窄,所以顯示地圖會慢很多
Demo下載:http://wallizard.vicp.net/maps/swmap.demo.2010.11.20.7z
demo包含c/s,b/s功能和全國地圖數據,共170M左右,可以直接架設起一臺wms地圖服務器
系統結構:

1. c/s 配置:
1.1 單機模式:
a.) 修改swBox/swbox.xml參數
EnableTileCache = false
cachethreads = 3
asyncRender = true
b.) 運行swBox/swbox.exe
1.2 Rpc模式(地圖與客戶應用分離)
a.) 修改swbox.xml參數
EnableTileCache = true
cachethreads = 3
asyncRender = true
增加<tileservers/>的子條目
<server>TileServer:tcp -h localhost -p 5000</server>
-h 地圖服務器主機地址 ; -p 服務端口。根據實際情況可以配置多個TileServer來提高并發能力
b.)修改Tileserver.xml
realRender = true
確保 scales與 swbox.xml的scales保持一致,中間以空格區分
c.)運行TileServer.exe -rpcservice localhost:5000
可以并行啟動多個TileServer,同一臺主機以端口號區分
d.)運行 swbox.exe
2.b/s 配置
2.1 解壓apache2.2.pack_maps.rar到c:\apache2.2.pack
2.2 安裝apache2.2
執行C:\apache2.2.pack\http-install.bat
執行C:\apache2.2.pack\http-start.bat
2.3 安裝GisServer
編輯tileservers.txt ,增加服務器信息,例如:
localhost:5000,localhost:5001
執行wms_start.bat ,服務器默認啟動在8000端口開始偵聽
2.4 運行 TileServer.exe -rpcservice localhost:5000
為提高并發能力多啟動幾個Tileserver,并添加到swGisServer的tileservers.txt文件內
swGisServer和TileServer都可以以n x n的方式配置來提高整體 系統的吞吐能力
2.5 修改 c:/apache2.2.pack/web-root/test/test_map.html內的wms服務器的指向,將http://wallizard.vicp.net:8000/wms替換成GisServer運行主機的地址和端口
打開瀏覽器訪問http://localhost:9000/test/test_map.html
3.塊緩存
塊緩存技術就是預先將全國的地理區域劃分成網格按縮放級別繪制并存儲起來,待請求到達時直接讀取圖塊并返回(wms,Rpc).
當然這種是最高效的方法 ,但往往時間和空間是相背的,緩存的話雖然能降低對機器的性能要求,但會大大占用存儲空間。
緩存技術可以用低配置高帶寬的主機提供集群的地圖服務。
Tileserver/spliteTiles.py 產生網格緩沖任務,Tileserver.exe -mapcreate 可以進行地圖網格預存的工作
4.風格定制:
swMap地圖當配置成實時模式(非緩存)時,修改mapsld.xml就可以立刻生效繪制效果,但是要重新啟動 tileserver服務進程 。
<win7下的微軟雅黑字體顯示效果頗佳>
5.運行環境:
windows xp,2003,win7
安裝vc運行環境包 vcredist_x86.exe
win7環境下微軟雅黑字體 vistaFont_CHS.exe
全國地圖數據