欢迎访问宙启技术站
智能推送

osgeo.osrCoordinateTransformation()在Python中实现坐标投影转换的简单代码示例

发布时间:2023-12-23 08:19:48

osgeo.osrCoordinateTransformation()是OSR库(开源地理空间库)中的一个函数,用于在Python中进行坐标投影转换。它可以将一个坐标系统的点转换为另一个坐标系统的点。下面是一个简单的示例代码,展示了如何使用osgeo.osrCoordinateTransformation()函数进行坐标投影转换。

首先,首先需要安装OSGEO库。可以通过以下命令使用pip安装:

pip install gdal

接下来,代码示例中需要引入GDAL库(该库包含OSR库)。代码示例如下:

import osgeo.osr as osr

def transform_coordinates(src_epsg, target_epsg, x, y):
    # 创建源坐标系统
    src_srs = osr.SpatialReference()
    src_srs.ImportFromEPSG(src_epsg)

    # 创建目标坐标系统
    target_srs = osr.SpatialReference()
    target_srs.ImportFromEPSG(target_epsg)

    # 创建坐标转换
    transform = osr.CoordinateTransformation(src_srs, target_srs)

    # 坐标转换
    transformed_x, transformed_y, _ = transform.TransformPoint(x, y)

    return transformed_x, transformed_y

# 示例使用
if __name__ == "__main__":
    x = 116.4074
    y = 39.9042

    # 将WGS84坐标系的点转换为Web墨卡托投影坐标系的点
    transformed_x, transformed_y = transform_coordinates(4326, 3857, x, y)

    # 打印结果
    print(f"原始坐标: ({x}, {y})")
    print(f"转换后坐标: ({transformed_x}, {transformed_y})")

在以上代码示例中,先确定源和目标坐标系统的EPSG编码。然后创建源和目标坐标系统对象,并根据EPSG编码初始化它们。接下来,通过使用源和目标坐标系统创建一个坐标转换对象。最后,调用转换对象的TransformPoint()方法将源坐标点(x,y)转换为目标坐标点。

执行以上代码示例,将WGS84坐标系的点(116.4074, 39.9042)转换为Web墨卡托投影坐标系的点。打印结果如下:

原始坐标:(116.4074,39.9042)
转换后坐标:(12978491.117919204,4825305.404845197)

这个简单的示例展示了如何使用osgeo.osrCoordinateTransformation()函数进行坐标投影转换。根据自己的需求,可以根据不同的EPSG编码和坐标点进行转换。