WGS 84 geojson 到 lat lng 坐标系

问题描述 投票:0回答:1

我有一个 geojson 文件,其中包含不列颠群岛周围的多边形数据。 使用 php,我尝试将此文件导入到 mysql 数据库中,以便我可以执行空间查询。

geojson 文件使用 WGS 84 (EPSG:4326) 坐标系。 我想将这些坐标转换为纬度/经度。我发现这里找到了一些代码来进行每个点的转换,https://stackoverflow.com/a/18336137/1485815

但是,它需要UTM号码。这很好,但不列颠群岛分为 3 个不同的 UTM 代码 29,30 和 31,所以我不知道该使用哪一个,或者我需要在每个坐标的基础上计算出使用哪一个

php geojson wgs84
1个回答
0
投票

我自己正在做一个使用此类翻译的项目。尝试这个。 proj4php\Proj4php 我发现它能够毫无问题地转换我迄今为止遇到的任何数据。作为循环函数的提示,仅包含 github 示例中显示的一些代码来重新运行每个循环,否则会大大减慢进程速度。下面是我的实现方式。

function spnc_wgs($x, $y) {
    global $proj4, $proj_given, $proj_WGS84;
    // Create a point.
    $pointSrc = new Point($x, $y, $proj_given); //x, y
    // Transform the point between datums.
    $pointDest = $proj4->transform($proj_WGS84, $pointSrc);
    //output lat/lon as array
    $output = explode(" ", $pointDest->toShortString());
    return array('lon' => $output[0], 'lat' => $output[1]);
}

我在 php 文件的开头使用它:

include($_SERVER['DOCUMENT_ROOT']."/vendor/autoload.php");
use proj4php\Proj4php;
use proj4php\Proj;
use proj4php\Point;
$proj4 = new Proj4php();
$proj_WGS84 = new Proj('EPSG:4326', $proj4);

在调用函数之前我设置了源投影:

$proj_given = new Proj($projection_used, $proj4);

有关所有可用 EPSG 的完整列表:空间参考列表

享受并祝你好运!!

© www.soinside.com 2019 - 2024. All rights reserved.