GeoServer發布高清電子地圖


一、先看效果

image

image

image

image


二、版本信息

Centos系統:CentOS Linux release 7.3.1611 (Core)
GeoServer版本:2.20.1
Bigemap地圖下載器:30.0.0.0


三、軟件下載安裝

1、Bigemap地圖下載器

下載地址:http://www.bigemap.com/

image

2、GeoServer下載安裝

官網下載地址:http://geoserver.org/release/stable/,具體安裝過程參考:https://www.cnblogs.com/haolb123/p/14107636.html

image


四、BIGEMAP下載電子地圖

1、選擇地圖源

       打開BIGEMAP地圖下載器,如下圖,在軟件左上角選擇地圖源為【高德地圖】實際任意選擇都行,我們想要下載個性化無偏移電子地圖,
由於bigemap經常升級,以前地圖源中有【個性化地圖】,現在沒有了,但他提供了其它下載入口。

image

2、使用框選工具開始下載

使用框選工具【矩形框或者多邊形】框選出目標區域,或者可以導入想要下載的目標區域kml邊界文件,然后進行下載。

我們以甘肅省金昌市永昌縣城關鎮為例,框選城關鎮部分區域。

image

image

3、設置地圖樣式

BIGEMAP預設了若干種樣式供您選擇,你可選擇其中一種樣式,然后框選需要的區域之后直接下載或者勾選倒數第二項【自定義】,設置自己想要的地圖樣式。

鼠標雙擊下圖紅色圓圈區域,彈出地圖樣式對話框。我們渲染樣式選擇:其它風格(一)。

image

4、進行自定義設置

勾選【自定義】之后點擊自定義設置出現如圖所示對話框,您可對字體、路網、其他樣式進行設置,推薦點擊左下角【樣式模版】,選擇一種樣式之后在此基礎上進行修改。

image

5、注意自定義路網的設置

如果不想讓某種路網顯示在地圖上,第一步選中該類型道路,第二步選擇要下載的地圖級別,取消勾選,如圖所示。(其他地圖級別時,該類型地圖還會繼續顯示)

image

6、選擇想要顯示在地圖上對象

鼠標移動到如圖所示區域出現下拉框,勾選相應的對象即可使其顯示在地圖上;更多設置需要在自定義功能中設置,如地圖上不出現高速公路,其他類型道路都顯示。

image

7、怎么找到剛下載的文件

下載時在右上角會顯示下載進度,下載完成后,鼠標移到如圖所示區域,可以展開已下載列表,雙擊剛剛下載的對象,即可打開目標文件位置。

image

五、投影轉換

1、使用bigemap工具列表中投影轉換工具,依次把下載好的電子地圖圖片全部做投影轉換,目標坐標系選擇:CGCS2000。

2、如果下載的是全球電子地圖,目標坐標系應該選擇:投影坐標系--World—WGS 84 / World Mercator。

image

image

3、轉換完成后如下圖.

image

4、如果未做投影轉換,在geoserver中添加數據存儲時會報異常:

Could not list layers for this store, an error occurred retrieving them: Failed to create reader from file:data/城關鎮_個性化_無偏移_電子地圖/城關鎮_個性化_無偏移_電子地圖_Level_15.tif and hints Hints: EXECUTOR_SERVICE = java.util.concurrent.ThreadPoolExecutor@68fc241b[Running, pool size = 0, active threads = 0, queued tasks = 0, completed tasks = 0] REPOSITORY = org.geoserver.catalog.CatalogRepository@5339352c System defaults: STYLE_FACTORY = StyleFactoryImpl GRID_COVERAGE_FACTORY = GridCoverageFactory TILE_ENCODING = null FORCE_AXIS_ORDER_HONORING = http LENIENT_DATUM_SHIFT = true FORCE_LONGITUDE_FIRST_AXIS_ORDER = true FEATURE_FACTORY = org.geotools.feature.LenientFeatureFactoryImpl@38f57b3d FILTER_FACTORY = FilterFactoryImpl COMPARISON_TOLERANCE = 1.0E-8

image

六、Geoserver切割瓦片影像

1、復制投影轉換后的文件到geoserver的data目錄

2、登錄geoserver,新建工作區:oyz

image

3、新建網格集:EPSG:3857

image

4、添加數據存儲

