GIS地理信息处理相关。
1. GIS软件工具
在GIS数据处理时,我们最熟悉的就是ArcGIS
了,它的功能十分强大,但同时对电脑性能要求也挺高,而且很多功能我们其实用不上;其他类似的GIS软件还有:GeoDa、LocaSpace图新地球、uDig、OpenJump、QGIS、gVSIG、Whitebox GAT、SAGA GIS、GRASS GIS、MapWindow、ILWIS、Diva GIS
。
很多时候,我们需要根据自身需要定制一个地图编辑和查看工具,下面是C++制作GIS软件的建议:
要使用C++制作WebGIS,通常需要借助开源库和框架来实现。以下是一些常用的开源库和框架:
1. GDAL:用于读取和处理地理空间数据。
2. PROJ:用于地理空间坐标转换。
3. OGR:基于GDAL的地理空间数据格式转换库。
4. MapServer或GeoServer:用于发布WebGIS服务的开源GIS服务器。
5. Leaflet或OpenLayers:用于制作WebGIS前端地图展示的JavaScript库。
6. Qt:用于C++应用程序开发的跨平台框架,其中包括QGIS,一个开源的桌面GIS软件。
7. CGAL:用于计算几何和空间算法的开源计算几何算法库。
以上这些开源库和框架,可以帮助你开发出高效、易用的WebGIS应用程序。当然,还需要具备C++编程、Web开发和地理空间数据处理的基本知识。
2. MapServer服务器
官方地址:https://mapserver.org/
MapServer与GeoServer的区别:https://www.osgeo.cn/tutorial/k8b24
下载地址:https://ms4w.com/
(选择zip或exe)
解压后,以管理员权限打开cmd并执行apache-install.bat
:
浏览器输入http://localhost/或者http://127.0.0.1/
将可以看到MS4W的页面。这样mapserver就安装成功了:
测试mapserver是否支持WMS服务,使用cmd命令行进入MS4W的安装路径(如D:\ms4w\Apache\cgi-bin),执行mapserv -v
3. QGIS桌面软件
QGIS是一个用户界面友好的桌面地理信息系统,可运行在Linux、Mac和Windows等平台之上。QGIS项目开始于2002年5月,是基于跨平台的图形工具Qt软件包,采用C++语言开发的一个GIS软件。
关于ArcGIS与QGIS的区别,这篇文章有介绍:http://t.csdn.cn/t7GAR
QGIS下载地址:https://www.qgis.org/zh-Hans/site/
QGIS介绍:https://www.osgeo.cn/page/qgis
QGIS教程:https://www.osgeo.cn/qgis-tutorial/
QGIS文档:https://docs.qgis.org/3.28/zh-Hans/docs/user_manual/introduction/getting_started.html#downloading-sample-data
有各平台版本的下载(这里我选择Win 3.28):
可以直接安装发行版(https://zhuanlan.zhihu.com/p/370633306
),如下:
也可通过OSGeo4W来通过网络安装并管理版本(http://t.csdn.cn/Ko0HL
),如下:
3.28发行版安装好后启动界面如下:
QGIS加载csv数据
新建工程,选择添加分割文本图层:
设置相关属性后添加:
效果如下:
插件相关:
加载图片:Freehand raster georeferencer
支持MapServer:Mapserver Export / GeoCat Bridge
QGIS不仅可以通过桌面编辑和展现各类GIS数据,还可以通过QGISServer将编辑好的矢量数据发布成标准的OGC服务,然后通过OpenLayers等客户端访问这些数据。
4. PostGIS数据库
官方地址:https://postgis.net/
PostgreSQL安装:https://zhuanlan.zhihu.com/p/62157728
PostGIS空间数据库安装:https://zhuanlan.zhihu.com/p/353414054
有了空间数据库之后,就不再需要专门的GIS数据引擎(GIS Data Engine)去处理和操作空间数据了,应用程序只需要通过SQL语言就能轻松地处理空间数据。
普通数据库拥有字符串(string)、数值(number)和日期(date)这些数据类型,空间数据库添加了额外的数据类型(空间数据类型)以用于表达地理特征(geographic features),如边界(boundary)、维度(dimension)和形状(shape)。可以用来判断如A点是否在B边界内等问题。
PostGIS是PostgreSQL的一个插件,通过向PostgreSQL添加对空间数据类型、空间索引和空间函数的支持,将PostgreSQL数据库管理系统转换为空间数据库。
PostgreSQL是一个强大的对象关系数据库管理系统(ORDBMS)。
自GIS软件被首次开发以来,Shapefile(和其他文件格式诸如Esri File Geodatabase、GeoPackage)一直是空间数据存储和交互的标准数据格式。
PostgreSQL安装地址:https://www.enterprisedb.com/downloads/postgres-postgresql-downloads
这里我选择15.2,默认安装即可,然后设置超级管理员的密码,端口5432。
安装PostgreSQL安装完成后,提示运行Stack Builder。通过该工具安装PostGIS。Stack Builder运行后,选择安装目标软件为PostgreSQL 15 on port 5432
。然后在安装程序选择对话框中选择PostGIS 3.3
。(这里如果不能安装PostGIS,也可以去PostGIS官网下载PostGIS进行安装)。
然后Stack Builder会下载PostGIS 3.3的安装程序。下载后就会安装,在设置安装组件时,最好选择”Create spatial database”,以便在创建数据库时可以以此作为模板。对于其他步骤的设置都选择默认值即可。
安装完成后,打开图形管理工具pgAdmin:
输入密码就可以进入了:
给这个pgAdmin设置中文,首先打开Application Stack Builder,然后安装语言包:
进入pgAdmin中设置即可:
具体的使用可以参考:https://www.runoob.com/postgresql/postgresql-tutorial.html
5. OpenLayers(JS)浏览器客户端
官方地址:https://openlayers.org/
开发入门:https://zhuanlan.zhihu.com/p/341896668
vue项目:https://gitee.com/shtao_056/vue-openlayers
Openlayers可以访问服务端(如MapServer、QGISServer
)发布的数据,最终实现地图的编辑、存储、发布和显示功能。
以上。
今天的文章【C++】基础:开源GIS平台开发基础(MapServer+QGIS+PostGIS+OpenLayers)分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/83982.html