githubにリポジトリを作成、ローカルリポジトリからPUSHまで

既にgithubの使い方は説明しているがSSHを使用しない方法を記載

PC上にはgit for windowsがインストール済であることを前提とする

github上でリポジトリを作成

PC上にローカルリポジトリのフォルダ「myrepo」を作成

カレントを「myrepo」に移動しローカルリポジトリを初期化

C:\projects\test\git>mkdir myrepo
C:\projects\test\git>cd myrepo
C:\projects\test\git\myrepo>git init
Initialized empty Git repository in C:/projects/test/git/myrepo/.git/
C:\projects\test\git\myrepo>

ファイルを作成して「add」、「commit」

C:\projects\test\git\myrepo>echo hello > readme.txt
C:\projects\test\git\myrepo>git add .
C:\projects\test\git\myrepo>git commit -m "comment"

github上からリポジトリのURLをコピー

リモートリポジトリを設定し、push
※githubのアカウントを聞かれたらメールアドレスとパスワードを入力

C:\projects\test\git\myrepo>git remote add origin https://github.com/省略/myrep.git
C:\projects\test\git\myrepo>git push origin master
Enumerating objects: 3, done.
Counting objects: 100% (3/3), done.
Writing objects: 100% (3/3), 216 bytes | 216.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To https://github.com/省略/myrep.git
 * [new branch]      master -> master

C:\projects\test\git\myrepo>

頂点エディタで編集時にスナップを有効にする

スナップツールバーでスナップのON/OFFを設定

以前、このスナップツールバーが有効にできずにユーザーグループで問い合わせをしたらレイヤとプロジェクトのEPSGが同じでないと有効にできないはずと回答をいただいた。確かにその時に確認した。

しかし改めて確認したところプロジェクトのEPSG=3857、レイヤのEPSG=4326の状態でスナップがONにできた。

Pythonでは以下のコードでスナップの有効、無効を設定可能

スナップを有効にする

“`
config = QgsProject.instance().snappingConfig()
config.setEnabled(True)
QgsProject.instance().setSnappingConfig(config)
“`

カテゴリー: QGIS

Feature登録時に属性情報入力ダイアログを表示しない

Featureを登録すると通常は属性情報入力ダイアログが表示される。

レイヤのプロパティでFeature登録時に属性情報入力ダイアログの表示/非表示を設定できる

Pythonでの設定方法

属性情報入力ダイアログを非表示

layer = self.iface.activeLayer()
editFormConfig = layer.editFormConfig()
editFormConfig.setSuppress(QgsEditFormConfig.FeatureFormSuppress.SuppressOn)
layer.setEditFormConfig(editFormConfig)

属性情報入力ダイアログを表示

layer = self.iface.activeLayer()
editFormConfig = layer.editFormConfig()
editFormConfig.setSuppress(QgsEditFormConfig.FeatureFormSuppress.SuppressOff)
layer.setEditFormConfig(editFormConfig)

線分と点の最短距離

points=[]
point = QgsPoint()
point.setX(10)
point.setY(10)
points.append(point)
point = QgsPoint()
point.setX(30)
point.setY(20)
points.append(point)
line = QgsLineString()
line.setPoints(points)

point = QgsPoint()
point.setX(15)
point.setY(10)

p = QgsGeometryUtils.closestPoint(line, point)

p
<QgsPoint: Point (14 12)>

iOSのMKMapViewでタイル表示

iOSのMKMapViewでApple Mapではなく他のタイルサーバー(OSM)を使用するにはMKMapViewのオーバーレイ機能を使用する。

MKMapView *mv = [[[MKMapView alloc]initWithFrame:rect]autorelease];
[mv setMapType:MKMapTypeStandard];
[mv setDelegate:self];
    
NSString *template = @"http://tile.openstreetmap.org/{z}/{x}/{y}.png";
MKTileOverlay *overlay = [[MKTileOverlay alloc] initWithURLTemplate:template];
overlay.canReplaceMapContent = YES;
[mv addOverlay:overlay level:MKOverlayLevelAboveLabels];
- (MKOverlayRenderer *)mapView:(MKMapView *)mapView rendererForOverlay:(id<MKOverlay>)overlay {
    if ([overlay isKindOfClass:[MKTileOverlay class]]) {
        return [[MKTileOverlayRenderer alloc] initWithTileOverlay:overlay];
    }
    return nil;
}

pyrcc5を実行すると「指定されたモジュールが見つかりません」

QGISと同時にインストールされるpyrcc5.batを実行してもエラーが発生してコンパイルができない

C:\OSGeo4W\bin>C:\OSGeo4W\apps\Python37\Scripts\pyrcc5.bat
Traceback (most recent call last):
  File "C:\OSGeo4W\apps\Python37\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "C:\OSGeo4W\apps\Python37\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "C:\OSGeo4W\apps\Python37\lib\site-packages\PyQt5\pyrcc_main.py", line 21, in <module>
    from PyQt5.QtCore import PYQT_VERSION_STR, QDir, QFile
ImportError: DLL load failed: 指定されたモジュールが見つかりません。

‘pyrcc5’ is not recognized as an internal or external commandにずばり答えが記載されている

予め以下のBATを実行してから

call "C:\Program Files\QGIS 3.0\bin\o4w_env.bat"
call "C:\Program Files\QGIS 3.0\bin\qt5_env.bat"
call "C:\Program Files\QGIS 3.0\bin\py3_env.bat"

pyrccコマンドを実行する

pyrcc5 -o resources.py resources.qrc