サイトマップ
お知らせ、メモ
案内板
うちのヘッドライン
 




トップ  >  ソフトウェア豆知識  >  QGIS豆知識  >  QGIS API 表示範囲の設定

QGIS API 表示範囲の設定

表示範囲をプログラム側から制御したいことはよくあると思います。 QGIS APIでは簡単に表示範囲を設定することができ、 大体以下のようなコードになるかと思います。

  # xL、yBは左下座標、xR、yTは右上座標
  # rect = QgsRect( QgsPoint( xL, yB ), QgsPoint( xR, yT ) ) ← v0.9
  rect = QgsRectangle( QgsPoint( xL, yB ), QgsPoint( xR, yT ) )
  
  # canvasはQgsMapCanvasクラス
  canvas.setExtent( rect )
  canvas.refresh()

点要素の周辺を表示するには

2008年11月19日の記事QgsVectorLayer::zoomToSelected()は点要素の場合は拡大しすぎてしまうと 書きましたが、上のコードを使って点要素の周辺の範囲を表示させることができます。

大体以下のようにすると良いでしょう。 以下の例は選択された要素の周辺を表示するものです。

  # layerはQgsVectorLayerクラス
  # とりあえず選択された要素は1つだけとする
  sel = layer.selectedFeatures()[0]
  
  geometry = sel.geometry()
  pnt = geometry.asPoint()
  
  # 選択された点の周辺50を表示する
  # rect = QgsRect( QgsPoint( pnt.x()-50, pnt.y()-50 ),
  #                 QgsPoint( pnt.x()+50, pnt.y()+50 ) )
  # ↑v0.9
  
  rect = QgsRectangle( QgsPoint( pnt.x()-50, pnt.y()-50 ),
                       QgsPoint( pnt.x()+50, pnt.y()+50 ) )
  
  canvas.setExtent( rect )
  canvas.refresh()
実行例
実行例

クリエイティブ・コモンズ・ライセンス
This documents by Yamate,N is licensed under a Creative Commons 表示 - 継承 3.0 非移植 License.
login