MULTIPOLYGON数据转换
1.找出数据格式规律:写出对应正则
let wkt_multipolygon = 'MULTIPOLYGON(((114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145),(114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145)),((114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145)),((114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145),(114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145)))'
const o = wkt_multipolygon.replace(/^MULTIPOLYGON\((.*)\)$/,'[$1]').replace(/\(((\([^()]*\),?)+)\)/g, '[$1]').replace(/\(([^()]*)\)/g, '[$1]').replace(/(?<=,)\s/g, '').replace(/([\.\d\s]+)/g, '[$1]').replace(/\s/g, ',')
2.另一种思路不找规则,硬解:直接写正则硬解:
let wkt_multipolygon = 'MULTIPOLYGON(((114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145),(114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145)),((114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145)),((114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145),(114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145,114.892797962243 30.2340416262145)))'
const maping= new Map([['(','['],[')',']']])
const o = wkt_multipolygon.replace(/^MULTIPOLYGON/,'').replace(/\(|\)/g, ($0) => maping.get($0)).replace(/([\.\d]+)\s([\.\d]+)/g, '[$1,$2]')