geoserver自动发布服务

python安装gsconfig库
附上python代码

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
46
# _*_coding:utf-8_*_
from geoserver.catalog import Catalog
from geoserver.support import JDBCVirtualTable, JDBCVirtualTableGeometry, JDBCVirtualTableParam

# 地图发布环境
ENVIRONMENT_PUBLISH = 'XXX_local'

# 城市名称
CITY = 'xixian'

# 年
YEAR = 2020

# 月
MONTH = 5

CONFIGURE = {
'XXX_local': {
'CITY': CITY,
'GEOSERVER_HOST': '1.1.1.1', # geoserver地址
'GEOSERVER_PORT': '8080', # geoserver端口
'USERNAME': 'admin', # geoserver用户名
'PASSWORD': '******', # geoserver密码
'DATABASE_MYSQL': 'mysql'
}
}

cat = Catalog('http://%s:%s/geoserver/rest/' % (
CONFIGURE[ENVIRONMENT_PUBLISH]['GEOSERVER_HOST'], CONFIGURE[ENVIRONMENT_PUBLISH]['GEOSERVER_PORT']),
CONFIGURE[ENVIRONMENT_PUBLISH]['USERNAME'], CONFIGURE[ENVIRONMENT_PUBLISH]['PASSWORD'])
store = cat.get_store(CONFIGURE[ENVIRONMENT_PUBLISH]['DATABASE_MYSQL'], CITY)
geom = JDBCVirtualTableGeometry('geom', 'LineString', '4326')
ft_name = 'line_speed_day_%s_%s' % (YEAR, MONTH)
epsg_code = 'EPSG:4326'
sql = '''SELECT a.line_id line_id,a.line_direction line_direction,AVG(line_speed) line_speed,b.shape geom FROM (SELECT * FROM data_line_speed_day WHERE line_year =%s AND line_month=%s) a LEFT JOIN (SELECT DISTINCT line_id,is_up,shape FROM line
WHERE YEAR =%s AND MONTH=%s) b ON a.line_id= b.line_id AND a.line_direction=b.is_up and b.shape is not null GROUP BY line_id,line_direction''' % (
YEAR, MONTH, YEAR, MONTH)
print sql
keyColumn = None
parameters = None

jdbc_vt = JDBCVirtualTable(ft_name, sql, 'false', geom, keyColumn, parameters)
ft = cat.publish_featuretype(ft_name, store, epsg_code, jdbc_virtual_table=jdbc_vt)
layer = cat.get_layer(ft_name)
layer.default_style = cat.get_style('stylefile')
cat.save(layer)

深夜纵有千言胆,天明必悔

1、总是钟情于一,难以自拔,这可能是我最大的可悲之处。
2、可能受制于眼界,困囿于自己,无法走出自己的圈子。
3、从未如此长时间的想念一个人这么久、这么频繁,每天每个小时,除了至亲。
4、时不时看到罗曼罗兰的英雄主义,我认为这种阐释很有道理,但是自己却没有深刻体会到。
5、这次身体的异样算是给自己敲响了警钟,体会到极致的孤独就是自己一个在医院,各种检查用尽,不知是否虚惊一场,未来是不是也这样。
6、从前排斥的东西,是否需要重新审视,因为我也知道那是在压抑自己,实际自己内心也无比渴望。
7、从前纵情挥霍的东西,现在也需要收敛抑或是改正了,真的不好。
8、昨天跟人说自己年纪大了,任何事还是悠着点,旁人听完笑说你才多大,不知安慰还是事实,但是三十而立的坎儿算是来了。
9、周末去和家人好好说说吧,毕竟这次疫情半年多没见面了,我决定摊牌了。
10、深夜纵有千言胆,天明必悔,所以我还是光天化日琢磨一下,除了白日做梦,其他的就很理性了。

前端VUE项目使用多线程10秒快速打包【附加打包失败解决案例】

如果前端VUE项目页面增多、引入文件剧增,或造成打包速度巨慢,作为前端是无法忍受的。
这是因为VUE项目默认打包插件是uglifyjs-webpack-plugin,属于单线程操作。
我们可以使用webpack-parallel-uglify-plugin插件模块,实现多线程并行式处理。
因此,现在需要先安装webpack-parallel-uglify-plugin,

1
npm i -D webpack-parallel-uglify-plugin

然后修改X\build\路径下的webpack.prod.conf.js文件
修改uglifyjs-webpack-plugin模块引入

1
const UglifyJsPlugin = require('uglifyjs-webpack-plugin');

1
const ParallelUglifyPlugin = require('webpack-parallel-uglify-plugin');

然后注释掉

1
2
3
4
5
6
7
8
9
new UglifyJsPlugin({
uglifyOptions: {
compress: {
warnings: false
}
},
sourceMap: config.build.productionSourceMap,
parallel: true
}),

添加以下语句就可以了

1
2
3
4
5
6
7
8
9
new ParallelUglifyPlugin({
cacheDir: '.cache/',
uglifyJS: {
output: {
comments: false
},
warnings: false
}
})

就此完毕!是不是很简单?打个包看看,打包速度是不是比以前提升好几倍,嘻嘻..

如果碰到VUE打包失败,出现下面的错误

1
UnhandledPromiseRejectionWarning: CssSyntaxError:

这个意思是说打包的CSS文件有非法字符,大部分是注释不规范造成的
我这里是因为CSS文件中误用 // 作为注释造成的,而 // 在SCSS文件中用是没问题的。

2019全2020初

今年真是忙的不行呀,暂且开个头。。。
呆在贵阳一个多月,一个人住着100多平的房子,每天单调的生活,明天飞回北京,想念想见的人,想见却不能相见的人(时间依然不能让我忘却,所以给自己3年的时间),想念北京的暖气。。。

为什么加班到现在,运维是个大坑货!!!

一套系统,本地运行的没问题,同样的安装流程却无法成功运行。
捣鼓了两周,终于在今天晚上搞清了所有问题的原因所在:
编码一定保持一致呀喂!
编码一定保持一致呀喂!
编码一定保持一致呀喂!
操作系统的编码应该是UTF-8,非得改成GBK,数据库编码应该时UTF-8,为什么都变成latin….,tomcat为什么不配置跨域呢。。。。
运维是个大坑货呀!!!MD,晚上运维的晚饭还是我请的,现在就想弄死他。。。。