좌표 데이터를 다루다 보면 위도와 경도가 하나의 문자열로 합쳐져 있는 경우를 자주 만나게 됩니다. 예를 들어 다음과 같은 문자열 배열이 있다고 가정해 보겠습니다.
var listOfStrings = ["10.45322,-6.8766363", "78.93664664,-9.74646646", "7888.7664664,-10.64664632"];
이처럼 쉼표(,)로 구분된 문자열 좌표들을 위도(latitude)와 경도(longitude)라는 두 개의 별도 부동소수점(float) 배열로 변환하려면, JavaScript의 split() 메서드와 map() 메서드를 함께 사용하면 간단하게 처리할 수 있습니다.
변환 원리
핵심 로직은 다음과 같습니다.
- split(','): 각 문자열을 쉼표를 기준으로 나누어 위도 값과 경도 값으로 분리합니다.
- map(Number): 분리된 문자열을 숫자(부동소수점) 타입으로 변환합니다.
- forEach + 인덱스 활용: 변환된 값의 인덱스(0 또는 1)에 따라 각각 latitude 배열과 longitude 배열에 저장합니다.
예제 코드
var listOfStrings = ["10.45322,-6.8766363", "78.93664664,-9.74646646", "7888.7664664,-10.64664632"];
var latitude = [];
var longitude = [];
listOfStrings.forEach(obj => obj.split(',')
.map(Number)
.forEach((value, index) => [latitude, longitude][index].push(value))
);
console.log("양수 값은 위도(latitude)입니다 =")
console.log(latitude);
console.log("음수 값은 경도(longitude)입니다 =")
console.log(longitude);프로그램 실행 방법
위 프로그램을 실행하려면 Node.js 환경에서 다음 명령어를 입력합니다.
node fileName.js
여기서는 파일 이름이 demo180.js라고 가정합니다.
실행 결과
프로그램을 실행하면 아래와 같은 출력 결과를 확인할 수 있습니다.
PS C:\Users\Amit\javascript-code> node demo180.js 양수 값은 위도(latitude)입니다 = [ 10.45322, 78.93664664, 7888.7664664 ] 음수 값은 경도(longitude)입니다 = [ -6.8766363, -9.74646646, -10.64664632 ]
정리
이 방식의 장점은 반복문을 직접 작성하지 않고도 split(), map(Number), forEach()만으로 문자열 좌표를 깔끔하게 숫자 배열로 분리할 수 있다는 점입니다. 실무에서는 지도 API나 위치 기반 서비스를 개발할 때 이러한 좌표 파싱 로직이 자주 필요하므로, 꼭 익혀두면 유용하게 활용할 수 있습니다.