一直想开发一个软件取代ArcGIS Server,该软件使用ArcEngine开发,以Windows Service形式发布,部署在服务端上,解决wmts地图服务发布和空间查询的问题,经过不断的研究、知识积累和测试,已经实现,现将思路整理如下:

首先,Arcgis server优点和缺点就不说了,我要实现的是一个小型的gis server,这个server将使用ae开发,所以只需在服务器上安装AE Runtime即可。软件的功能主要包括以下两点:

1、将mxd文档直接发布成wmts服务

2、前端用户使用属性查询或空间查询,服务端返回geojson

为完整介绍开发思路,我将一一介绍这两个功能。

一、发布MXD文档为WMTS

这个功能主要包括三个要点:

1、利用ArcEngine和WCF发布服务,前期经过测试,已经实现,这个服务可以托管于IIS,也可以托管于windows services。

2、了解WMTS规范,利用WCF开发相应服务

由于前几年一直在开发在线地图的浏览、下载、格式转换、地图服务发布软件(这个软件后期再介绍,目前可以除支持在线地图的下载外,还支持更多格式的地图发布成wmts,例如基于sqlite的自有地图切片数据库发布,发布arcgis 切片地图,利用gdal发布tif、jpg,png等影像、发布tpk等),所以对WMTS的规范已经很熟悉,所以利用WCF开发相应接口也未遇到难题

3、根据WMTS规范中的gettile方法,利用ae和动态缓存机制生成切片,实现wmts地图服务发布。

该功能的要点就是根据gettile中xyz的值,计算出切片地图的范围,利用AE裁切出地图。

二、前端用户使用属性查询和空间查询得到geojson

由于第一个功能中,已经使用ArcEngine开发了相应的地图服务,可以支持类似于桌面端的GIS操作,所以真正要做的工作就是将查询结果转换成geojson,前端根据geojson动态绘制查询结果。

这个小型的gis server目前部署很方便,服务器只需安装ArcEngine Runtime,将mxd文档和对应的数据复制过去即可,后期准备开发一个网站来支持用户上传MXD,直接发布地图服务。目前提供一个我测试用的地籍图发布的WMTS。

http://www.simplemap.com.cn:6466/SimpleGIS/ogc/services/rongxian/WMTS,总体来说,浏览速度还可以,为支持更快的浏览速度,也可以使用我写的切片地图下载软件将它下载成离线地图数据库,再发布WMTS,这样速度会更快一点。

 

作者:|SimpleGIS|,原文链接: https://www.cnblogs.com/SimpleGIS/p/16290835.html

文章推荐

ConfigurationManager姿势快闪

SpringBoot+Mybatis-Plus整合Sharding-JDBC5.1.1实现单库分...

TornadoFx实现侧边栏菜单效果

测试平台系列(95) 前置条件支持简单的python脚本

consul系列文章02---替换掉.netcore的配置文件

Spring大事务到底如何优化?

Blazor和Vue对比学习(进阶2.1.1):生命周期,基本理解和使...

用python为心爱的人制作520照片墙,已成功做出效果图

如何在 30 分钟完成表格增删改查的前后端框架搭建

并发编程之临界区\阻塞\非阻塞\死锁\饥饿\活锁

一文带你了解 「图数据库」Nebula 的存储设计和思考

认识并安装WSL