[OSM-ja] boundary=administrativeの県境未定箇所について
内田祥一
showichi.u @ gmail.com
2013年 10月 13日 (日) 00:54:16 UTC
こんにちは、Show-ichi です。(gmail が付加する履歴が長すぎて怒られたので再投稿)
hayashi さん、お疲れ様でした。私がウェイの使用を否定するにいたった現状を理解される方が、現れたことは嬉しい限り。
リレーション内に存在する(適切なロールが付された) way はすべて既定の境界とみなす実装が存在する以上、<del>あと30匹は</del>
ほかにも現れない保証はどこにもないですから、それに応じた対処は必須と考えます。
基本的に、暫定値を処理して得た結果も暫定値です。したがって、暫定的な県境を含んだ県域データを用いて得られた結果も暫定結果として扱われる必要があります。つまり、未定区間の存在のことを何も知らないユーザーが千葉県の県域データをもちいて(暫定値を考慮しない)通常のルーチンを使って何らかの処理を行ったら、結果としてエラーが生じなくてはなりません。何も知らないユーザーに、暫定結果を正しいものと勘違いさせるようなデータ構造にしてはいけないのです。
To: いいださん
私の提案をもう一度確認して下さい。PostGISなどのシステムに開いたポリゴンをそのまま与えろとは、一切主張していません。何らかの形で不定区間を表すデータを別に用意し、それを用いて前処理により閉じたポリゴンを生成してGISシステムに処理させることが提案の主旨です。
ロールを持たない2つのノードをメンバとしてもつリレーションと、その2つのノードを両端とするウェイとは、保持しているデータの観点から見て等価です。以下はJOSMで生成した仮データです。
<relation id='-1' action='modify' visible='true'>
<member type='node' ref='-1' role='' />
<member type='node' ref='-2' role='' />
<tag k='type' v='undefined' />
</relation>
このリレーションメンバである node:id=-1 と node:id=-2 とを結ぶウェイは次のとおり:
<way id='-1' action='modify' visible='true'>
<nd ref='-1' />
<nd ref='-2' />
<tag k='boundary' v='undefined' />
</way>
前者のリレーションデータを後者のウェイに変換するのは、通常のXMLパーサ等で比較的容易に行えるものと理解しています(対応するboundary
リレーションのメンバ記述も同様)。
こういった処理をする前処理サーバを OSM DB
とGISシステムとの間に配置し、クエリーを監視して適宜データを書き換えさせれば良いと考えます。わざわざ暫定結果を得ようとするのですから、それぐらいの手間は許容範囲ではないでしょうか(これくらいの前処理を笑ってこなせるGISシステムって存在しないの?)。
あと
>はい、僕はレンダリングはどうでもいいです。
いいださんの立場の人が、それをいっちゃおしめえでしょう。みんなが使うデータ構造を決める場で、俺さえ良ければ他のユーザーのことはどうでもいいなどいう、ジャイアニズム感あふれる発言は感心しません。OSMJP
の正規メンバとしてもどうなのよと。猛省をうながしたいなあ。
#とかいいつつ、未定区間をウェイであらわす妥協案もあるんだけど、それはまた後で
== Show-ichi
-------------- next part --------------
HTML$B$NE:IU%U%!%$%k$rJ]4I$7$^$7$?(B...
URL: <http://lists.openstreetmap.org/pipermail/talk-ja/attachments/20131013/258bb4b2/attachment.html>
Talk-ja メーリングリストの案内