依次把15至18級地圖圖片添加到數據存儲。

image


5、發布圖層

點擊數據存儲【保存】按鈕后自動跳轉新建圖層頁面。

image

點擊【發布】按鈕后進入編輯圖層頁面,注意:圖層名稱必須是英文,否者在訪問時會出現亂碼。

image

點擊 Tile Caching 頁簽,調整網格集坐標系添加 EPSG:3875,只保存EPSG:3875,級別設置和bigemap下載TIF圖片級別保持一致。

image

image

6、圖層瓦片切割

image

image

Number of tasks to use:切割瓦片使用的任務數量,數量越多切割越快。
Grid Set:坐標系,電子地圖選擇ESPG:3857。
Zoom start和Zoom stop兩個級別都選擇16級,這兩個級別和圖層級別保持一致。

等待數分鍾后可以 .\geoserver-2.20.1\data_dir\gwc\oyz_cgz_dz_Level_16目錄查看切割好的瓦片數據

image

7、切割其它級別瓦片

接下來,我們要重復把第15,16,17,18 級的地圖依次加入數據源。重復4, 5, 6 步驟,把這所有的數據圖層都切割成瓦片,最后切割好的瓦片放在第18級的地圖,效果如下圖:

image

8、修改圖層cgz_dz_Level_18的訪問級別:15~18

image


七、Cesium加載WMTS服務,4326和3857

1、電子地圖 3857坐標系

var electronicMapModel = new Cesium.ProviderViewModel({
    name: '電地地圖',
    iconUrl: require('../assets/image/UI/地圖切換_03-02.png'),
    creationFunction: function () {
        var esri = new Cesium.WebMapTileServiceImageryProvider({
            url: self.Common.mapUrl + '/geoserver/gwc/service/wmts',
            layer: 'ChengGuanZhen:cgz_dz_Level_18',
            style: "",
            format: "image/png",
            tileMatrixSetID: 'EPSG:3857',
            tileMatrixLabels: ['EPSG:3857:0', 'EPSG:3857:1', 'EPSG:3857:2', 'EPSG:3857:3', 'EPSG:3857:4', 'EPSG:3857:5', 'EPSG:3857:6', 'EPSG:3857:7', 'EPSG:3857:8', 'EPSG:3857:9', 'EPSG:3857:10', 'EPSG:3857:11', 'EPSG:3857:12', 'EPSG:3857:13', 'EPSG:3857:14', 'EPSG:3857:15', 'EPSG:3857:16', 'EPSG:3857:17', 'EPSG:3857:18'],
            maximumLevel: 18,
            show: false,
            tilingScheme: new Cesium.WebMercatorTilingScheme({
                numberOfLevelZeroTilesX: 1,
                numberOfLevelZeroTilesY: 1
            }),
        });
        return esri;
    }
});

2、衛星地圖 4326 坐標系

var terrainMapModel = new Cesium.ProviderViewModel({
    name: '衛星影像',
    iconUrl: require('../assets/image/UI/地圖切換_03-01.png'),
    creationFunction: function () {
        var esri = new Cesium.WebMapTileServiceImageryProvider({
            url: self.Common.mapUrl + '/geoserver/gwc/service/wmts',
            layer: 'ChengGuanZhen:cgz_wt_test_4326',
            style: "",
            format: "image/png",
            tileMatrixSetID: 'EPSG:4326',
            tileMatrixLabels: ['EPSG:4326:0', 'EPSG:4326:1', 'EPSG:4326:2', 'EPSG:4326:3', 'EPSG:4326:4', 'EPSG:4326:5', 'EPSG:4326:6', 'EPSG:4326:7', 'EPSG:4326:8', 'EPSG:4326:9', 'EPSG:4326:10', 'EPSG:4326:11', 'EPSG:4326:12', 'EPSG:4326:13', 'EPSG:4326:14', 'EPSG:4326:15', 'EPSG:4326:16', 'EPSG:4326:17', 'EPSG:4326:18'],
            maximumLevel: 18,
            show: false,
            tilingScheme: new Cesium.GeographicTilingScheme({
                numberOfLevelZeroTilesX: 2,
                numberOfLevelZeroTilesY: 1
            }),
        });
        return esri;
    }
});


參考:https://blog.csdn.net/thor027/article/details/112236685


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM