MapForceにおけるXMLのワイルドカードデータマッピングと変換

MapForce 2014では、XMLのワイルドカードをマッピングできるようになり、XMLスキーマに組み込まれた拡張機能を実現できるようになりました。これは、xs:anyまたはxs:anyAttributeとして実装されています。

以下に、XMLSpyで表示されるXMLの断片を示します

この非常に長いファイルの一部分ですが、ガーミン製のGPSデバイスによるロードトリップ中に記録された2つの位置情報を示しています。XMLデータはGPX XMLスキーマに準拠しており、ガーミン独自の拡張機能により、速度や進行方向の情報が追加されています。XMLのワイルドカードマッピングを使用することで、これらの拡張機能をMapForce上で、XMLスキーマに明示的に定義された他の要素と同様にマッピングすることができます。

ここでは、.gpxファイルを読み込み、その中に記録されている移動経路の中で最高速度を抽出することを想定してみましょう

--more--

MapForceで新しいマッピングデザインを開始するには、.gpxファイルを入力コンポーネントとして取り込むことができます。MapForceは、関連するXMLスキーマで定義され、マッピングに使用可能なすべての要素を表示します。以下に、トラックポイントに関するXMLスキーマの一部を示します

「trkpt」要素の直後には、緯度、経度、標高、そして時刻が表示され、これらはXMLの断片に含まれるデータを示します。それ以降の項目(磁気偏差を示す「magvar」から、DGPS局のIDを示す「dgpsid」まで)はすべてオプションであり、Garminのデータファイルには含まれていません。

このXMLスキーマでは、速度やコースに関する要素は一切定義されていません。代わりに、画像の最下部にあるxs:anyに基づいて、速度やコースの情報が許可されています。xs:anyの横にあるアイコンをクリックすると、拡張機能などを定義する別のXMLスキーマをインポートできるダイアログが表示されます。インポート後、元のXMLスキーマと拡張機能を組み合わせるための仕組みが作成されます。インポートされた新しい要素は、ソースコンポーネントに表示され、マッピングが可能です

マッピングにおけるデータの並び替え

MapForceに付属するサンプルファイルには、"FindHighestTemperatures.mfd"という名前のマッピングが含まれており、これを利用して、ソート関数を使ってファイルから最高速度を抽出する例として活用できます

この機能は、すべての速度値を大きい順に並べ替え、そのうちの最初の値のみを出力します。表示されている「Z-A」という並べ替え順序は、数値データを大きい順に並べ替えることを意味します。

マッピングにおける値の変換

最後に、速度をメートル毎秒からマイル毎時へと変換し、その結果を小数点以下2桁に丸め、さらに説明的な文章を追加する必要があります

上記の文字列連結関数によって得られた結果は、出力のためにテキストファイルに書き込まれます

注意点として、関数間でのデータ変換において、速度(speed)の数値型データを明示的に文字列型に変換する必要はありませんでした。MapForceは、データ型の変換を自動的に処理します。以下に、主要な処理に注釈を付けた、完全なマッピングの簡略化されたビューを示します

画像をクリックするか、または こちらをクリックすると、拡大表示されます.

Altovaのウェブサイトには、MapForceに関する無料のオンライン製品トレーニングが用意されています。さらに、MapForceの無料トライアル版をダウンロードして、データマッピングと変換のスキルを今すぐ向上させることができます。