Commit a07a7af0 by convivae

修改图像文档api以及后端代码

parent 17689ef5
......@@ -18,3 +18,8 @@ class DevelopmentConfig(object):
'username': 'admin',
'password': 'admin'
}
# MONGODB_SETTINGS = {
# 'host': 'localhost',
# 'port': 27017,
# }
......@@ -99,42 +99,42 @@ def create_images(image_list):
return res
# 图层实体
class LayerEntity(db.EmbeddedDocument):
layerId = db.IntField(required=True)
layerName = db.StringField(required=True)
layerUrl = db.StringField(required=True)
def to_json(self):
return {'layerId': self.layerId,
'layerName': self.layerName,
'layerUrl': self.layerUrl}
# # 图层实体
# class LayerEntity(db.EmbeddedDocument):
# layerId = db.IntField(required=True)
# layerName = db.StringField(required=True)
# layerUrl = db.StringField(required=True)
#
# def to_json(self):
# return {'layerId': self.layerId,
# 'layerName': self.layerName,
# 'layerUrl': self.layerUrl}
# 图层标注的数据库
class Layer(db.Document):
relationId = db.IntField(required=True, unique=True)
layerEntityList = db.ListField(db.EmbeddedDocumentField(LayerEntity))
# layerEntityList = db.ListField(db.EmbeddedDocumentField(LayerEntity))
labelList = db.ListField(db.EmbeddedDocumentField(Label))
def to_json(self):
return {'relationId': self.relationId,
'layerEntityList': [i.to_json() for i in self.layerEntityList],
# 'layerEntityList': [i.to_json() for i in self.layerEntityList],
'labelList': [i.to_json() for i in self.labelList]
}
# 根据json列表创建对象列表
def create_layer_entities(layer_entity_list):
res = []
for i in layer_entity_list:
layer_entity = LayerEntity(
layerId=i['layerId'],
layerName=i['layerName'],
layerUrl=i['layerUrl']
)
res.append(layer_entity)
return res
# # 根据json列表创建对象列表
# def create_layer_entities(layer_entity_list):
# res = []
# for i in layer_entity_list:
# layer_entity = LayerEntity(
# layerId=i['layerId'],
# layerName=i['layerName'],
# layerUrl=i['layerUrl']
# )
# res.append(layer_entity)
# return res
# 根据json列表创建对象列表
......@@ -147,7 +147,7 @@ def create_layers(layer_list):
obj.delete()
layer = Layer(
relationId=i['relationId'],
layerEntityList=create_layer_entities(i['layerEntityList']),
# layerEntityList=create_layer_entities(i['layerEntityList']),
labelList=create_labels(i['labelList'])
)
layer.save()
......@@ -172,12 +172,12 @@ class LandmarkEntity(db.EmbeddedDocument):
# 地标存储表
class Landmark(db.Document):
relationId = db.IntField(required=True, unique=True)
layerEntityList = db.ListField(db.EmbeddedDocumentField(LayerEntity))
# layerEntityList = db.ListField(db.EmbeddedDocumentField(LayerEntity))
landmarkEntityList = db.ListField(db.EmbeddedDocumentField(LandmarkEntity))
def to_json(self):
return {'relationId': self.relationId,
'layerEntityList': [i.to_json() for i in self.layerEntityList],
# 'layerEntityList': [i.to_json() for i in self.layerEntityList],
'landmarkEntityList': [i.to_json() for i in self.landmarkEntityList]
}
......@@ -200,9 +200,13 @@ def create_landmark_entities(landmark_entity_list):
def create_landmarks(landmark_list):
res = []
for i in landmark_list:
rid = i['relationId']
obj = Landmark.objects(relationId=rid)
if obj:
obj.delete()
landmark = Landmark(
relationId=i['relationId'],
layerEntityList=create_layer_entities(i['layerEntityList']),
# layerEntityList=create_layer_entities(i['layerEntityList']),
landmarkEntityList=create_landmark_entities(i['landmarkEntityList'])
)
res.append(landmark)
......@@ -232,25 +236,37 @@ def saveImage(image_list):
# 获取图层
def getLayer(relation_list):
def getLayer(relation_id):
try:
layer_list = Layer.objects(relationId__in=relation_list)
landmark_list = Landmark.objects(relationId__in=relation_list)
layer_data = [layer.to_json() for layer in layer_list]
landmark_data = [landmark.to_json() for landmark in landmark_list]
return Result(1, [{'layer num': len(layer_data), 'landmark num': len(landmark_data)}],
{'layerList': layer_data, 'landmarkList': landmark_data})
layer_info = Layer.objects(relationId=relation_id).first()
layer_data = None
if layer_info:
layer_data = layer_info.to_json()
landmark_info = Landmark.objects(relationId=relation_id).first()
landmark_data = None
if landmark_info:
landmark_data = landmark_info.to_json()
return Result(1, "success", {'layerInfo': layer_data, 'landmarkList': landmark_data})
except Exception as e:
traceback.print_exc()
return Result(0, repr(e), {})
# 保存图层标注结果
def saveLayer(layer_list, landmark_list):
def saveLayer(layer_info, landmark_info):
try:
layers = create_layers(layer_list)
landmarks = create_landmarks(landmark_list)
return Result(1, [{'layer num': len(layers), 'landmark num': len(landmarks)}], {})
layer_list = [layer_info]
layer_data = create_layers(layer_list)[0]
if landmark_info is not None:
landmark_list = [landmark_info]
landmark_data = create_landmarks(landmark_list)[0]
# print(landmark_data.to_json())
# print(layer_data.to_json())
return Result(1, "success", {})
except Exception as e:
traceback.print_exc()
return Result(0, repr(e), {})
......@@ -3,11 +3,11 @@ from flask import Blueprint, jsonify, request
from dao import Image
image = Blueprint("image", __name__, url_prefix="/api/image")
image = Blueprint("image", __name__, url_prefix="/api")
# 获取图片
@image.route("/getImage", methods=["POST"])
@image.route("/image/getImage", methods=["POST"])
def get_image():
data = json.loads(request.data)
relation_list = data['relationList']
......@@ -22,7 +22,7 @@ def get_image():
# 保存图片标注结果
@image.route("/saveImage", methods=["POST"])
@image.route("/image/saveImage", methods=["POST"])
def save_image():
data = json.loads(request.data)
image_list = data['imageList']
......@@ -36,10 +36,10 @@ def save_image():
# 获取图层
@image.route("/getLayer", methods=["POST"])
@image.route("/layer/getLayer", methods=["POST"])
def get_layer():
data = json.loads(request.data)
relation_list = data['relationList']
relation_list = data['relationId']
layer = Image.getLayer(relation_list)
res = {
'code': layer.code,
......@@ -50,12 +50,14 @@ def get_layer():
# 保存图层标注结果
@image.route("/saveLayer", methods=["POST"])
@image.route("/layer/saveLayer", methods=["POST"])
def save_layer():
data = json.loads(request.data)
layer_list = data['layerList']
landmark_list = data['landmarkList']
ret = Image.saveLayer(layer_list, landmark_list)
layer_info = data['layerInfo']
landmark_info = None
if 'landmarkInfo' in data:
landmark_info = data['landmarkInfo']
ret = Image.saveLayer(layer_info, landmark_info)
res = {
'code': ret.code,
'message': ret.message,
......@@ -105,49 +107,31 @@ def save_layer():
# 保存图层标注结果的测试数据
# {
# "layerList": [
# {
# "relationId": 8,
# "layerEntityList": [
# {
# "layerId": 7,
# "layerName": "layerNo1",
# "layerUrl": "www.layerNo1.com"
# }
# ],
# "labelList": [
# {
# "labelId": 181,
# "labelName": "label01",
# "pointList": [
# {
# "pointId": 21,
# "X": 211.01,
# "Y": 211.02
# }
# ]
# }
# ]
# }
# ],
# "landmarkList": [
# {
# "relationId": 1,
# "layerEntityList": [
# {
# "layerId": 3,
# "layerName": "layerNo3",
# "layerUrl": "www.layerNo3.com"
# }
# ],
# "landmarkEntityList": [
# {
# "landmarkId": 31,
# "landmarkName": "landmark31",
# "X": 31.1,
# "Y": 31.2
# }
# ]
# }
# ]
# }
# "layerInfo": {
# "relationId": 8,
# "labelList": [
# {
# "labelId": 181,
# "labelName": "label01",
# "pointList": [
# {
# "pointId": 21,
# "X": 211.01,
# "Y": 211.02
# }
# ]
# }
# ]
# },
# "landmarkInfo": {
# "relationId": 181,
# "landmarkEntityList": [
# {
# "landmarkId": 31,
# "landmarkName": "landmark31",
# "X": 31.1,
# "Y": 31.2
# }
# ]
# }
# }
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment