十分钟GIS——geoserver+postgis+udig从零开始发布地图服务
1数据库部署
1.1PostgreSql安装
- 下载到安装文件后(postgresql-9.2.19-1-windows-x64.exe),双击安装。
指定安装目录,如下图所示
指定数据库文件存放目录位置,如下图所示
1.2Postgis安装
完成安装后,会提示安装postgis2.0 forpostgres9.2的空间数据库扩展。如下图所示,进行下载,我们这里已经提前下载下来的,直接点击取消。
双击下载后的文件(postgis-bundle-pg92x64-setup-2.1.8-1.exe),开始安装,单击I Agree
选择复选框Create spatial database,单击next
指定安装路径,如下图
- 输入安装postgresql时的密码,其他默认,选择“next”完成安装。
对空间模板数据库命名,默认名称,单击next,直到完成安装。

1.3创建空间数据库
完成postgis安装后,连接pgAdmin III,查看是否存在数据库postgis_21_sample,如果未创建成功,按下面操作执行:
- 在开始菜单中单击psql,打开psal,

- 输入命令行,创建数据库postgis_21_sample,此时数据库为普通数据库
create database postgis_21_sample;
- 转到新建的数据库postgis_21_sample
\c postgis_21_sample
- 运行添加扩展语句
cCREATE EXTENSION postgis;
CREATE EXTENSION pgrouting;
CREATE EXTENSION postgis_topology;
CREATE EXTENSION fuzzystrmatch;
CREATE EXTENSION postgis_tiger_geocoder;
CREATE EXTENSION address_standardizer;
扩展后的数据库即为空间数据库如下图,比普通库增加了5个扩展,3个架构及很函数。
执行命令根据模板库创建空间库
CREATE DATABASE test TEMPLATE= postgis_21_sample;
或者也可以通过pgAdmin III创建空间数据库
1.4数据入库
在开始菜单中单击运行PostGIS Shapfile and DBF loader
单击View connetion details
输入数据库连接信息,如下图

在log window中会提示连接成功

单击Add File,选择需要导入的数据,可以同时选择多个文件
单击open,添加到import list中
选择数据导入模式,默认为Create,
在SRID列下方对应输入导入文件坐标系信息,wgs84坐标系为4326,CGCS2000坐标系为4490
单击Options, 在options的字符集设置为GBK.

最后单击Import命令,开始进行数据导入。
shp导入错误及其解决方案
错误1:如果改成gbk仍然提示这种字符编码问题,options编码改成gb18030,即可不报错。
错误:2:dbffile (.dbf) can not be opened.
解决:shp文件路径不能太深,且路径名称不能有中文.
错误3 :postgis导出shp的中文乱码:
在环境变量中添加:PGCLIENTENCODING=GBK即可。正常导出无乱码。
2Geoserver环境部署
1.1JAVA安装配置
这里就不详细介绍安装过程,需要配置的环境变量有说如下:
JAVA_HOME C:\Program Files\Java\jdk1.8.0_121 (具体路径以实际安装为准)
Path %JAVA_HOME%\bin;%JAVA_HOME%\jre\bin;
CLASSPATH ..;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
1.2Tomcat部署
下载压缩包后,直接解压放置在任意目录下,且保证目录中无中文名称,
接下来开始配置环境变量:
TOMCAT_HOME=D:\apache-tomcat-9.0.0.M18
CATALINA_HOME=D:\apache-tomcat-9.0.0.M18
CATALINA_BASE=D:\apache-tomcat-9.0.0.M18
Classpath=%TOMCAT_HOME%\lib\servlet-api.jar;
Path=%CATALINA_HOME%\bin;
至此,配置工作完成!打开bin文件夹,双击startup.bat, 启动tomcat,打开浏览器,输入http://localhost:8080 出现Tomcat的网页,证明安装并配置成功!

