JavaScript
 Computer >> コンピューター >  >> プログラミング >> JavaScript

【JavaScript】文字列の座標リストを緯度・経度の2つの浮動小数点数配列に変換する方法

地図アプリや位置情報サービスを開発していると、「10.45322,-6.8766363」のようにカンマ区切りの文字列で座標データを受け取ることがあります。この記事では、そのような文字列の座標リストを、緯度(latitude)と経度(longitude)の2つの浮動小数点数(float)配列に変換する方法を解説します。

元となる座標データ

例として、以下のような文字列形式の座標リストが与えられているとします。

var listOfStrings = ["10.45322,-6.8766363", "78.93664664,-9.74646646", "7888.7664664,-10.64664632"];

各要素は「緯度,経度」の順にカンマで区切られた1つの文字列になっています。

split()とmap()を使った変換方法

文字列を2つの浮動小数点数配列に変換するには、split()メソッドでカンマ(,)を基準に文字列を分割し、map()メソッドで数値に変換するのが効果的です。

コード例

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("正の値が緯度=")
console.log(latitude);
console.log("負の値が経度=")
console.log(longitude);

処理の流れ

上記のコードでは、forEach()で各文字列を取り出し、split(',')によって緯度と経度の部分に分割しています。その後、map(Number)で文字列を数値型に変換し、インデックス(0なら緯度、1なら経度)に応じて対応する配列へpushしています。

プログラムの実行方法

Node.js環境で上記のプログラムを実行するには、ターミナルまたはコマンドプロンプトから以下のコマンドを使用します。

node fileName.js

ここでは、ファイル名をdemo180.jsとして保存した場合の実行例を紹介します。

実行結果

プログラムを実行すると、以下のような出力が得られます。

PS C:\Users\Amit\javascript-code> node demo180.js
正の値が緯度=
[ 10.45322, 78.93664664, 7888.7664664 ]
負の値が経度=
[ -6.8766363, -9.74646646, -10.64664632 ]

このように、split()とmap()を組み合わせることで、文字列形式の座標データを簡単に緯度・経度それぞれの浮動小数点数配列へ変換できます。Google Maps APIなど外部のマッピングライブラリに座標を渡す際にも、この手法が役立ちます。

  1. JavaScriptで辞書(連想配列)をオブジェクトのリストに変換する方法

    JavaScriptでは、キーと値のペアを持つ「辞書」のようなオブジェクトを、Object.values()メソッドを使うことで簡単にオブジェクトの配列(リスト)へ変換できます。以下に具体的なサンプルコードを示します。 サンプルコード <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name=viewport content=width=device-width, initial-scale=1.0 /> <title>Document&

  2. 【JavaScript】2つの配列を1つのオブジェクトに変換する方法をわかりやすく解説

    2つの配列を1つのJavaScriptオブジェクトに変換できる? はい、可能です。JavaScriptでは「キー」となる配列と「値」となる配列の2つを組み合わせて、1つのオブジェクトを作成できます。最も基本的な方法は、forEach()メソッドで片方の配列をループ処理しながら、もう片方の配列の対応する要素を値として代入していくやり方です。 以下に、実際に動作するサンプルコードを紹介します。 コード例 <!DOCTYPE html> <html lang=ja> <head> <meta charset=UTF-8 /> <meta name