如果发送的消息是与 TELETHON 电报中的位置共享消息,我可以获取位置的经度和纬度吗

问题描述

我正在抓取电报,我可以在聊天中使用 client.iter_messages 获取每个消息实例,但如果消息实例是位置共享消息,我想获取位置的纬度和经度。

    WITH data AS (
    SELECT a.*,CAST(ST_distanceSpheroid(geometry(location),st_geomfromtext('POINT(' || $7::decimal || ' ' || $8::decimal || ')',4326))as numeric) / 1000 AS distance
    FROM agent AS a
    WHERE (a.agent_code ILIKE $1
    OR a.name ILIKE $1
    OR a.phone LIKE $1)
    AND
    a.sub_district_name LIKE ANY(string_to_array($4,','))
    AND
    a.agent_status_id LIKE ANY(string_to_array($5,'))
    AND CASE WHEN $6 = 'FAVORITE' THEN
    a.is_subscription = true
    WHEN $6 = 'REGULER' THEN
    a.is_subscription != true
    ELSE
    a.location LIKE '%%'
    END
    ORDER BY distance ASC
),data_counter AS (
    SELECT COUNT(agent_id) AS __total__
    FROM data
)
SELECT * 
FROM data,data_counter
LIMIT $2
OFFSET $3
`

如果有一点帮助,我们将不胜感激, 谢谢。

解决方法

仅当消息是位置共享消息 (message.geo) 时才执行,否则不需要

location = message.geo   #returns a GeoPoint class if the message is a location share message else returns None
if location is not None:
     longitude = location.long
     latitude = location.lat
     print(longitude,latitude)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...