zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    c# 中的线程和同步
    Javascript 观察者模式
    连接SQLite 创建ADO.net实体类
    给软件增加注册功能 c#
    log4net 使用步骤
    C# 操作 Excel
    PCL编译历程
    设计模式
    kinect
    eclipse配置servlet错误
  • 原文地址:https://www.cnblogs.com/haolb123/p/15666430.html
Copyright © 2011-2022 走看看