1.3Geoserver部署
将Geoserver的war压缩包复制到tomcat的webapps目录下,在Tomacat的bin目录下,点击startup.bat文件启动tomcat。启动tomcat时上边复制在webapps文件夹下的Geoserver.war包会自动解压。
启动完成后,在浏览器输入“http://localhost:8080/geoserver/web/”即可打开geoserver的首页,这时候使用账号密码登陆,账号为:admin,密码为geoserver

1.4udig配置地图
1添加地图文件
打开udig后打开图层Layer->Add

选择数据源,这里我们选择PostGIS,单击next
输入数据库连接参数,单击next
选择连接数据,单击list,在列表中选择需要加载的图层,单击finish,加载数据。

2样式编辑
加载数据文件后,在Layers下面右键需要配置样式的图层,点击Change Style,即可打开Style Editor编辑窗口,进行样式编辑


3地图服务发布
3.1矢量地图服务发布
1创建工作区
单击数据栏下的【工作区】,进入工作区界面,选择单击【添加新的工作区】

分别输入工作区的名称、URL,设置为默认工作区,单击提交,完成工作区的创建

2添加数据
在数据栏下单击【数据存储】,进入数据存储界面,单击【添加新的数据存储】
选择数据源类型,这里我们选择PostGIS
分别输入各项连接参数,如下图,*表示为必填参数。
单击保存,数据库中的图层即展示在界面中,如下图

3添加地图样式
在数据栏下单击【Styles】,进入Styles界面,单击【Add a new style】
在newe style界面,分别填写style的名称、工作区、加载style的格式、加载style文件。
单击【Validate】验证,如果在界面上端提示NO Validation errors,则表明验证通过,单击【提交】完成Styles加载。
4服务发布
单击数据栏下的【图层】,进入图层界面,单击【添加新的资源】
选择已经添加的数据,如下图

选择单击对应的图层后面的【发布】命令,进入编辑图层界面
在编辑图层界面中,定义SRS,计算边框范围
单击【发布】,设置发布图层对应的Style,单击保存。

4创建图层组
单击数据栏的【图层组】命令,进入图层中界面,选择添加新图层组

如下图,分别填写参数名称、工作区、坐标参考系、计算边界、添加以发布的图层,最后保存

