利用ArcEngine开发地图发布服务,将mxd文档一键发布成wmts,并根据需要对地图进行空间查询,返回客户端geojson
一直想开发一个软件取代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,这样速度会更快一点。
利用ArcEngine开发地图发布服务,将mxd文档一键发布成wmts,并根据需要对地图进行空间查询,返回客户端geojson的更多相关文章
- Howto: 在ArcGIS10中将地图文档(mxd文档)批量保存到之前版本
Howto: 在ArcGIS10中将地图文档(mxd文档)批量保存到之前版本 文章编号 : 38783 软件: ArcGIS - ArcEditor 10 ArcGIS - ArcInfo 10 A ...
- 打开地图文件和shape文件代码加载Mxd文档
代码加载Mxd文档 用代码添加Mxd文档,用到AxMapControl.LoadMxFile(sFilePath),我们只要将Mxd文档的路径传给这个方法即可 /// <summary> ...
- (二)发布第一个WebService服务与DSWL文档解析
1. 编写接口 package service; import javax.jws.WebService; /** * 第一个webservice服务, * @WebService注解表示这是一个we ...
- 书剑恩仇录online全套源代码(服务端+client+文档)
书剑恩仇录online全套源代码(服务端+client+文档).vc++开发,解压后将近10G大小,眼下网上最完整版本号,包括client源代码.服务端源代码.工具源代码.sdk.文档-- <书 ...
- 随时发布:REST API文档的代码仓库中的持续集成与协作
本文主要内容:API文档提供了预测客户成功的关键路径:在代码附近的文档上进行协作可以更好地检查代码和文档文件,提高自动化效率,并专门针对文档进行质量测试:提供通用文档框架,标准,自动化和工具,以提高团 ...
- 使用 flow.ci 快速发布你的项目文档
软件研发的协作过程中,文档是必不可少的一环,有需求文档.接口文档.使用文档等等.当开始写文档时,首先会遇到两个问题: team members 之间如何协作? 文档 OK 后如何分发,去哪里看?如何更 ...
- 微服务·API文档
阅文时长 | 3.92分钟 字数统计 | 2754.05字符 主要内容 | 1.什么是API文档 2.API文档的使用 3.声明与参考资料 『微服务·API文档』 编写人 | SCscHero 编写时 ...
- JSP利用freemarker生成基于word模板的word文档
利用freemarker生成基于word模板的word文档 freemarker简介 FreeMarker是一个用Java语言编写的模板引擎,它基于模板来生成文本输出.FreeMarker与Web容器 ...
- AppleWatch开发教程之调试程序使用帮助文档
AppleWatch开发教程之调试程序使用帮助文档 AppleWatch开发教程之调试程序 调试又被称为排错,是发现和减少程序错误的一个过程.在Xcode中进行调试的需要实现以下几个步骤: 1.添加断 ...
随机推荐
- Linux中一切皆文件
谈一谈Linux中一切皆文件 1. Linux中所有内容都是以文件的形式保存和管理,即:一切皆文件. 普通文件是文件. 目录(在win下称为文件夹)是文件. 硬件设备(键盘.硬盘.打印机)是文件. 套 ...
- [译] 沙箱中的间谍 - 可行的 JavaScript 高速缓存区攻击
原文 The Spy in the Sandbox – Practical Cache Attacks in Javascript 相关论文可在 https://github.com/wyvernno ...
- 前端每日实战:144# 视频演示如何用 D3 和 GSAP 创作一个集体舞动画
效果预览 按下右侧的"点击预览"按钮可以在当前页面预览,点击链接可以全屏预览. https://codepen.io/comehope/pen/gdVObN 可交互视频 此视频是可 ...
- 深入HTTP协议
一.HTTP定义 超文本传输协议(HTTP)是一种通信协议,它允许将超文本标记语言(HTML)文档从Web服务器传送到客户端的浏览器. HTTP是一个属于应用层的面向对象协议,由于其简捷.快速的方式, ...
- Paxos算法的一个简单小故事
一.Paxos是什么? Paxos,它是一个基于消息传递的一致性算法,Leslie Lamport在1990年提出,近几年被广泛应用于分布式计算中,Google的Chubby,Apache的Zooke ...
- js获取异步方法里面的数据
这里介绍 五种方法(说白了本质 就三种) 1.callback回调函数 function getData(callback){ setTimeout(()=>{ let name = '哈哈 ...
- Exchange批量删除邮件
在实际工作中经常遇到以下问题:邮件发送给错误的收件人,简而言之就是邮件发错了,如果遇到群发更麻烦.Exchange中提供了批量删除邮件功能,当用户发现发送错误后,管理员可以检索并删除指定的邮件. 案例 ...
- 微信小程序加密解密参数
加密:encodeURIComponent(参数) 解密:decodeURIComponent(参数)
- css实现超出部分显示省略号
/* 显示一行,省略号 */ white-space: nowrap; text-overflow: ellipsis; overflow: hidden; wo ...
- Ubuntu系统报错The system is running in low-graphics mode
Ubuntu系统报错:The system is running in low-graphics mode 我遇到过两次这种请况,这次解决了.很nice! 在csdn上搜到的大部分操作是: 鼠标进入系 ...