longitude-one / geo-parser
地理坐标字符串解析器
3.0.1
2024-05-23 05:41 UTC
Requires
- php: ^8.1
- doctrine/lexer: ^2.1|^3.0
Requires (Dev)
- phpunit/phpunit: ~10.0
README
地理点字符串值的词法分析和解析库。
注意
此包是现在已废弃的 creof/geo-parser 包的延续。
安装
composer require longitude-one/geo-parser
使用
解析器有两种使用模式。要解析的值可以传递给构造函数,然后在返回的 Parser
对象上调用 parse() 方法。
$input = '79°56′55″W, 40°26′46″N'; $parser = new Parser($input); $value = $parser->parse(); // [-79.948611111111, 40.446111111111]
如果需要解析许多值,可以使用单个 Parser
实例。
$input1 = '56.242 E'; $input2 = '40:26:46 S'; $parser = new Parser(); $value1 = $parser->parse($input1); //56.242 $value2 = $parser->parse($input2); //-40.446111111111
支持的格式
支持单个值和成对值。以下是一些支持的格式示例,尽管并非所有可能的迭代都明确指定。
- 简单的单个带符号值
- 40
- -40
- -8.543
- +132
- +77.2
- 简单的单个带符号值,带有度符号
- 40°
- -40°
- -5.234°
- +43°
- +38.43°
- 单个无符号值,带或不带度符号,以及方位
- 40° N
- 40 S
- 56.242 E
- 带符号整数度值的单个值,带度符号,以及带有撇号的十进制度分
- 40° 26.222'
- -65° 32.22'
- +165° 52.22'
- 无符号整数度值的单个值,带度符号,带有撇号的十进制度分,以及方位
- 40° 26.222' E
- 65° 32.22' S
- 带符号整数度值的单个值,带度符号,带有撇号的整数分钟,以及可选的带有引号的整数或十进制秒
- 40° 26' 46"
- -79° 58' 56"
- 93° 19' 25.8"
- +120° 19' 25.8"
- 带符号整数度值的单个值,带冒号符号,整数分钟,以及可选的冒号和整数或十进制秒
- +40:26:46
- -79:58:56
- 93:19:25.8
- 无符号整数度值的单个值,带度符号,带有撇号的整数分钟,可选的带有引号的整数或十进制秒,以及方位
- 40° 26' 46" S
- 99° 58' 56" W
- 44° 58' 53.9" N
- 无符号整数度值的单个值,带冒号符号,整数分钟,可选的冒号和整数或十进制秒,以及方位
- 40:26:46 S
- 99:58:56 W
- 44:58:53.9 N
-
任何一种格式中的两个值,由空格分隔
-
任何一种格式中的两个值,由逗号分隔
返回
解析器将返回整数/浮点数或包含这些值的数对的数组。
异常
Lexer
和 Parser
将抛出实现接口 LongitudeOne\Geo\String\Exception\ExceptionInterface
的异常。