3.2影像地图服务发布
在Geoserver中的ImageMosaic插件可以实现将两个或者两个以上的多幅影像进行镶嵌,并使坐标相同的多幅影像重叠成一个连续图象。
- 数据的准备
ImageMosaic不支持Erdas Image格式,需要.img格式进行格式转换
2.发布流程参考矢量地图服务发布,资源选择影像资源即可
相关文章:
十分钟GIS——geoserver+postgis+udig从零开始发布地图服务
1数据库部署 1.1PostgreSql安装 下载到安装文件后(postgresql-9.2.19-1-windows-x64.exe),双击安装。 指定安装目录,如下图所示 指定数据库文件存放目录位置,如下图所示 指定数据库访问管理员密码,如下图所…...
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Span组件
鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Span组件 一、操作环境 操作系统: Windows 10 专业版、IDE:DevEco Studio 3.1、SDK:HarmonyOS 3.1 二、Span组件 鸿蒙(HarmonyOS)作为Text组件的子组件࿰…...
Leetcode—42. 接雨水【困难】
2024每日刷题(112) Leetcode—42. 接雨水 空间复杂度为O(n)的算法思想 实现代码 class Solution { public:int trap(vector<int>& height) {int ans 0;int n height.size();vector<int> l(n);vector<int> r(n);for(int i 0; …...
[Python] opencv - 什么是直方图?如何绘制图像的直方图?如何对直方图进行均匀化处理?
什么是直方图? 直方图是一种统计图,用于展示数据的分布情况。它将数据按照一定的区间或者组进行划分,然后计算在每个区间或组内的数据频数或频率(即数据出现的次数或占比),然后用矩形或者柱形图的形式将这…...
ppi rust开发 python调用
创建python的一个测试工程 python -m venv venv .\venv\Scripts\activatepip install cffi创建一个rust的lib项目 cargo new --lib pyrustlib.rs #[no_mangle] pub extern "C" fn rust_add(x: i32, y: i32) -> i32 {x y }Cargo.toml [package] name "p…...
网站后端开发 thinkphp6 入门教程合集(更新中)
thinkphp6 入门(1)--安装、路由规则、多应用模式 thinkphp6 入门(1)--安装、路由规则、多应用模式_软件工程小施同学的博客-CSDN博客 thinkphp6 入门(2)--视图、渲染html页面、赋值 thinkphp6 入门&#x…...
Web前端框架-Vue(初识)
文章目录 web前端三大主流框架**1.Angular****2.React****3.Vue**什么是Vue.js 为什么要学习流行框架框架和库和插件的区别一.简介指令v-cloakv-textv-htmlv-pre**v-once**v-onv-on事件函数中传入参数事件修饰符双向数据绑定v-model 按键修饰符自定义按键修饰符别名v-bind(属性…...
配置dns服务的正反向解析
服务端IP客户端IP网址192.168.153.137192.168.153.www.openlab.com 1:正向解析 1.1关闭客户端和服务端的安全软件,安装bind软件 [rootserver ~]# setenforce 0 [rootserver ~]# systemctl stop firewalld [rootserver ~]# yum install bind -y [rootnod…...
小白水平理解面试经典题目LeetCode 71. Simplify Path【Stack类】
71. 简化路径 小白渣翻译 给定一个字符串 path ,它是 Unix 风格文件系统中文件或目录的绝对路径(以斜杠 ‘/’ 开头),将其转换为简化的规范路径。 在 Unix 风格的文件系统中,句点 ‘.’ 指的是当前目录,…...
电力负荷预测 | 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM)
文章目录 效果一览文章概述源码设计参考资料效果一览 文章概述 电力系统负荷预测模型(Python线性回归、随机森林、支持向量机、BP神经网络、GRU、LSTM) 所谓预测,就是指通过对事物进行分析及研究,并运用合理的方法探索事物的发展变化规律,对其未来发展做出预先估计和判断。…...
YY调音台:音频后期处理
我从事影视后期处理的工作,主要负责音频、音效合成这块工作内容。在影视作品中,声音不仅仅是背景元素,它在叙事和创造情感氛围上发挥着至关重要的作用。我们的工作不仅要让听众听到声音,更要让他们通过声音感受到情感的波动和故事…...
一键部署一个监控系统hertzbeat
效果 特点 一站式监控告警通知,支持应用服务,数据库,操作系统,中间件,云原生,网络等。 易用友好,无需 Agent,全页面操作,鼠标点一点就能监控告警。 强大监控模版能力&…...
为电子表格嵌入数据库,Excel/WPS一键升级为管理系统
将Excel表格转化为管理系统,这款工具能够实现只需导入表格数据,即可自动生成相应的软件和APP。 表格办公的烦恼,有遇到吧? 对于具有一定规模的企业而言,各类表格如同繁星般众多,既有日常使用的常规表格&a…...
搜索与图论(一)(深搜,广搜,树与图的存储遍历,拓扑排序)
一、DFS 往深里搜,搜到叶子结点那里,回溯,到可以继续到叶子结点深搜的位置。 1、回溯一定要恢复现场 2、定义一个与当前递归层数有关的终止条件(题目要求的东西) 3、每层都用循环判断是否存在可以dfs的路 输出数字…...
【开源】基于JAVA+Vue+SpringBoot的停车场收费系统
目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 停车位模块2.2 车辆模块2.3 停车收费模块2.4 IC卡模块2.5 IC卡挂失模块 三、系统设计3.1 用例设计3.2 数据库设计3.2.1 停车场表3.2.2 车辆表3.2.3 停车收费表3.2.4 IC 卡表3.2.5 IC 卡挂失表 四、系统实现五、核心代码…...
DDoS攻击激增,分享高效可靠的DDoS防御方案
当下DDoS攻击规模不断突破上限,形成了 "网络威胁格局中令人不安的趋势"。专业数据显示,对比2022年上半年与2023年上半年,所有行业的DDoS攻击频率增加了314%。其中零售、电信和媒体公司遭受的攻击规模最大,三个垂直行业的…...
打卡今天学习的命令 (linux
1.1 cp - 复制文件或目录 cp source destination cp -r source_directory destination # 递归复制目录及其内容1.2 rm - 删除文件或目录 rm file rm -r directory # 递归删除目录及其内容1.3 mv - 移动/重命名文件或目录 mv source destination mv old_name new_name # 重…...
[C#]无法获取源 https://api.nuge t.org/v3-index存储签名信息解决方法
参考网上大部分方法错误,根本不起作用。正确方法是 C:\Users\你的用户名\AppData\Roaming\NuGet找到NuGet.Config打开,看到类似下面信息(可能不一样) <?xml version"1.0" encoding"utf-8"?> <co…...
FRP内网穿透如何避免SSH暴力破解(二)——指定地区允许访问
背景 上篇文章说到,出现了试图反复通过FRP的隧道,建立外网端口到内网服务器TCP链路的机器人,同时试图暴力破解ssh。这些连接造成了流量的浪费和不必要的通信开销。考虑到服务器使用者主要分布在A、B、C地区和国家,我打算对上一篇…...
Unity类银河恶魔城学习记录4-1,4-2 Attack Logic,Collider‘s collision excepetion源代码 P54 p55
Alex教程每一P的教程原代码加上我自己的理解初步理解写的注释,可供学习Alex教程的人参考 此代码仅为较上一P有所改变的代码【Unity教程】从0编程制作类银河恶魔城游戏_哔哩哔哩_bilibili Entity.cs using System.Collections; using System.Collections.Generic; u…...
利用最小二乘法找圆心和半径
#include <iostream> #include <vector> #include <cmath> #include <Eigen/Dense> // 需安装Eigen库用于矩阵运算 // 定义点结构 struct Point { double x, y; Point(double x_, double y_) : x(x_), y(y_) {} }; // 最小二乘法求圆心和半径 …...
深入浅出Asp.Net Core MVC应用开发系列-AspNetCore中的日志记录
ASP.NET Core 是一个跨平台的开源框架,用于在 Windows、macOS 或 Linux 上生成基于云的新式 Web 应用。 ASP.NET Core 中的日志记录 .NET 通过 ILogger API 支持高性能结构化日志记录,以帮助监视应用程序行为和诊断问题。 可以通过配置不同的记录提供程…...
Leetcode 3577. Count the Number of Computer Unlocking Permutations
Leetcode 3577. Count the Number of Computer Unlocking Permutations 1. 解题思路2. 代码实现 题目链接:3577. Count the Number of Computer Unlocking Permutations 1. 解题思路 这一题其实就是一个脑筋急转弯,要想要能够将所有的电脑解锁&#x…...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...
智能分布式爬虫的数据处理流水线优化:基于深度强化学习的数据质量控制
在数字化浪潮席卷全球的今天,数据已成为企业和研究机构的核心资产。智能分布式爬虫作为高效的数据采集工具,在大规模数据获取中发挥着关键作用。然而,传统的数据处理流水线在面对复杂多变的网络环境和海量异构数据时,常出现数据质…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
什么是VR全景技术
VR全景技术,全称为虚拟现实全景技术,是通过计算机图像模拟生成三维空间中的虚拟世界,使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验,结合图文、3D、音视频等多媒体元素…...
深度学习之模型压缩三驾马车:模型剪枝、模型量化、知识蒸馏
一、引言 在深度学习中,我们训练出的神经网络往往非常庞大(比如像 ResNet、YOLOv8、Vision Transformer),虽然精度很高,但“太重”了,运行起来很慢,占用内存大,不适合部署到手机、摄…...
系统掌握PyTorch:图解张量、Autograd、DataLoader、nn.Module与实战模型
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文通过代码驱动的方式,系统讲解PyTorch核心概念和实战技巧,涵盖张量操作、自动微分、数据加载、模型构建和训练全流程&#…...




