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))