我有一个MySQL表,我们用它来存储一些纬度和经度。坐标定义为' geometry
'类型列,可以包含任意数量的坐标对。
当我运行此代码时,我将几何类型转换为我应该能够解析的一些文本:
SELECT ST_AsText(ST_ExteriorRing(c.coordinate))
from `app_coordinate` c, app_type_coordinate tc
where c.idtypecoord = tc.idtypecoord
and tc.description="safezone";
我得到以下结果:
LINESTRING(-17.386557 -66.150796,-17.388676 -66.150335,-17.388727 -66.14952,-17.385963 -66.147642,-17.386557 -66.150796)
LINESTRING(-17.388043 -66.157421,-17.387351 -66.154347,-17.391524 -66.153496,-17.3921 -66.156664,-17.388043 -66.157421)
LINESTRING(-17.389281 -66.1413,-17.387155 -66.141837,-17.386763 -66.142888,-17.389566 -66.142929,-17.389281 -66.1413)
LINESTRING(-17.389914 -66.143621,-17.390695 -66.143275,-17.390262 -66.1409,-17.389487 -66.141172,-17.389914 -66.143621)
每个LineString行都有一组坐标对,我需要将其拆分。所以第一对是#1,第二对是#2,等等。事实是,我可以有任意数量的对。
我需要做的是能够将每个线串分成对并存储到变量中,如pair1_x,pair1_y,pair2_x,pair2_y,pair3_x ......即使我不知道有多少对存在我有两个分界...坐标之间的空格和对之间的逗号。
答案 0 :(得分:0)
以下是我作为解决方案所做的:使用几个3 4: 1
3 5: 3
3 6: 3
......
4 6: 3
..etc
语句修改原始语句以从每行中删除一些文本,使用Replace()
语句将多行连接成一行,并使用group_concat()
语句添加了开始和结尾括号(用于格式化)。
concat()