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

原文地址:https://www.cnblogs.com/haolb123/p/15666430.html