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

使用PHPcoord转换英国6位网格参考至经纬度的问题

解决PHPcoord中6位网格参考转经纬度的衔接问题

我之前在使用PHPcoord处理英国网格参考转换时也踩过类似的坑,其实核心问题是你没必要把第一步的OSRef对象转成字符串——这个对象本身就自带了直接转换到经纬度的方法,而且它的属性就能直接拿到你需要的东向/北向坐标数值。

给你整理一套完整的正确流程:

1. 确保依赖与命名空间正确

首先确认已经通过Composer安装了PHPcoord,并且在代码中引入对应的类:

use PHPCoord\OSRef;
use PHPCoord\LatLng;

2. 6位网格参考转OSGB坐标对象

用OSRef::fromSixFigureReference()方法直接生成OSRef实例,这个实例已经包含了所有需要的坐标数据:

// 你的6位网格参考
$sixFigureRef = 'TG514131';
// 第一步转换:得到OSGB坐标对象
$osRef = OSRef::fromSixFigureReference($sixFigureRef);

// 如果需要单独获取东向/北向数值,直接访问属性即可
$easting = $osRef->easting; // 651400
$northing = $osRef->northing; // 313100

3. OSGB坐标直接转经纬度

不需要手动传递数值,直接调用OSRef对象的toLatLng()方法就能得到经纬度对象:

// 第二步转换:得到经纬度对象
$latLng = $osRef->toLatLng();

// 获取最终的经纬度数值
$latitude = $latLng->lat;
$longitude = $latLng->lng;

为什么你之前的尝试没成功?

你提到尝试转换$os6x->toStri...,应该是想把对象转成字符串再提取坐标,但PHPcoord的OSRef对象的字符串输出是格式化后的文本(比如类似TG 514000, 131000),不是可直接用的数值格式,所以没法作为第二步的输入。直接使用对象自带的方法和属性才是正确的打开方式。

内容的提问来源于stack exchange,提问作者Digital Essence

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 07:21:06