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