#include <map_view.h>

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_ |
| カーソル位置表示用ラベル | |
| MapGrid * | mapGrid_ |
| 座標格子 | |
| QAction * | setDestinationAction_ |
| Action: 目的地設定 | |
| QAction * | setLocationAction_ |
| Action: 現在地設定 | |
| QAction * | snapshotAction_ |
| Action: 地図snapshot作成 | |
| QAction * | snapshotWindowAction_ |
| Action: Window Snapshot作成 | |
| bool | is_autoscrolling_ |
| flag: auto scrollのOn/Off | |
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()を 呼ぶため,点がポートの外部に近い場合は厳密に中央にはならない。
| 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] |
イベントフィルタ。
| 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] |
カーソル位置表示用ラベル
MapGrid* MapView::mapGrid_ [private] |
座標格子
QAction* MapView::setDestinationAction_ [private] |
Action: 目的地設定
QAction* MapView::setLocationAction_ [private] |
Action: 現在地設定
QAction* MapView::snapshotAction_ [private] |
Action: 地図snapshot作成
QAction* MapView::snapshotWindowAction_ [private] |
Action: Window Snapshot作成
bool MapView::is_autoscrolling_ [private] |
flag: auto scrollのOn/Off
1.5.5