naisi_coordinates_is_valid

查看 Markdown

验证经度、纬度或英文逗号分隔的完整坐标。

经度范围 [-180, 180],纬度范围 [-90, 90],包含边界,最多 15 位小数。 支持正负号和首尾 ASCII 空白;不支持科学计数法、中文逗号或数字中的空白。 合并格式必须恰有一个英文逗号、两侧非空,且 $latitude 必须为 null。 null 表示该项不参与校验;两项均为 null、空字符串或任一项非法时返回 false。

函数签名

function naisi_coordinates_is_valid(?string $coordinates = null, ?string $latitude = null): bool

调用前提

应用入口先调用 naisi_is_ext_license_valid 并确认返回 true。只验证同一请求内已有的有效 FULL/BASIC 证明;没有证明或证明失效时立即返回失败值,不现场补做完整校验。

授权类别:LICENSE;执行模式:PROOF。许可不代替登录、租户或权限上下文;身份与数据要求见本页参数及用途说明。

参数

$coordinates

  • 类型:?string
  • 必填:否
  • 默认值:null
  • 方向:输入参数。

单独经度或“经度,纬度”文本;null 表示不提供经度,默认 null。

$latitude

  • 类型:?string
  • 必填:否
  • 默认值:null
  • 方向:输入参数。

单独纬度文本;null 表示不提供纬度,默认 null。合并坐标形式下必须为 null。

返回值

类型:bool

至少提供一项且所有提供的坐标均合法时返回 true,否则返回 false。

调用示例

当前请求须满足上方调用前提;请检查实际返回值和引用输出,随机结果及数据包内容以运行环境为准。

$coordinates = '101.000001,11.123456';
$latitude = null;

$result = naisi_coordinates_is_valid($coordinates, $latitude);
var_export($result);

坐标格式与失败规则

经度范围 [-180, 180],纬度范围 [-90, 90],包含边界,最多 15 位小数。数字格式为可选正负号、至少一位整数,以及可选的小数点和 1~15 位小数;允许前导零和坐标两侧 ASCII 空白。不接受科学计数法、中文逗号、数字内部空白、NUL、.5、1.、NaN 或 INF。合并形式必须恰有一个英文逗号且两侧非空,第二个参数必须为 null。

按十进制数字精确判断边界,不经过浮点转换。原始 PHP 类型不匹配、无参数、空字符串、非法格式、超出范围或未授权返回 false;参数数量错误遵循 PHP 规则。

升级与相关接口

当前公开接口统一为本函数,旧 naisi_longitude_is_valid() 和 naisi_latitude_is_valid() 已移除。仅经度传第一个参数;仅纬度使用 latitude: 命名参数或传入 null, $latitude。

版本信息

  • 实现模块:validation
  • 授权类别:LICENSE / PROOF
  • 失败回退:false
  • 文档同步:2026-10-18