步骤一:sourceai/model/face/db/face_query.py添加及修改如下代码:
from sourceai.model.face.db import face_storage
from sourceai.model.face.db import face_obj
def query(imgid, name=''):
dbconn = face_storage.MySQL_Query()
res = ''
if (name == 'user'):
res = query_userinfo(dbconn, imgid)
elif (name == 'resume'):
res = query_resume_info(dbconn, imgid)
elif (name == 'travel'):
res = query_travel_info(dbconn, imgid)
elif (name == 'medical'):
res = query_medical_info(dbconn, imgid)
elif (name == 'diet'):
res = query_diet_info(dbconn, imgid)
elif (name == 'catagory'):
res = query_diet_catagory(dbconn, imgid)
elif (name == 'consume_month'):
res = query_consume_info(dbconn, imgid)
elif (name == 'consume_year'):
res = query_consume_year(dbconn, imgid)
elif (name == 'trajectory'):
res = query_trajectory(dbconn, imgid)
# print(res)
dbconn.disconnect()
return res
def query_trajectory(dbconn, imgid):
sql = "select n.f_long,n.f_lat from tb_user m,tb_trajectory n where m.f_id = n.f_userid and m.f_faceid ='" + imgid + "'"
results = dbconn.query(sql)
datas = []
for row in results:
item = [row[0],row[1]]
datas.append(item)
res = list_track(datas)
return res
def list_track(data):
data_copy = data.copy()
last = data_copy[len(data_copy) - 1]
data_copy.pop(0)
data_copy.append(last)
res = list(zip(data, data_copy))
res = [list(item) for item in res]
res.pop()
print(res)
return res
步骤二:在sourceai/controller/portrait_views.py文件中添加如下内容:
def earthdata(request):
faceid = request.POST.get('userid')
datas = face_query.query(faceid, 'trajectory')
return HttpResponse(json.dumps(datas))
步骤三:修改前端static/index.html文件中轨迹访问数据代码
$.ajax({
url: 'http://localhost:8000/earthdata',
type: 'POST',
data: {
userid: user_id,
},
dataType: 'JSON',
success: function (res) {
// console.log(res);
//参考航站信息
//https://fastly.jsdelivr.net/gh/apache/echarts-website@asf-site/examples/data-gl/asset/data/flights.json
var chartDom_e = document.getElementById('earth');
var myChart_e = echarts.init(chartDom_e);
var option_e;
myChart_e.setOption({
backgroundColor: '',
globe: {
baseTexture: 'img/map01.jpg',
heightTexture: 'img/map02.jpg',
shading: 'lambert',
light: {
ambient: {
intensity: 0.8
},
main: {
intensity: 0.4
}
},
viewControl: {
autoRotate: true
},
globeRadius: 60
},
series: {
type: 'lines3D',
coordinateSystem: 'globe',
blendMode: 'lighter',
lineStyle: {
width: 2,
color: 'rgb(50, 50, 150)',
opacity: 0.9
},
data: res
}
});
option_e && myChart_e.setOption(option_e);
}
})
步骤四:启动项目,进行人脸识别后,结果如下: