开源GIS解决方案,暨GeoServer+OpenLayer结合开发总结

http://linking123.github.io/2018/07/21/%E5%BC%80%E6%BA%90GIS%E8%A7%A3%E5%86%B3%E6%96%B9%E6%A1%88%EF%BC%8C%E6%9A%A8GeoServer-OpenLayer%E7%BB%93%E5%90%88%E5%BC%80%E5%8F%91%E6%80%BB%E7%BB%93/

 

– 0.感叹
– 1.文档说明
– 2.文档内容
— 2.1 GeoServer - 地图服务
— 2.2 OpenLayers - 前端渲染引擎
— 2.3 地图资源
— 2.4 地图编辑器
— 2.5 2.5d伪三维效果
— 2.6 GeoJson
— 2.7 集成到工程中
— 2.8 商业解决方案

0.感叹

原以为,此生与GIS再无交集。

因缘际会,项目上有机会重拾 GIS 相关,这就是人生啊!

看来,早年的某个举动,在未来某个时刻真的会影响人生的轨迹吧!

1.文档说明

需满足的需求:地理信息,设备信息,建筑物信息等在地图上集中展示。

本文档主要记录此次用到的一些开源地理信息解决方案的集合,使用过程等。

2.文档内容

架构图:
架构图

2.1 GeoServer - 地图服务

GeoServer

从官网下载免安装包后,运行命令:

geoserver-x.x.x/bin/startup.sh

打开默认网址http://localhost:8080/geoserver,默认端口8080可能被占用,需要自行修改。

  • workspaces:工作区
  • styles:样式
  • stores:数据存贮
  • layers:图层
  • layergroups:图层集

发布新的store时,选择字符集为utf-8,加入新的shape文件后,在数据页,一定要点击计算地图显示范围,即从数据中计算Computefrom native bounds自动计算并显示Lat/Lon Bounding Box边框数据。

部署服务器时,可直接拷贝本地 geoserver-x.x.x文件夹部署运行即可。注意自动启动与后台服务注册。

参考:

GeoServer基础教程(三):部署发布Shapefile地图数据

发布shape图层为服务

2.2 OpenLayers - 前端渲染引擎

OpenLayers OverView:

OpenLayers makes it easy to put a dynamic map in any web page. It can display map tiles「OSM, Bing, MapBox, Stamen, and any other XYZ source」, vector data「from GeoJSON, TopoJSON, KML, GML, Mapbox vector tiles」 and markers loaded from any source. OpenLayers has been developed to further the use of geographic information of all kinds. It is completely free, Open Source JavaScript, released under the 2-clause BSD License (also known as the FreeBSD).

官方实例

基本上支持所有地图资源,除了overview中介绍的,还包括百度地图、天地图等国内地图,还可以加载自发布的地图服务,如ArcGIS Server。

2.3 地图资源

利用ArcMap手绘,需要绘制室内地图(体现三维效果),自定义路径规划

2.4 地图编辑器

ArcMap 制图,请自行学习。

2.5 2.5d伪三维效果

项目中需要用到 2.5d 伪三维效果,经过搜索,找到一些参考「GeoServer官方 sld文档」、「通过sld样式拉伸渲染为伪3d建筑的地图效果通过geoserver发布」、「Geoserver伪三维SLD文件配置」、「SLD 样式 之GeoServer中设计2.5维建筑物」。

uDig自定义图层 style
可将ArcMap制作的 shapeFile 文件编辑出想要的样式。

uDig支持点线面的编辑。导入shp格式文件后,选择change style,制作自己想要的样式,然后导出xml代码到GeoServer的styles中。

2.6 GeoJson

{"type": "Feature","geometry": {"type": "Point","coordinates": [125.6, 10.1]},"properties": {"name": "Dinagat Islands"}
}

载入 GeoJson 属性图层,更灵活的展示数据,也可从后台拼接这种数据格式。

GeoJson加入Feature图层: 转换,工具, 使用

多层地图,及属性图层叠加

shape to geoJson

geoJson 生成

2.7 集成到工程中

因为我是按照 教程 用nodejs来开发前端的,所以涉及一个集成的问题。如果是直接引用openLayers的资源则不存在这个问题

前端开发完成,如果需要写成动态,可能需要集成到其他工程中。

