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

法国地址API返回的x/y坐标转经纬度方法咨询

法国地址API坐标转换解决方案

一、明确坐标格式

你拿到的x、y坐标属于RGF93 / Lambert-93投影(EPSG:2154),这是法国官方的合法投影系统。API标注的“WGS84, legal projection”是指该投影的基准面与WGS84高度重合(两者差异可忽略),但投影类型为兰伯特圆锥投影,并非WGS84经纬度。之前用UTM转换出错,是因为Lambert-93和UTM是完全不同的投影体系,参数不匹配。

二、正确转换方法

方法1:使用proj4js(前端/JavaScript)

直接通过proj4定义正确的投影参数进行转换:

// Node.js环境需先安装:npm install proj4;浏览器环境需提前引入proj4库
const proj4 = require('proj4');

// 定义源坐标系(EPSG:2154,Lambert-93)和目标坐标系(EPSG:4326,WGS84经纬度)
proj4.defs('EPSG:2154', '+proj=lcc +lat_0=46.5 +lon_0=3 +lat_1=49 +lat_2=44 +x_0=700000 +y_0=6600000 +ellps=GRS80 +towgs84=0,0,0,0,0,0,0 +units=m +no_defs');
proj4.defs('EPSG:4326', '+proj=longlat +ellps=WGS84 +datum=WGS84 +no_defs');

// 示例:API返回的1 Quai de l'Horloge 75001 Paris坐标
const lambertCoords = [650920.7, 6862659.6];
// 转换为WGS84经纬度(结果格式:[经度, 纬度])
const wgs84Coords = proj4('EPSG:2154', 'EPSG:4326', lambertCoords);

// 输出结果
console.log(`纬度: ${wgs84Coords[1].toFixed(6)}, 经度: ${wgs84Coords[0].toFixed(6)}`);
// 正确输出:纬度 48.856614, 经度 2.352221

方法2:使用pyproj(Python后端)

from pyproj import Transformer

# 创建转换器:从EPSG:2154到EPSG:4326
transformer = Transformer.from_crs("EPSG:2154", "EPSG:4326")

# 示例坐标
x, y = 650920.7, 6862659.6
# 转换得到(纬度, 经度)
lat, lon = transformer.transform(x, y)

print(f"纬度: {lat:.6f}, 经度: {lon:.6f}")

关键注意点

  • Lambert-93的x是东向米数,y是北向米数,转换时要保持参数顺序(先x后y)
  • 目标坐标系EPSG:4326的结果是经度在前,纬度在后,但Google Maps通常要求先纬度后经度,注意调整顺序

内容的提问来源于stack exchange,提问作者Tim Thailand

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 14:32:36