JSFiddle - React, Tailwind, and code Playground
by benjrei
JavaScript
const str = 'LINESTRING Z (58.86307663443 9.144011602275569 153.44445, 58.86304106888906 9.143948749835356 153.38, 58.86303070540819 9.143930693356618 153.37, 58.86300035153817 9.143876921402063 153.33, 58.86295285632967 9.143792687518859 153.25999, 58.862911388258176 9.143718650544985 153.19697)';
const wktToLatLngAlt = (wkt)=>{
const regEx = /\((.*?)\)/;
const latLngAltStr = wkt.match(regEx) && wkt.match(regEx)[1];
if(latLngAltStr){
const latLngAlt = latLngAltStr.split(', ');
if(latLngAlt.length === 1){
const arr = latLngAlt[0].split(' ');
return {lat:arr[0], lng:arr[1], alt:arr[2]}
}else if(latLngAlt.length > 1){
let arrLatLngAlt = [];
latLngAlt.forEach((item)=>{
const arr = item.split(' ');
const obj = {
lat: parseFloat(arr[0]),
lng: parseFloat(arr[1]),
alt: parseFloat(arr[2])
};
arrLatLngAlt.push(obj)
})
return arrLatLngAlt
}
console.log(latLngAlt)
}
return null
};
const wktToLatLng = (wkt)=>{
const regEx = /\((.*?)\)/;
const latLngStr = wkt.match(regEx) && wkt.match(regEx)[1];
if(latLngStr){
const latLngArr = latLngStr.split(', ');
if(latLngArr.length === 1){
const arr = latLngArr[0].split(' ');
return {lat:arr[0], lng:arr[1], alt:arr[2]}
}else if(latLngArr.length > 1){
let arrLatLng = [];
latLngArr.forEach((item)=>{
const arr = item.split(' ');
const obj = {
lat: parseFloat(arr[0]),
lng: parseFloat(arr[1])
};
arrLatLng.push(obj)
})
return arrLatLng
}
}
return null
};
console.log(wktToLatLng(str))
console.log(wktToLatLngAlt(str))