宥马运动Crack之全自动Run

本文介绍了一款基于百度地图API的自动化脚本,该脚本能够根据输入的起点和三个旗点坐标,自动规划路径并模拟行走过程。通过解析百度地图路线规划的JSON数据,脚本可以精确地调整模拟位置,适用于需要模拟移动轨迹的应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

·

·

·

·

·

·

·

·

·

·

·

·

·

·

·

·

前言:

在Crack完成后愈发懒惰,想着能否实现全自动,而我只需输入三个旗子的坐标,以及Run Finished后距离不够询问是否还要再次输入一个经纬度来Run一段.

嗯~就是懒

·

·

·

·

·

·

·

·

·

·

·

·

·

·

·

·

·

·

·

·

·

·

·

·

思路:

使用百度地图路线规划提供的API返回的json数据,解析后得到经纬度坐标,通过计算App的Run时的五个参数,来确定每次修改定位的Sleep,至于修改定位用逍遥提供的命令即可

from requests import get
from os import system
from time import sleep
# 对百度地图提供的API发起请求,参数: Ak , 起点经纬度 , 终点经纬度
def Request(Start_Point, End_Point):
    RespOne = get(f'https://api.map.baidu.com/directionlite/v1/walking?origin={Start_Point}&destination={End_Point}&ak=SVTGvOGqoo7YgD7KOgsSfTVLIFGD6sc6')
    return RespOne.json(), RespOne.status_code   # 返回响应的json文件

#   对请求百度地图API步行路线规划返回的数据进行粗加工
def data_handle_rough_machining(RespOne_json):
    Request_status = list(RespOne_json.values())[0]     # 数据加工得到请求状态码,用于后续判断程序是否进行
    Request_result_duration_total = list(list(list(RespOne_json.values())[2].values())[2][0].values())[1]   # 数据加工得到路线规划总时间
    Request_result_distances_total = list(list(list(RespOne_json.values())[2].values())[2][0].values())[0]  # 数据加工得到路线规划总距离

    Request_result_routes_steps = list(list(list(RespOne_json.values())[2].values())[2][0].values())[2]  # 数据加工得到每段路线规划的数据

    return Request_status, Request_result_distances_total, Request_result_duration_total, Request_result_routes_steps   # 返回含有粗加工后数据的元组

# 对粗加工函数返回的每段路线规划的数据进行细加工
def data_handle_Fine_machining(Request_result_routes_steps):
    Step_Path = []
    for item in Request_result_routes_steps:    # 遍历含有每段路线规划数据(以字典在列表中每一项存在)的列表
        item = list(item.values())[4].split(';')    # 以';'为分割得到含有步行的每个经纬度
        Step_Path.append(item)  # 将每段步行路线添加到列表中 , 以后续遍历使用
    return Step_Path
def execute_command(Step_Path):
    for Outer in Step_Path:
        for Lnner in Outer:
            Lnner = Lnner.split(',')
            system(f'memuc setgps -i 2 {Lnner[1]} {Lnner[0]}')
            sleep(5)
def request_of_flags(flage_):
    global Start_Point, FlagOne_Point, FlagTwo_Point, FlagThree_Point
    Start_Point = ''
    FlagOne_Point = ''
    FlagTwo_Point = ''
    FlagThree_Point = ''
    if flage_ == 1:
        Start_Point = input('起点经纬度(小数点不超过六位)(如:40.01116,116.339303):>')
        FlagOne_point = input('第一旗经纬度(格式同上):>')
        Response_json_and_statucode = Request(Start_Point, FlagOne_point)
        return Response_json_and_statucode
    elif flage_ == 2:
        FlagTwo_Point = input('第二旗经纬度(格式同上):>')
        Response_json_and_statucode = Request(FlagOne_Point, FlagTwo_Point)
        return Response_json_and_statucode
    elif flage_ == 3:
        FlagThree_Point = input('第三旗经纬度(格式同上):>')
        Response_json_and_statucode = Request(FlagTwo_Point, FlagThree_Point)
        return Response_json_and_statucode

if __name__ == "__main__":
    for flage in range(1, 4):
        Response_json_and_statucode = request_of_flags(flage)
        if Response_json_and_statucode[1] == 200:
            Rough_Machined_Product_tuple = data_handle_rough_machining(Response_json_and_statucode[0])
            if Rough_Machined_Product_tuple[0] == 0:
                Fine_Machined_Product = data_handle_Fine_machining(Rough_Machined_Product_tuple[3])
                execute_command(Fine_Machined_Product)
            else:
                print('状态码异常')
                break
        else:
            print('百度地图API请求状态码异常')
            break

拙劣代码,还请见谅(因为是自用,所以一些大的Bug就没管),只要能用就行

Code 2022.3.25 记录

评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王观天

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值