クラス MapView

地図レイヤ表示widget。 [詳細]

#include <map_view.h>

MapViewのコラボレーション図

Collaboration graph
[凡例]

すべてのメンバ一覧

Public スロット

void scrollMap (int dx, int dy)
void centerOnGeo (const QPointF &pos)
 > Slot:地図をスクロール
void updateScene ()

シグナル

void destinationChanged (const QPointF &pos)
 QGraphicsSceneの再描画
void locationChanged (const QPointF &pos, qreal theta)
 signal:現在地変更時に発火
void autoscrollToggled (bool autoscroll_is_on)
 signal: autoscroll 変更時に発火

Public メソッド

 MapView (QWidget *parent=0)
void addItem (QGraphicsItem *item)
 > コンストラクタ
void removeItem (QGraphicsItem *item)
 > QGraphicsItemを追加
bool isAutoScrolling () const
 >QGraphicsItemを削除

Static Public 変数

static const qreal DEFAULT_PIXEL_PER_METER = 10.0
 zoom 縮尺のデフォルト値: 単位は1mあたりのpixel数
static const qreal GRID_ZVALUE = 100.0
 座標格子グリッドのZ値。地図レイヤのZ値はこれ未満とせよ
static const qreal LAYER_ZVALUE_MAX = 0
 レイヤの取りうる最大のzvalue

Protected メソッド

void sceneContextMenuEvent (QGraphicsSceneContextMenuEvent *e)
 QGraphicsSceneのContextMenuEvent ハンドラ。 eventFilter経由で呼ばれる。
void sceneMouseMoveEvent (QGraphicsSceneMouseEvent *e)
 QGraphicsSceneのMouseMoveハンドラ。地図上の現在位置表示に使用 eventFilter経由で呼ばれる。
void sceneLeaveEvent (QEvent *e)
 QGraphicsSceneのLeaveイベントハンドラ。Sceneからマウスが外れた。 地図上の現在位置表示のために使用
void updateGridExtent ()
 本widgetが管理するMapGridの表示範囲を更新。itemの追加,削除 時に呼ばれる
bool eventFilter (QObject *target, QEvent *event)
 イベントフィルタ。
bool save (const QImage &image)
 画像を保存する。

Private スロット

void takeSnapShot ()
 表示地図全体のsnapshot作成
void takeWindowSnapShot ()
 表示windowのsnapshot作成
void resetView ()
 viewをリセット(zoom,位置初期化)
void setupMatrix ()
 scene->view変換行列の計算
void zoomIn ()
 一段zoomIn
void zoomOut ()
 一段zoomOut
void toggleGrid (int state)
 Grid表示/非表示変更
void toggleAutoScroll (int state)
 自動スクロール変更
void setDestination ()
 目的地を設定
void setLocation ()
 現在地を設定
void onGridSpacingChanged (qreal xGridSpacing, qreal xFineGridSpacing, qreal yGridSpacing, qreal yFineGridSpacing)

Private 変数

QGraphicsView * view_
 地図表示用QGraphicsView
QGraphicsScene * scene_
 地図表示用QGraphicsScene
QSlider * zoomSlider_
 zoom変更用スライダ
QLabel * scaleLabel_
 縮尺表示ラベル
QLabel * posLabel_
 カーソル位置表示用ラベル
MapGridmapGrid_
 座標格子
QAction * setDestinationAction_
 Action: 目的地設定
QAction * setLocationAction_
 Action: 現在地設定
QAction * snapshotAction_
 Action: 地図snapshot作成
QAction * snapshotWindowAction_
 Action: Window Snapshot作成
bool is_autoscrolling_
 flag: auto scrollのOn/Off


説明

地図レイヤ表示widget。

QGraphicsView/QGraphicsSceneを持つ表示画面と,各種操作用 (zoom/scroll等) のwidgetから成る。MapLayerはQGraphicsItemから派生す るため,QGraphicsItemとして表示される。

地図レイヤの他に,特殊なQGraphicsItemとしてMapGridを内部管理する。 MapGridは全ての地図レイヤの上に描画される座標格子である。

MapGridはZ値としてGRID_ZVALUE値を持つ。ほかのMapLayerがこれより小さ なZ値を持つ(というルールを守る)ことで,Gridの最上位への描画を実現し ている。


コンストラクタとデストラクタ

MapView::MapView ( QWidget *  parent = 0  ) 


関数

void MapView::addItem ( QGraphicsItem *  item  ) 

> コンストラクタ

void MapView::removeItem ( QGraphicsItem *  item  ) 

> QGraphicsItemを追加

bool MapView::isAutoScrolling (  )  const [inline]

>QGraphicsItemを削除