如我集成到 Java Web 中,在 Tomcat 中发布,虽然官方只用了一句copy the dist/ folder to your production server.说可以把生成的源码直接copy到web服务中,但由于jsp的特点,需要局部改造。所幸改造难度不大,需要注意的是切换地图时,需要先清空map容器,如下

$("#map").html("")

因为 html 标签是复用的,map容器需要先清空。然后再重新请求地图资源。

2.8 商业解决方案

在调研过程中,发现一家专业制作室内地图的公司,记录下来备用。

公司名为蜂鸟云(不是那个送外卖的哦),经过与商务沟通,了解到他们是按面积阶梯性收费,综合起来也不是很贵,而且满足离线部署这一项很符合我们的业务需求,但由于地图数据不受自己的控制,最终舍弃了这个方案。(这不属于商业秘密吗?如有违反,请联系本人侵删。)

需求方提供标准CAD文件,由他们绘制底图,这个就是按面积收费的;地图数据部署在云服务上,可以无限次编辑,下载,离线部署。

哦,说一下他们的地图坐标系,支持坐标系转换,支持大部分坐标系。室外是地理坐标系 WGS 84(4326),室内是投影坐标系。

商业上来说,这家服务真的可以考虑。

以上,为在项目开发中用到的 开源GIS解决方案的大体框架。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/399333.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

TOJ---2621--全排列

这个方法 是超神教我的 --- 全排列的方法太多种了 感觉他这种写的 字典序法 是最简单的 最容易让人接受的 而且在时间复杂度和空间复杂度上 都可以让人接受 我待会将具体每步做法简要写一下...-> 我现在被一个 三角形给 深深烦死了 。。。。。。贴个代码 来 缓解下..... 1 …

月份第一天_4月份的第一天,全省迎来晴暖天气~

2019年4月1日早上好北方新农村准时准点播报~▼▼▼今天是2019年4月1日星期一辽宁的天气小孩的脸说变就变上周末突如其来的一场雪,让辽宁大部分地区“措手不及”已经开始回升的温度瞬间跌落到谷底。但不管怎样,随着节气的更迭,冷空气终究大势已…

Windows系统下搭建Git本地代码库

近由于工作需要,要把工作代码做一下版本管理。工作代码也不方便放到github上,也不想付费建私密库,公司也没几个人,所以就想着搭建一个本地Git版本库,来做版本管理。搭建过程如下。 系统环境:Dell OptiPlex…

mac 下终端 操作svn命令 以及出现证书错误的处理方法

首先,转载地址:http://hi.baidu.com/zhu410289616/item/eaaf160f60eb0dc62f4c6b0e 还有一个地址:http://www.cnblogs.com/heiniuhaha/archive/2011/11/11/2245594.html 解决证书出错,错误见下图: 解决方法:…

文件过滤_jmeter(七)-BeanShell对数据过滤保存文件

在测试中有时需要对参数化数据进行过滤,实现保存到一个文件。如:某项目,从数据库查询到10万条用户数据,因为有的用户没有权限或者过期了,需要对这份数据筛选出来能正常使用的用户。如下使用beanshell实现此功能。原文件…

如何在mac系统下搭建git服务器

https://zhidao.baidu.com/question/1823748339128066228.html 第一步,下载gitblit http://gitblit.com/ 这里当然是选择linux/osx的版本。下载下来是一个.tar.gz的压缩文件,我下载时最新版本是gitblit-1.7.1.tar.gz 第二步,配置gitblit 创建目录&…

【Lucene4.8教程之五】Luke

一、Luke基本内容 1、Luke简介 Luke可用于查看Lucene创建的索引,并对其进行基本操作。 2、创建Luke (1)从Github上下载源文件 https://github.com/tarzanek/luke (2)解压文件后,打开DOS窗口,进入…

计算mView在view周围的位置

为什么80%的码农都做不了架构师?>>> /*** 计算mView在view周围的位置** param view** param mMargin mView与view或边界的间距* * titleBarHeight 标题栏的高度* mContext当前的Activity*/private void aroundView(View view, float mMargin) …

c++模板类静态成员变量_一文讲透父子类中静态变量,成员变量初始化顺序原理...

推荐:从面试到入职到离职,我在B站工作的30天时光 爱了爱了,Alibaba顶级MySQL调优手册到手,加薪妥了 爱了爱了,Spring Cloud Alibaba内部微服务架构笔记真的太牛了 本文主要是想分析一下静态变量和成员变量的初始化顺序…

