apollo_point转经纬坐标系代码

#!/usr/bin/python3

__author__ = 'ISmileLi'

from osgeo import gdal, ogr, osr
from pyproj import Transformer

'''
osgeo底层坐标转换使用的库还是proj,下面函数中的espg值需要根据自己的需求进行修改,
下文测试使用的是wgs84与中国区高斯-克吕格EPSG码为21460区的转换
'''

def lonLat_to_gauss(lon, lat, from_epsg=4326, to_epsg=21460):
    '''
    经纬度转高斯
    :param lon:
    :param lat:
    :param from_epsg:
    :param to_EPSG:
    :return:
    '''

    from_spa = osr.SpatialReference()
    '''
    gdal版本大于3.0以后必须设置转换策略才能正确显示结果,否则结果将会输出'inf'
    可以了解官方的这个issue说明:https://github.com/OSGeo/gdal/issues/1546
    '''
    if int(gdal.__version__[0]) >= 3:
        from_spa.SetAxisMappingStrategy(osr.OAMS_TRADITIONAL_GIS_ORDER)
    from_spa.ImportFromEPSG(from_epsg)
    to_spa = osr.SpatialReference()
    to_spa.ImportFromEPSG(to_epsg)
    coord_trans = osr.CoordinateTransformation(from_spa, to_spa)

    t = coord_trans.TransformPoint(lon, lat)
    return t[0], t[1]

def gauss_to_lonLat(x, y, from_epsg=21460, to_epsg=4326):
    '''
    高斯转经纬度
    :param x:
    :param y:
    :param from_epsg:
    :param to_EPSG:
    :return:
    '''

    from_spa = osr.SpatialReference()
    #if int(gdal.__version__[0]) >= 3:
        #from_spa.SetAxisMappingStrategy(osr.OAMS_TRADITIONAL_GIS_ORDER)
    from_spa.ImportFromEPSG(from_epsg)
    to_spa = osr.SpatialReference()
    to_spa.ImportFromEPSG(to_epsg)
    coord_trans = osr.CoordinateTransformation(from_spa, to_spa)

    t = coord_trans.TransformPoint(x, y)
    return t[0], t[1]


def lonLat_to_gauss_proj(lon, lat, from_epsg="EPSG:4326", to_epsg="EPSG:21460"):
    '''
    使用proj库经纬度转高斯
    :param lon:
    :param lat:
    :param from_epsg:
    :param to_epsg:
    :return:
    '''
    transfromer = Transformer.from_crs(from_epsg, to_epsg,always_xy=True)  # WGS-84对应码->EPSG:4326, 中国高斯对应码:EPSG:21460
    x, y = transfromer.transform(lon, lat)
    print('lonLat_to_gauss_proj x, y:',x, y)
    return x, y

def gauss_to_lonLat_proj(x, y, from_epsg="EPSG:21460", to_epsg="EPSG:4326"):
    '''
    使用proj库高斯转经纬度
    :param x:
    :param y:
    :param from_epsg:
    :param to_epsg:
    :return:
    '''
    transfromer = Transformer.from_crs(from_epsg, to_epsg, always_xy=True)  # WGS-84对应码->EPSG:4326, 中国高斯对应码:EPSG:21460
    lon, lat = transfromer.transform(x, y)
    print('lonLat_to_gauss_proj lon, lat:', lon, lat)
    return lon, lat

if __name__ == '__main__':
    lon = 116.2446370442708300
    lat = 40.0670713975694400
    x, y = lonLat_to_gauss(lon, lat)
    print('x, y: ', x, y)
    lat_t, lon_t = gauss_to_lonLat(x, y)
    print('lon_t, lat_t: ', lon_t, lat_t)

    '''
    这里要注意pyproj的转换会交换x/y返回,可以对比osgeo使用打印结果看出来,
    详细了解可以参考官网文档:https://pyproj4.github.io/pyproj/stable/api/transformer.html
    '''
    lon_t = 116.2446370442708300
    lat_t = 40.0670713975694400
    x_t, y_t = lonLat_to_gauss_proj(lon_t, lat_t)
    gauss_to_lonLat_proj(x_t, y_t)
from lonlat_gauss import gauss_to_lonLat



def read_file(file_path):
    """读取文件的全部内容。"""
    with open(file_path, 'r') as file:
        return file.read()

def convert_xy_to_latlon(x, y):
 
    lon, lat = gauss_to_lonLat(float(x), float(y), from_epsg=21460, to_epsg=4326)
    return lat, lon

其他relation相关还要继续做

reference:最近会添加

### 回答1: 在百度 Apollo 7.0 中,trajectory_point 是一个结构体,它代表车辆在道路上的一个位置。path_point 是 trajectory_point 结构体中的一个成员变量,代表车辆在道路图上的位置,通常用坐标表示。在道路图上,path_point 的坐标可以帮助我们确定车辆的位置,从而为车辆的路径规划提供信息。 ### 回答2: 百度Apollo7.0中trajectory_point的path_point代表着轨迹点的路径信息。在Apollo自动驾驶系统中,轨迹点是用于描述车辆在移动过程中的路径和行驶轨迹的关键元素之一。而path_point则包含了轨迹点的关键属性。 path_point主要包括路径点的位置、方向、速度和加速度等信息。位置属性表示了轨迹点在地图上的具体位置坐标,通过经度和纬度来标识。方向属性则指示了轨迹点所处路径的行驶方向,可以用角度或者方向向量表示。速度属性代表了车辆在这个轨迹点上的行驶速度,可以用米/秒或者千米/小时来表示。加速度属性表示了车辆在轨迹点上的行驶加速度,通常用米/秒^2来衡量。 在Apollo7.0中,trajectory_point的path_point信息被广泛应用于路径规划和车辆控制等关键模块中。例如,在路径规划中,使用轨迹点的path_point信息来生成车辆的路径,以指导车辆行驶。在车辆控制模块中,则根据轨迹点的path_point信息来控制车辆的加速度、方向等参数,以实现车辆在轨迹上的精准行驶。 总之,百度Apollo7.0中trajectory_point的path_point包含了轨迹点的路径信息,通过描述位置、方向、速度和加速度等属性,为车辆的路径规划和控制提供了重要的参考依据。 ### 回答3: Apollo 7.0中的trajectory_pointApollo无人车的轨迹点。其中,path_point指的是这个轨迹点在车辆局部坐标系下的具体含义。 首先,path_point包含了轨迹点在车辆局部坐标系下的位置信息。它通过三个坐标来表示,分别是x,y和z。其中,x表示轨迹点在车辆局部坐标系中的x轴位置,y表示y轴位置,z表示z轴位置。这些位置信息可以帮助无人车精确地确定自己在局部坐标系中的位置和方向。 其次,path_point还包含了轨迹点的一些其他重要信息。例如,它记录了轨迹点在局部坐标系下的偏航角(yaw)。偏航角表示了轨迹点相对于车辆正方向的偏角度,可以帮助无人车确定前进的方向。 此外,path_point还包含了轨迹点的一些辅助信息,如速度(speed),加速度(acceleration),曲率(curvature)等。这些信息能够帮助无人车进行精确的运动控制和轨迹规划。 综上所述,trajectory_point中的path_point代表了在Apollo无人车局部坐标系下的轨迹点信息。它包含了位置、偏航角以及一些辅助信息,用于帮助无人车确定自身位置、方向以及进行运动控制和轨迹规划。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值