【第十章 思考总结】如何设计实现一个在线制图平台? 您所在的位置:网站首页 mapboxgl开发版 【第十章 思考总结】如何设计实现一个在线制图平台?

【第十章 思考总结】如何设计实现一个在线制图平台?

2023-03-27 05:29| 来源: 网络整理| 查看: 265

对于一个专业的GISer,日常的出图需要用到专业的桌面端软件,比如ArcGIS、QGIS,但是破解版的ArcGIS安装实在太复杂,软件太重有没有?QGIS虽然安装简单,但是交互体验非常一般,经常找不到对应的功能有没有?

随着Web端技术的不断发展,如何把功能搬到线上,做一个小而美的工具,满足日常简单的制图需求?为啥要搬到Web端,有以下几大优势:

(1)无须安装桌面软件,登录系统即可,非常便捷,如果只是预览个图层、截个图,根本没必要装桌面端软件;

(2)数据和地图和永久保存;

(3)便于共享,只要能访问浏览器,哪里都能打开看到成果;

(4)与其他业务系统打通,将结果进行便捷呈现;

既然有存在的必要性,那先来进行产品设计吧~

1.产品设计

产品定位:一款便捷在线地图制图工具

面向人群:专业or非专业有地图制图需求人群

功能需求:如下脑图

功能需求

技术可行性:常用技术栈可完成需求

2.技术实现2.1技术栈选型

全部使用开源技术栈:

主要技术栈

业务交互流程:

主要流程

对应技术栈处理:

2.2主要问题分析

(1)坐标统一

我们都知道要做一个地图,所有图层都必须在同一个坐标系下,所以对所有图层数据要进行坐标统一,有明确坐标信息的可使用proj4库进行坐标转换。因为使用mapboxgl,旧的版本只支持3857,所以最好坐标全部统一到WGS-84坐标,底图瓦片也支持3857或者900913的切图方案,否则无法正常显示。

(2)前端渲染

在图层较小的情况下,前端直接加载geojson进行渲染,灵活、速度快;

在图层文件较大的情况下,前端直接加载会出现传输下载时间长、前端崩溃等问题。借助geoserver地图服务geoserver-manager提供支持,通过Rest API实现与geoserver交互,可动态发布地图服务。详见github: https://github.com/geosolutions-it/geoserver-manager

一般有两种方案:

1)使用geoserver发布矢量瓦片,使用mapboxgl进行样式配置;

缺点:在小比例尺情况下,因为矢量瓦片会进行图形概化,导致显示信息不完整

前端渲染,影响显示效率

2)使用geoserver发布wms,前端配置sld样式在geoserver中生成styleId

缺点:生成大量sld文件不好维护

结论:建议设置文件大小或要素数量阈值,使用geojson前端渲染和wms相结合的方式。

(3)地图文件生成

将所有的图层配置和地图要素的配置全部打包成一个json文件进行保存,方便解析加载,使用对象存储,读写速度快、稳定。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有