Python でGPS ログビューアを

GPSのログビューアをつくろうと思って以下のライブラリ(osmgpsmap)を利用。
簡単に OpenStreetMapを使ったアプリケーションができる。
http://nzjrs.github.com/osm-gps-map/
python のサンプルも付いているのだが、ルートの表示はなくて、ぐぐってもいまひとつわからなかったので書いておく。

Pointを作ってから、Trackに add_Pointすれば良いのだが、普通にPointをつくろうとすると、抽象クラスだとかエラーを出す。
正解は、Pointを作成する関数を使う。以下のような感じ。

                p = osmgpsmap.point_new_degrees( lon, lat )
                track.add_point( p )

# サンプルには、クリックして星をつける機能があって、それでPointを使うので、それを見ればよかったのだが…。

pygtk で、tree view の表示内容を自由に編集する方法。

pygtk を使ってみてわかったこと。
ぐぐってもあまり出て来なかったので書いておく。

TreeView で、Model (TreeStore)に入っているデータをそのまま出すには、例えばアイコンなら、モデル(配列?)にアイコンを予め入れておいて、
tvc = gtk.TreeViewColumn('Entry 一覧')
tvc.add_attribute( cell, 'pixbuf', 2 )
などとして、アイコンを入れた配列の添字を指定すればいいけど、全部同じアイコンを表示したい時などはもったいない。また、モデルに入れるデータに意味を持たせたい時も困る。という訳で以下のように、set_cell_data_func()を使う。
以下の例では、アイコンと文字を表示するが、アイコンはみんな同じ、文字は配列の3番目の要素の内容で色がつきます。

        # ----- TreeViewColumn
        tvc  = gtk.TreeViewColumn('Entry 一覧')

        cell = gtk.CellRendererPixbuf()
        tvc.pack_start(cell, False )
        icon = self.window.render_icon(gtk.STOCK_DND, gtk.ICON_SIZE_BUTTON)
        def _setTVPix( col, cell, model, itr ):
            cell.props.pixbuf = icon
        tvc.set_cell_data_func( cell, _setTVPix )

        cell = gtk.CellRendererText()
        tvc.pack_start(cell, False )
        def _setTVAttr( col, cell, model, itr ):
            colmap={ '0':'#000000', '1':'#0000ff', '2':'#006600', '3':'#ff0000' }
            cell.props.text = model.get(itr,0)[0]
            attr = model.get(itr,3 )[0]
            if attr == None:
                cell.props.foreground = 'black'
            else:
                cell.props.foreground = colmap[attr]
        tvc.set_cell_data_func( cell, _setTVAttr )
        self.treeView.append_column(tvc)

simple Outline Editor

とってもシンプルなアウトラインエディタ。

https://github.com/shin-harada/simpleOE

Gjots というのがシンプルでよかったので使ってみたのだが、なんとも不安定だったので、ちょこっと書いたらそこそこできたので、ここにおいておく。