gpt4 book ai didi

php - 将 GIS 点批量转换为纬度/经度

转载 作者:行者123 更新时间:2023-11-29 06:28:34 24 4
gpt4 key购买 nike

我有一个包含数千条记录的数据库,每条记录都包含几个 GIS 格式的坐标。我需要将所有这些点转换为纬度/经度点(仅一次)。

我怎样才能做到这一点?

  • php?
  • mysql?-->sql
  • 脚本?

我已经手动尝试过这个 online gis converter但对于前几个数据地理信息:lat_gis: 40°29'02,70'' long_gis: 16°28'60,00''给出有关秒的错误,该秒必须小于 60 (<60)初始数据有错吗?

哪种方式更智能、更快捷?

最佳答案

您可能需要这样的字符串转换函数:

<?php

function gis2dec(string $string): string {
$string = str_replace(',', '.', $string);
if (preg_match('#^((\d+(\.\d+|))°)((\d+(\.\d+|))(′|\')|)((\d+(\.\d+|))(″|"|′′|\'\')|)(|\s*([NESW]))$#', $string, $matches)) {
$sign = 1;
switch (strtoupper($matches[13])) {
case 'S':
case 'W':
$sign = -1;
break;
}
return $sign * ($matches[2] + ((float) ($matches[5] ?? 0)) / 60 + ((float) ($matches[9] ?? 0)) / 3600);
}
return (string) $string;
}

var_dump(gis2dec("40°29'02,70''"));
var_dump(gis2dec("16°28'60,00''"));
var_dump(gis2dec("40°29'02,70'' S"));
var_dump(gis2dec("16°28'60,00'' W"));

输出:

string(15) "40.484083333333"
string(15) "16.483333333333"
string(16) "-40.484083333333"
string(16) "-16.483333333333"

关于php - 将 GIS 点批量转换为纬度/经度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58025533/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com