Ejemplo n.º 1
0
def get_route():
    """
    :return:
    """
    global planing
    json_data = request.get_data()
    dic = json.loads(json_data)
    print('route_plan:', dic)
    origin = gcj02_to_wgs84(np.array([[dic['lon_origin'], dic['lat_origin']]]))[0]
    destination = gcj02_to_wgs84(np.array([[dic['lon_destination'], dic['lat_destination']]]))[0]
    print(origin, destination)
    route, costs = route_plan(origin, destination)

    try:
        routes = list()
        for i in range(3):
            if len(route[i]) == 0 or costs[i] is None:
                return jsonify([])
            route_dic = dict()
            route_dic['route'] = list()
            for point in route[i]:
                gcj_point = wgs_gcj(point)
                point_dic = dict()
                point_dic['lng'] = gcj_point[0]
                point_dic['lat'] = gcj_point[1]
                route_dic['route'].append(point_dic)
            route_dic['time'] = costs[i][1]
            route_dic['distance'] = costs[i][0]
            routes.append(route_dic)
            # print(routes)

        return jsonify(routes)

    except TypeError or KeyError:
        return jsonify([])
Ejemplo n.º 2
0
def get_billboards(info):
    """

    :param info:
    :return:
    """
    geo_list = area_list(int(info['area']))
    time_type = int(info['targetTime'])
    day_type = int(info['targetDay'])
    data_df = pd.read_csv('Billboard.csv')
    indexs = []
    for i in range(len(data_df)):
        if data_df.iloc[i, 0][:-2] in geo_list:
            indexs.append(i)
    data_df = data_df.iloc[indexs, :]
    # using the weights to cal the final flow
    if time_type == 1:
        data_df['flow'] *= data_df['day']
    elif time_type == 2:
        data_df['flow'] *= data_df['night']
    if day_type == 1:
        data_df['flow'] *= data_df['weekday']
    elif day_type == 2:
        data_df['flow'] *= data_df['weekend']

    data_df = data_df.sort_values(by='flow', ascending=False).iloc[[x for x in range(10)], :]
    data_arr = data_df.sort_values(by='arrival', ascending=False).iloc[[x for x in range(5)], [0, 1, 2]].values
    result = list()
    for i in range(5):
        board_dict = dict()
        position = wgs_gcj(decode_exactly(data_arr[i, 0])[0:2])
        board_dict['boardLon'] = position[1]
        board_dict['boardLat'] = position[0]
        board_dict['boardFlow'] = int(data_arr[i, 1])
        board_dict['boradRate'] = round(data_arr[i, 2], 3)
        result.append(board_dict)

    return result
Ejemplo n.º 3
0
"""
Ejemplo n.º 4
0
"""