Calendar3日目の記事です。前回はnode要素しか使用してませんでしたが、今回はway要素とtag要素を使用してみます。way要素はnode要素を繋いで建物や公園などのエリア、道路などを表現しているらしいです。tag要素はnodeやwayの情報が入っています。※XMLの詳細はこちら。JA;OSM_XMLway要素とtag要素の情報を可視化すると、とても地図らしい感じになりました。パッチはこの様になりました。緯度経度を-1~1の座標にマッピングするパッチはよく使うことになりそうだったのでサブパッチにしています。煩雑なリンクを回避するためにS/Rで元のXMLデータは飛ばしています。今回のキモとなるノードはKeySortとLineStripです。vvvvでのプログラミングでよく悩むことなるのが以下の様な処理。Spread2の値にSpread1の値を割り当てたい。このパッチの例でいうと以下の処理です。way要素はnode要素の繋がりを表現しています。ref="158030142"/>がnodeのidなのでそのidのノードの座標を持ってきて線でつないでやればwayが可視化できます。nodeの位置座標が入っているSpredsからnode_idをキーにして座標を取得してやらねばなりません。KeySortノードはその処理を行っています。今回は自分のPCではちょっと重たかったのでS+Hノードなどを使って一回だけ計算するようにしています。これはパフォーマンス次第なので必須の処理ではないですが。KeySortノードの詳しい使い方はヘルプパッチに分かり易く書いているのでそちらを参照してください。※関連するノードとしては=ノードとSelectノードを組み合わせとか、Siftノードあたりも場合によっては使えるかもしれません。最終手段は「プラグインを書く」ですが...。全部のSliceを繋いでしまうと余計な線が表示されてしまうので、それぞれのway要素毎にnode情報を一まとめにしながら線を繋ぎます。(違うway要素のnode情報へは線を繋がない。)それにはLineStripノードが便利でした。Sizeピンへ渡してやれば実現できます。※LineノードでもBinSizeというピンがあったので出来るのかと思いましたがうまくいきませんでした。コメントをキャンセルメールアドレスが公開されることはありません。コメントデータの処理方法の詳細はこちらをご覧ください。Blogは、Amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。SiteOrigin。