from urllib.parse import quote from flask import Blueprint, jsonify, session, request, current_app, Response from app.utils.code import ResponseCode from app.utils.response import ResMsg from app.utils.auth import login_required from app.utils.util import route from app.utils.tools import * from app.utils.amapUtil import * from app.models.ai_bus_model import AiBusModel from app.algorithms.dbscan import clusterByDbscan, clusterByAdaptiveDbscan from app.utils.logger import get_logger """ 聚类模块api """ cluster = Blueprint("cluster", __name__, url_prefix='/cluster') logger = get_logger(name="cluster", log_file="logs/logger.log") @route(cluster, '/generateClusterPointsOld', methods=["POST"]) @login_required def generateClusterPointsOld(): """ 根据网点文件id生成聚类点 """ res = ResMsg() try: aiBusModel = AiBusModel() userInfo = session.get("userInfo") data = request.get_json() fileId = data["fileId"] epsRadius = float(data["epsRadius"])
from aiohttp import web from app.utils.logger import get_logger logger = get_logger(__name__) async def handle_400(request, msg=None): return web.json_response({ 'error': 'Bad request', 'message': msg }, status=400) async def handle_404(request, msg='Not found'): return web.json_response({'error': msg}, status=404) async def handle_500(request, msg=None): return web.json_response({ 'error': 'Internal server error', 'message': msg }, status=500) def create_error_middleware(status_handlers): @web.middleware async def response_middleware(request, handler): try: response = await handler(request)
import requests, json, time from concurrent import futures #from logger import get_logger from app.utils.logger import get_logger from app.utils.util import route logger = get_logger(name="amapUtil", log_file="logs/logger.log") key = "36fdeffd608643f8dec6d43b2d9b8ec8" #mykey="c499537db92f1234f8390eeec13cfbe5" # 驾车路径规划 36fdeffd608643f8dec6d43b2d9b8ec8 def get_route(origin, destination, routeType=0): if routeType == 0: api = f'http://restapi.amap.com/v3/direction/driving?origin={origin}&destination={destination}&output=JSON&key={key}' elif routeType == 1: api = f'http://restapi.amap.com/v4/direction/truck?origin={origin}&destination={destination}&size=3&nosteps=1&key={key}' elif routeType == 2: api = f'http://restapi.amap.com/v3/direction/walking?origin={origin}&destination={destination}&key={key}' r = requests.get(api, verify=False) r = r.text jsonData = json.loads(r) return jsonData def get_route_distance_time(origin, destination, routeType=0): """ # 该函数是调用高德API获取起始点到终点两个经纬度之间的距离以及时间(以米为单位) origin: 起始点经纬度 destination: 终点经纬度
import pymysql import time from dbutils.pooled_db import PooledDB from app.utils.logger import get_logger logger = get_logger(name="mysqlOperator", log_file="logs/logger.log") class MysqlPool(): def __init__(self, host, port, user, password, db): self.POOL = PooledDB(creator=pymysql, maxconnections=10, mincached=3, maxcached=5, blocking=True, host=host, port=port, user=user, password=password, database=db, charset='utf8') def connect(self): """ 启动连接 """ conn = self.POOL.connection() cursor = conn.cursor(cursor=pymysql.cursors.DictCursor) return conn, cursor def closeConn(self, conn, cursor):
from flask import Blueprint, jsonify, session, request, current_app from app.utils.code import ResponseCode from app.utils.response import ResMsg from app.utils.auth import login_required from app.utils.util import route from app.utils.tools import * from app.utils.logger import get_logger from app.utils.amapUtil import * from app.utils.GPSConvertUtil import * from app.models.ai_bus_model import AiBusModel from app.algorithms.sa import * """ 线路规划模块api """ routeplan = Blueprint("routeplan", __name__, url_prefix='/routeplan') logger = get_logger(name="routeplan", log_file="logs/logger.log") @route(routeplan, '/sortWayPoints', methods=["POST"]) def sortWayPoints(): """ 利用模拟退火算法对途经点进行排序 """ res = ResMsg() try: data = request.get_json() sortPoints, minDist = tspSolution(data["destination"], data["waypoints"]) res.update(code=ResponseCode.Success, data={ "sortPoints": np.array(sortPoints)[:-1].tolist(),
import os import sys parentdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.append(parentdir) import itertools from sklearn.cluster import DBSCAN from numpy import * import pandas as pd from scipy.spatial.distance import pdist, squareform from math import * #from utils.GPSConvertUtil import getGPSDistance from app.utils.GPSConvertUtil import getGPSDistance from app.utils.amapUtil import * from app.utils.logger import get_logger logger = get_logger(name="dbscan", log_file="logs/logger.log") def haversine(lonlat1, lonlat2): """ # 该函数是为了通过经纬度计算两点之间的距离(以公里为单位) lonlat1: 经纬度1 lonlat2: 经纬度2 """ lat1, lon1 = lonlat1 lat2, lon2 = lonlat2 lon1, lat1, lon2, lat2 = map(radians, [lon1, lat1, lon2, lat2]) dlon = lon2 - lon1 dlat = lat2 - lat1 a = sin(dlat / 2)**2 + cos(lat1) * cos(lat2) * sin(dlon / 2)**2
def setUp(self): self.log = logger.get_logger('tests')