scheme_create.py
3.9 KB
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
# coding=utf-8
#author: 4N
#createtime: 2021/9/16
#email: nheweijun@sina.com
import uuid
from ..models import TileScheme,db
from app.util.component.ApiTemplate import ApiTemplate
import datetime
import json
class Api(ApiTemplate):
api_name = "创建方案"
def process(self):
# 返回结果
res = {}
res["result"] = False
try:
# 业务逻辑
data = self.para
# extent = [float(x) for x in data.get("extent").split(",")] if data.get("extent") else [0,0,0,0]
# top_left = [float(x) for x in data.get("top_left").split(",")] if data.get("top_left") else [0, 0]
parameter = {}
for l_dict in json.loads(data.get("levels")):
parameter[str(l_dict["level"])] = {"resolution":l_dict["resolution"],"scale":l_dict["scale"]}
parameter["cols"] = int(data.get("cols",256))
parameter["rows"] = int(data.get("rows",256))
parameter["dpi"] = int(data.get("dpi",96))
parameter["wkt"] = data.get("crs_wkt")
parameter["x"] = eval(data.get("top_left").split(",")[0])
parameter["y"] = eval(data.get("top_left").split(",")[1])
guid = uuid.uuid1().__str__()
tile_scheme = TileScheme(
guid = guid,
name = data.get("name"),
alias = data.get("alias"),
description = data.get("description"),
crs = data.get("crs"),
crs_wkt = data.get("crs_wkt"),
extent = data.get("extent"),
top_left = data.get("top_left"),
# ymin = extent[1],
# xmax = extent[2],
# ymax = extent[3],
# origin_x = top_left[0],
# origin_y = top_left[1],
levels = json.dumps(json.loads(data.get("levels"))),
dpi = int(data.get("dpi",96)),
rows = int(data.get("rows",256)),
cols = int(data.get("cols",256)),
update_time = datetime.datetime.now(),
parameter=json.dumps(parameter)
)
db.session.add(tile_scheme)
db.session.commit()
res["data"] = guid
res["result"] = True
except Exception as e:
db.session.rollback()
raise Exception("参数填写错误!")
return res
api_doc = {
"tags": ["方案接口"],
"parameters": [
{"name": "name",
"in": "formData",
"type": "string"},
{"name": "alias",
"in": "formData",
"type": "string"},
{"name": "description",
"in": "formData",
"type": "string"},
{"name": "crs",
"in": "formData",
"type": "string"},
{"name": "crs_wkt",
"in": "formData",
"type": "string"},
{"name": "extent",
"in": "formData",
"type": "string"},
{"name": "top_left",
"in": "formData",
"type": "string"},
{"name": "rows",
"in": "formData",
"type": "string"},
{"name": "cols",
"in": "formData",
"type": "string"},
{"name": "dpi",
"in": "formData",
"type": "string"},
{"name": "levels",
"in": "formData",
"type": "string"},
# {"name": "parameter",
# "in": "formData",
# "type": "string"},
],
"responses": {
200: {
"schema": {
"properties": {
}
}
}
}
}