Cocos2D将v1.0的tileMap游戏转换到v3.4中一例(八)

大熊猫猪侯佩原创或翻译作品.欢迎转载,转载请注明出处. 如果觉得写的不好请告诉我,如果觉得不错请多多支持点赞.谢谢! hopy ;) 回到Xcode中,新建一个EndLayer类,继承于CCNode.因为我们得在其类方法中创建实例变量,所以我们得建立几个实例变量的属性.打开EndLayer.h文件,修改内…

转:(图文并茂)SQL Server 2005详细安装过程及配置

1、安装过程 注:在Windows7系统下安装SQL Server 2005时,可能会多次遇到提示兼容性问题的情况,此时不用理会,直接点击“运行程序”即可。首先解压下载到的SQL Server 2005压缩文件,如果还没有这个文件,可以…

2019年java安装步骤_win10的JAVA(jdk)2020年最新版安装教程心得

想学安卓反向解析,前期工作就把我折腾得够呛,java安装教程大多18年之前的,和现在的有一些不同,导致我按照网上的教程折腾了好几天都没安装成功,今天突然成功了,有点开心,迫不及待把自己的一些小…

蛋白质结构域的概念_Chapter1 蛋白质结构与功能2

本次回顾两大点:一、肽二、蛋白质结构————一、肽:概念:肽是由氨基酸通过肽键连接形成的线性分子。如上,该教学图涉及知识:1.肽键生成(最好能将反应式写出来)2.氨基酸残基residue3.肽的方向性N —> C4.肽命名5.肽…

css中的em 简单教程 -- 转

先附上原作的地址: https://www.w3cplus.com/css/px-to-em 习惯性的复制一遍~~~~ -------------------------------我是分界线----------------------------------- 什么是弹性布局? 用户的文字大小与弹性布局 用户的浏览器默认渲染的文字大小是“16px”&#xff0c…

ASP.NET MVC下的四种验证编程方式[续篇]

ASP.NET MVC下的四种验证编程方式[续篇] 原文:ASP.NET MVC下的四种验证编程方式[续篇]在《ASP.NET MVC下的四种验证编程方式》一文中我们介绍了ASP.NET MVC支持的四种服务端验证的编程方式(“手工验证”、“标注ValidationAttribute特性”、“让数据类型实现IValida…

axios 配置loading_用Axios Element 实现全局的请求 loading

Kapture 2018-06-07 at 14.57.40.gif背景业务需求是这样子的,每当发请求到后端时就触发一个全屏的 loading,多个请求合并为一次 loading。现在项目中用的是 vue 、axios、element等,所以文章主要是讲如果使用 axios 和 element 实现这个功能。…

请求的内容似乎是脚本,因而将无法有静态文件处理程序来处理(http error 404.17、0x80070032、IIS7)...

由于工作需要,需要在在一台新的服务器上迁移 .Net Framwork 4.0的Web项目 环境:Windows Server 2008 SP2,IIS 7,.Net FrameWork 4.0,Classic 由于项目正常在老服务器上运行,所有直接将项目拷贝过来部署在IIS上面,配置后链接字符串等等之后访问…

ZooKeeper管理分布式环境中的数据

Reference: http://www.cnblogs.com/wuxl360/p/5817549.html 本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它涉及到了paxos算法、Zab协议、通信协议等相关知 识,理解起来比较抽象所以还需要借助一些应用场景&#xff0…

企业级应用架构(三)三层架构之数据访问层的改进以及测试DOM的发布

在上一篇我们在宏观概要上对DAL层进行了封装与抽象。我们的目的主要有两个:第一,解除BLL层对DAL层的依赖,这一点我们通过定义接口做到了;第二,使我们的DAL层能够支持一切数据访问技术,如Ado.net,EF,linq To Sql&#x…

ctr多少正常_亚马逊广告ctr多少才算合格,如何提升亚马逊CTR

亚马逊广告ctr多少才算合格,如何提升亚马逊CTR很多亚马逊卖家并不重视点击率,其实点击率和转化率是同样重要的。好的点击率可以提升产品listing的流量,间接影响转化,促进销量。一般来说亚马逊点击率多少算正常呢?CTR全…