Geoserver(一 安装)
本文最后更新于:2023年11月30日 下午
一、什么是GeoServer
用于专门分享地理空间数据的开源服务器
二、安装
安装环境需要Java 推荐安装JDK 华为JDK镜像
下载TomCat TomCat官方网站 Apache Tomcat® - Welcome!
Tomcat简单的说就是一个运行JAVA的网络服务器,底层是Socket的一个程序,它也是JSP和Serlvet的一个容器。
JSP(JavaServer Page):JSP是一种Java servlet,主要用于实现Java web应用程序的用户界面部分。JSP通过网页表单获取用户输入数据、访问数据库及其他数据源,然后动态地创建网页。
Servlet: Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 HTTP 服务器上的数据库或应用程序之间的中间层。
使用 Servlet,您可以收集来自网页表单的用户输入,呈现来自数据库或者其他源的记录,还可以动态创建网页。
下载Geoserver
三、配置
- Java、TomCat、GeoServer的版本匹配问题 参考如下,三者的安装版本必须要匹配,不然容易出问题
Java环境变量的配置
- 系统变量
- 系统变量中Path
TomCat安装
- 一路Next
GeoServer安装
- Windows installer.exe文件安装 (不推荐)
- 通过war包导入TomCat安装(推荐)
- 将war包放入tomcat
- 运行bin/startup.bat
- 内部网址:localhost:端口号/geoserver
- 需要注意Geoserver和Java以及Tomcat版本的匹配问题
- 测试版本:
- Tomcat 9
- Java 8
- Geoserver 2.22.1
四、遇到的问题
运行startup.bat程序秒退,服务不能成功启动
- 解决方法
- 检查环境变量是否配置好 控制台输入 java、Java -version、javac测试
- 检查Java JDK、TomCat、GeoServer版本是否对应 e.g. JDK8 TomCat8
- 解决方法
运行startup.bat中文乱码问题
windows下的cmd的默认编码是GBK编码,Tomcat控制台默认输出设置为UTF-8编码
解决方法
(方式一)修改CMD命令行的编码格式为UTF-8
(方式二)将tomcat控制台日志输出编码格式更改为GBK,修改tomcat根目录下conf/logging.properties文件中的ConsoleHandler.encoding=utf-8,这种方式能解决cmd控制台中文乱码,但
不建议使用。因为更改了tomcat默认编码,如果我们使用idea启动tomcat,idea的默认编码不是GBK,就会同样产生idea控制台下tomcat乱码问题
跨域问题
- 在Vue中设置跨域
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45/*
vue网页
http://127.0.0.1:5013
Geoserver界面
http://127.0.0.1:8080/geoserver
WMS服务地址
http://127.0.0.1:8080/geoserver/ne/wms?service=WMS&version=1.1.0&request=GetMap&layers=ne%3Aworld&bbox=-180.0%2C-90.0%2C180.0%2C90.0&width=768&height=384&srs=EPSG%3A4326&styles=&format=application/openlayers
流程:
vue页面 http://127.0.0.1:5013
-->请求 http://127.0.0.1:5013/api/geoserver/topp/wms?transparent=true&format=image%2Fpng&service=WMS&version=1.1.1&request=GetMap&styles=&layers=topp%3Astates&bbox=-90%2C0%2C-67.5%2C22.5&width=256&height=256&srs=EPSG%3A4326
-->代理到 http://localhost:8080/geoserver/topp/wms?transparent=true&format=image%2Fpng&service=WMS&version=1.1.1&request=GetMap&styles=&layers=topp%3Astates&bbox=-90%2C0%2C-67.5%2C22.5&width=256&height=256&srs=EPSG%3A4326
中间过程:
http://127.0.0.1:5013/api/
-->
http://127.0.0.1:8080
*/
//vite.config.js
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import cesium from 'vite-plugin-cesium'
// https://vitejs.dev/config/
export default defineConfig({
plugins: [vue(),cesium()],
server: {
port:5013,//设置服务启动端口号,是一个可选项,不要设置为本机的端口号,可能会发生冲突
open:true,//是否自动打开浏览器,可选项
cors:true,//允许跨域。
// 设置代理
proxy: {
// 将请求代理到另一个服务器
'/api': {
target: 'http://127.0.0.1:8080',//这是你要跨域请求的地址前缀
changeOrigin: true,//开启跨域
rewrite: path => path.replace(/^\/api/, ''),//去除前缀api
}
}
}
})1
2
3
4
5
6
7
8
9
10//加载WMS服务
const wms = new Cesium.WebMapServiceImageryProvider({
url:
"/api/geoserver/topp/wms",
layers: "topp:states",
parameters: {
transparent: true,
format: "image/png",
},
})