You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将经纬度(latitude/longitude)转换为图像对应X/Y像素坐标

经纬度转图像像素坐标的实现方案

前置准备

你需要先获取两个基础参数:

  • 图像本身的宽高像素值:记为 img_width(X轴像素最大值)、img_height(Y轴像素最大值)
  • 四个角点的绑定映射表(推荐按左上、右上、右下、左下的固定顺序存储)
    • 左上角图像像素坐标 (0, 0) → 已知经纬度 (lng_tl, lat_tl)
    • 右上角图像像素坐标 (img_width, 0) → 已知经纬度 (lng_tr, lat_tr)
    • 右下角图像像素坐标 (img_width, img_height) → 已知经纬度 (lng_br, lat_br)
    • 左下角图像像素坐标 (0, img_height) → 已知经纬度 (lng_bl, lat_bl)

注:校园属于极小范围场景,地球曲率带来的经纬度误差可以完全忽略,不需要引入复杂的大地坐标系转换,以下两种方案均能满足精度需求。


方案1:最简线性插值法(无第三方依赖,代码量极小)

适用场景:图像为正射投影,无倾斜、旋转,校园区域范围小于1平方公里

  1. 计算当前校园区域的经纬度边界
lng_min = min(lng_tl, lng_tr, lng_br, lng_bl)
lng_max = max(lng_tl, lng_tr, lng_br, lng_bl)
lat_min = min(lat_tl, lat_tr, lat_br, lat_bl)
lat_max = max(lat_tl, lat_tr, lat_br, lat_bl)
  1. 计算经纬度到像素的缩放系数
scale_x = img_width / (lng_max - lng_min)
scale_y = img_height / (lat_max - lat_min)
  1. 任意目标经纬度 (lng_target, lat_target) 转像素坐标
    注意:常规图像的Y轴从上到下递增,而纬度值越大越靠北(对应图像上方),所以Y轴需要做翻转处理
pixel_x = (lng_target - lng_min) * scale_x
pixel_y = (lat_max - lat_target) * scale_y

方案2:透视变换法(精度更高,适配倾斜/旋转拍摄场景)

适用场景:图像为航拍倾斜拍摄、存在旋转/变形的情况,精度不受角度影响
需要提前安装numpy、opencv-python依赖库。

  1. 将四个角点的经纬度、像素坐标分别存入数组
import numpy as np
import cv2

# 像素坐标数组
pixel_points = np.array([[0,0], [img_width,0], [img_width,img_height], [0,img_height]], dtype=np.float32)
# 经纬度坐标数组
lnglat_points = np.array([[lng_tl, lat_tl], [lng_tr, lat_tr], [lng_br, lat_br], [lng_bl, lat_bl]], dtype=np.float32)
  1. 计算经纬度到像素的透视转换矩阵
transform_matrix = cv2.getPerspectiveTransform(lnglat_points, pixel_points)
  1. 任意目标经纬度转像素坐标
target_point = np.array([[lng_target, lat_target]], dtype=np.float32)
pixel_coords = cv2.perspectiveTransform(target_point, transform_matrix)
pixel_x, pixel_y = pixel_coords[0][0]

可选边界校验

如果需要避免坐标超出图像范围,可追加校验逻辑:

pixel_x = max(0, min(round(pixel_x), img_width - 1))
pixel_y = max(0, min(round(pixel_y), img_height - 1))

内容的提问来源于stack exchange,提问作者Brandon Suiveng

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 01:24:06