GIS地理信息处理相关。

文章目录

  • 1. GIS软件工具
  • 2. MapServer服务器
  • 3. QGIS桌面软件
    • QGIS加载csv数据
  • 4. PostGIS数据库
  • 5. OpenLayers(JS)浏览器客户端

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++】9.GIS应用:开源GIS平台开发入门(MapServer+QGIS+PostGIS+OpenLayers)相关推荐

  1. [050] 微信公众平台开发入门视频教程已公布

    2014年4月26日晚8点.我在CSDN社区在线培训课堂解说了微信公众平台开发入门的相关知识.受到广大网友的一致好评.在此非常感谢大家的支持.课程结束后,非常多网友表示因为报名人数限制.暂时有事等原因 ...

  2. 微信公众平台开发入门

    微信公众平台开发入门 开发简介 公众号的分类 微信公众平台概述 微信公众平台和微信开放平台的区别 开发需知 开发模式 开始开发 开发中遇到的问题 开发简介 公众号的分类 我们平常在微信应用上会看到有很 ...

  3. 视频教程-微信公众平台开发入门-微信开发

    微信公众平台开发入门 订阅后,请点击此处观看大牛全套视频课程:课程播放页链接 价格可能因活动略有浮动 刘运强 ¥39.00 立即订阅视频课 订阅后:请点击此处观看视频课程 视频教程-微信公众平台开发入 ...

  4. 微信公众平台开发入门教程(图文)

    关键字:微信公众平台开发入门 作者:贝创工作室 原文: http://www.cnblogs.com/imaker/p/5491433.html 背景知识:微信公众平台的开发需要有一定的PHP基础知识 ...

  5. 基于php的微信公众平台开发入门实例

    作者:zbtree 这篇文章主要介绍了基于php的微信公众平台开发入门,实例分析了微信公众平台从注册.配置方法及接口代码的实现技巧,深入浅出.希望可以帮助大家快速入门. CSDN学院开设了系列直播&l ...

  6. Cordys BOP 4平台开发入门实战演练——会签流程建模开发

    关于会签 会签是指联合发文时,由各发文机关的领导共同签署文件. 会签是撰拟公文的过程中,主办单位主动与有关单位协商并核签的一种办文程序,一般当公文的内容涉及本单位的多个部门或与其他单位有关时,需要进行 ...

  7. 微信公众平台开发入门视频教程已发布

    2014年4月26日晚8点,我在CSDN社区在线培训课堂讲解了微信公众平台开发入门的相关知识,受到广大网友的一致好评,在此非常感谢大家的支持!课程结束后,很多网友表示由于报名人数限制.临时有事等原因, ...

  8. [050] 微信公众平台开发入门视频教程已发布

    2014年4月26日晚8点,我在CSDN社区在线培训课堂讲解了微信公众平台开发入门的相关知识,受到广大网友的一致好评,在此非常感谢大家的支持!课程结束后,很多网友表示由于报名人数限制.临时有事等原因, ...

  9. 微信公众平台开发入门教程[2019版]

    关键字:微信公众平台开发 作者:方倍工作室 在这篇微信公众平台开发教程中,我们假定你已经有了PHP语言程序.MySQL数据库.计算机网络通讯.及HTTP/XML/CSS/JS等基础. 我们将使用微信公 ...

最新文章

  1. 将数字字符串格式化为指定长度
  2. 用python语言调试程序你用的平台是_Python 程序如何高效地调试?
  3. kotlin 判断数字_Kotlin程序检查数字是偶数还是奇数
  4. 今天刚开通博客,很开心
  5. php在html里面的位置,关于script在html中的摆放位置解析
  6. Linux Kernel ‘mp_get_count()’函数本地信息泄露漏洞
  7. 计算圆弧与矩形相交_【技术】新型七层矩形卷边工艺实践
  8. 网页性能优化{雅虎[转载]}
  9. Linux内核开发_3_busybox
  10. prthon日期型、字符串、数值、时间戳相互转换
  11. 法国在华企业名单,坚决抵制!
  12. 禁用win10系统的Cortana小娜进程,笔记本散热风扇冷静了
  13. Linux发行版之间有什么区别?
  14. 【学习笔记】NOIP爆零赛8
  15. 发现一个推特前端替代网站,可以直接浏览推特用户发布的内容。
  16. java-net-php-python-jsp学生党团管理信息系统2020演示录像计算机毕业设计程序
  17. [Qt]QMainWindow
  18. csdn分类专栏使用指南
  19. 微信聊天记录导出及年度报告软件使用方法
  20. 使用python 自动给微信好友发送消息 pyautogui库下载

热门文章

  1. GUI编程—欢迎来到PyQtGraph-中文版(中)!
  2. 如何更新npm和nodejs到最新版本?
  3. MATLAB随机森林回归模型
  4. 618 都疯了吗?这些书居然都不到半价!
  5. 交易系统处理性能关键指标
  6. 一加7t人脸识别_一加7T深度测评:它体现了最佳的技术价值吗?
  7. 解析单总线协议(1-wire)
  8. mysql日期对应java类型_Mysql与Java日期类型
  9. 树莓派 配置USB麦克风声卡
  10. 【运维】第四节 Prometheus 配置完全手册