Swiftで、読み込んだgpxファイルの中から、位置情報(name, lat, lon)のセット(複数)を抽出する方法が分かりません。
■Swiftコード(一部抜粋)
if( FileManager.default.fileExists( atPath: fullpath ) ) {
print("ファイルあり", fullpath) do { let text = try String(contentsOfFile: fullpath, encoding: String.Encoding.utf8) //fileの中身を表示 print(text)
■gpxの内容は以下のようになっていますが(不要な文字列が他にも多くあります)、
必要なデータは lat=" ", long=" ", <name> </name>の各表示項目で挟まれた箇所になります(太字箇所)。
gpxファイルの内容(上記print(text)の出力内容。一部抜粋)
<wpt lat="**33.561051953583956**" lon="**130.300862174481153**"> <time>2019-09-15T00:21:09Z</time> <name>**022**</name> <sym>Flag, Blue</sym> <type>user</type> <extensions> <gpxx:WaypointExtension> <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode> </gpxx:WaypointExtension> <wptx1:WaypointExtension> <wptx1:DisplayMode>SymbolAndName</wptx1:DisplayMode> </wptx1:WaypointExtension> <ctx:CreationTimeExtension> <ctx:CreationTime>2019-09-15T00:21:09Z</ctx:CreationTime> </ctx:CreationTimeExtension> </extensions> </wpt> <wpt lat="**33.558126669377089**" lon="**130.307747405022383**"> <time>2019-09-15T00:22:44Z</time> <name>**023**</name> <sym>Flag, Blue</sym> <type>user</type> <extensions> <gpxx:WaypointExtension> <gpxx:DisplayMode>SymbolAndName</gpxx:DisplayMode> </gpxx:WaypointExtension> <wptx1:WaypointExtension> <wptx1:DisplayMode>SymbolAndName</wptx1:DisplayMode> </wptx1:WaypointExtension> <ctx:CreationTimeExtension> <ctx:CreationTime>2019-09-15T00:22:44Z</ctx:CreationTime> </ctx:CreationTimeExtension> </extensions> </wpt>■最終的には
[["wpt1", 33.56, 130.3], ["wpt2", 33.57, 130.31]]のように、配列に格納したいと考えています。
下の方法で、データさえ抽出できれば、name, lat, lon を配列に順番に格納することができることを確認しています。
var hogeArray:[Any] = ["wpt1",33.56, 130.30]
var testArray:[Any] = ["wpt2",33.57, 130.31]
var array3:[[Any]] = [] array3 += [hogeArray, testArray] print(array3)
出力結果
[["wpt1", 33.56, 130.3], ["wpt2", 33.57, 130.31]]
方法をご存知の方がいらっしゃいましたら、ご教示いただけますと助かります。よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。