我有一个 MySQL 数据库,它以这种形式返回坐标 b'\x00\x00\x00\x00\x01\x01\x00\x00\x00\xacTPQ\xf5\x8b \xc0i\xac\xfd\x9d\ xed\xf9K@',我有数百个这样的坐标,我需要找到纬度值为 -95.712891 不正确的那个坐标
我尝试了多种解决方案,但在转换二进制返回后它们不断返回错误的值
我正在寻找一个解决方案,可以用来正确转换这些值或报告的错误纬度 -95.712891 的正确 mySQL 二进制表示形式
更新
由于纬度值不正确而无法工作的代码是
conn = pymysql.connect(
host=endpoint,
user=username,
password=password,
port=port,
database=database
)
cursor = conn.cursor()
query = """
SELECT uuid, ERASEnabled, useractivity
FROM algoData
WHERE gender = %s
AND dob BETWEEN %s AND %s
AND ST_Distance_Sphere(location, ST_PointFromText(%s)) / 1609.34 <= %s
LIMIT %s;
"""
limit = 5000
parameters = (
lookingFor,
min_date_string,
max_date_string,
formattedCoordinatesForSQLUse,
maxDistance,
limit,
)
用于检索所有二进制位置点的代码是
conn = pymysql.connect(
host=endpoint,
user=username,
password=password,
port=port,
database=database
)
cursor = conn.cursor()
read_command = """
SELECT *
FROM algoData
"""
cursor.execute(read_command)
results = cursor.fetchall()
uuids = [result[0] for result in results]
locationPoints = [result[3] for result in results]
locationPoints = [str(point) for point in locationPoints]
列描述为('location', 'point', 'NO', 'MUL', None, '')
非常感谢任何帮助
我通过从数据库中单独获取 X 和 Y 坐标而不是以二进制形式获取整个位置来解决这个问题
使用 MySQL 的查询类似于
查询=“”” 从 your_table 中选择 ST_X(位置)、ST_Y(位置); ”“”
位置是您的点数据类型列