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

如何用Java正则互换.kml文件中的x轴与y轴坐标数值

坐标互换实现方案

KML 坐标默认格式为经度(x),纬度(y),可选高度,多组坐标间用空格分隔,你可以直接用以下正则配合replace方法实现x、y数值互换:

1. 匹配规则

使用正则 ([\d.+-]+),([\d.+-]+)(,?[\d.+-]+)? 匹配单组坐标:

  • 分组1捕获x轴数值(支持正负号、小数格式)
  • 分组2捕获y轴数值
  • 分组3捕获可选的高度值,不存在时自动为空
    替换模板为 $2,$1$3,直接交换前两个分组的位置即可。

2. 代码示例

Kotlin 版本

// 替换为你的原始坐标串
val originalCoords = "116.3972,39.9075,10 121.4737,31.2304"
val result = originalCoords.replace(Regex("([\\d.+-]+),([\\d.+-]+)(,?[\\d.+-]+)?"), "$2,$1$3")

Java 版本

// 替换为你的原始坐标串
String originalCoords = "116.3972,39.9075,10 121.4737,31.2304";
String result = originalCoords.replaceAll("([\\d.+-]+),([\\d.+-]+)(,?[\\d.+-]+)?", "$2,$1$3");

效果示例

输入输出
116.3972,39.9075,1039.9075,116.3972,10
121.4737,31.230431.2304,121.4737

注意:如果你的坐标串存在多余换行、连续空格,建议先做空白字符格式化再执行替换,避免匹配异常。

内容的提问来源于stack exchange,提问作者Teo Pal

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 02:36:07