python 如何使用Aigram询问用户真实的位置?

hzbexzde  于 2023-01-04  发布在  Python
关注(0)|答案(2)|浏览(171)

当手机上的GPS被禁用时,用户可以手动选择Map上的任何一个点,我如何删除这个选项来发送位置变量res处理两点之间的距离,我将非常感激。
当前代码:

@dp.message_handler(state=UserState.location, content_types=['location'])
async def handle_location(message: types.Message, state: FSMContext):
    user_loc1 = message.location.latitude
    user_loc2 = message.location.longitude
    data = await state.get_data()
    org_loc1 = data['id_in_qr'][0]
    org_loc2 = data['id_in_qr'][1]
    res = geolocation.ras(user_loc1, user_loc2, org_loc1, org_loc2)
    if res > 200 or not res:
        await message.answer('Вы еще не дошли до работы', reply_markup=types.ReplyKeyboardRemove())
        await UserState.location.set()
    else:
        await message.answer(f'Вы пришли на работу в ', reply_markup=types.ReplyKeyboardRemove())
        await state.finish()
    for file in glob.glob(f"data/{message.from_user.id}{message.date}.png"):
        os.remove(file)
oxcyiej7

oxcyiej71#

keyboard = types.ReplyKeyboardMarkup(row_width=1, resize_keyboard=True)
button_geo = types.KeyboardButton(text="Send location", request_location=True)
button_back = types.KeyboardButton(text="Back")
keyboard.add(button_geo, button_back)
bot.send_message(message.chat.id, "Send your location...", reply_markup=keyboard)

您可以尝试打印在用户屏幕上的特殊按钮,使用户的位置请求。这是不会完全解决您的问题,但我认为这是一些更好的。这个变种也可以去周围。我知道用户在任何情况下都可以发送假的位置。

dgjrabp2

dgjrabp22#

对了,老大哥的爸爸问题.
一般情况下,你无法阻止员工伪造自己的位置而不造成更大的干扰。如果他们现在绕过了你的限制,你封锁这条特定路线将一无所获。
如果我控制一个设备,我不仅可以手动选择位置,我还可以欺骗它--例如,for Pokemon Go创建了一个庞大的社区。这方面的知识几乎可以广泛获得。你在这里处理的是一个人的问题,而不是一个技术问题。

相关问题