void MapView::scrollMap ( int  dx,
int  dy 
) [slot]

void MapView::centerOnGeo ( const QPointF &  pos  )  [slot]

> Slot:地図をスクロール

地図座標のposをcenterにする。 地図座標をGraphicsView座標に変換してQGraphicsViewcenterOn()を 呼ぶため,点がポートの外部に近い場合は厳密に中央にはならない。

参照:
QGraphicsView::centerOn(const QPointF&);

void MapView::updateScene (  )  [slot]

void MapView::destinationChanged ( const QPointF &  pos  )  [signal]

QGraphicsSceneの再描画

signal:目的地変更時に発火

void MapView::locationChanged ( const QPointF &  pos,
qreal  theta 
) [signal]

signal:現在地変更時に発火

引数:
pos 設定する自己の現在地
theta 方位角[rad]

void MapView::autoscrollToggled ( bool  autoscroll_is_on  )  [signal]

signal: autoscroll 変更時に発火

void MapView::sceneContextMenuEvent ( QGraphicsSceneContextMenuEvent *  e  )  [protected]

QGraphicsSceneのContextMenuEvent ハンドラ。 eventFilter経由で呼ばれる。

void MapView::sceneMouseMoveEvent ( QGraphicsSceneMouseEvent *  e  )  [protected]

QGraphicsSceneのMouseMoveハンドラ。地図上の現在位置表示に使用 eventFilter経由で呼ばれる。

void MapView::sceneLeaveEvent ( QEvent *  e  )  [protected]

QGraphicsSceneのLeaveイベントハンドラ。Sceneからマウスが外れた。 地図上の現在位置表示のために使用

void MapView::updateGridExtent (  )  [protected]

本widgetが管理するMapGridの表示範囲を更新。itemの追加,削除 時に呼ばれる

bool MapView::eventFilter ( QObject *  target,
QEvent *  event 
) [protected]

イベントフィルタ。

参照:
QObject::installEventFilter()
ここでは,QGraphicsSceneのイベントをこのウィジェットでハン ドルさせるために使用

bool MapView::save ( const QImage &  image  )  [protected]

画像を保存する。

void MapView::takeSnapShot (  )  [private, slot]

表示地図全体のsnapshot作成

void MapView::takeWindowSnapShot (  )  [private, slot]

表示windowのsnapshot作成

void MapView::resetView (  )  [private, slot]

viewをリセット(zoom,位置初期化)

void MapView::setupMatrix (  )  [private, slot]

scene->view変換行列の計算

void MapView::zoomIn (  )  [private, slot]

一段zoomIn

void MapView::zoomOut (  )  [private, slot]

一段zoomOut

void MapView::toggleGrid ( int  state  )  [private, slot]

Grid表示/非表示変更

void MapView::toggleAutoScroll ( int  state  )  [private, slot]

自動スクロール変更

void MapView::setDestination (  )  [private, slot]

目的地を設定

void MapView::setLocation (  )  [private, slot]

現在地を設定

グリッドの間隔が変化したときにコールされ,ラベルを変更

void MapView::onGridSpacingChanged ( qreal  xGridSpacing,
qreal  xFineGridSpacing,
qreal  yGridSpacing,
qreal  yFineGridSpacing 
) [private, slot]


変数

const qreal MapView::DEFAULT_PIXEL_PER_METER = 10.0 [static]

zoom 縮尺のデフォルト値: 単位は1mあたりのpixel数

const qreal MapView::GRID_ZVALUE = 100.0 [static]

座標格子グリッドのZ値。地図レイヤのZ値はこれ未満とせよ

const qreal MapView::LAYER_ZVALUE_MAX = 0 [static]

レイヤの取りうる最大のzvalue

QGraphicsView* MapView::view_ [private]

地図表示用QGraphicsView

QGraphicsScene* MapView::scene_ [private]

地図表示用QGraphicsScene

QSlider* MapView::zoomSlider_ [private]

zoom変更用スライダ

QLabel* MapView::scaleLabel_ [private]

縮尺表示ラベル

QLabel* MapView::posLabel_ [private]

カーソル位置表示用ラベル

座標格子

QAction* MapView::setDestinationAction_ [private]

Action: 目的地設定

QAction* MapView::setLocationAction_ [private]

Action: 現在地設定

QAction* MapView::snapshotAction_ [private]

Action: 地図snapshot作成

QAction* MapView::snapshotWindowAction_ [private]

Action: Window Snapshot作成

flag: auto scrollのOn/Off


このクラスの説明は次のファイルから生成されました:

マップビューワコンポーネントに対してThu Jun 17 20:24:08 2010に生成されました。  doxygen 1.5.5