QGIS API と定義済みの QGIS プロジェクト ファイルを使用して Windows フォーム コントロールを作成しようとしています。これにより、Windows フォーム コントロールに X および Y プロパティを設定でき、QGIS API はコントロールに定義済みのマップ データを表示します。 、指定された座標に焦点を合わせます。
QgsProject::instance()->read() を使用すると、未処理の例外 (場所 0x00000000 を読み取るアクセス違反) が発生するように見えるため、実際のコードを 1 行ずつ選択しようとしています。プロジェクトファイルからレイヤーを抽出し、それらをマップキャンバスに追加することを扱う qgsproject.cpp の一部があります。
QgsMapLayer *mapLayer = null;
if(type=="vector")
mapLayer = new QgsVectorLayer;
else if(type==""raster")
mapLayer = new QgsRasterLayer;
ここで、type は要素の「type」属性の値です。
Visual Studio プロジェクトでこれをコンパイルしようとすると、どちらのタイプのマップ レイヤーにもデフォルトのコンストラクターがないというメッセージが表示されます。私が利用できる唯一のコンストラクターはパスとベース名を必要とし、実際には機能していないようです (したがって、プロジェクト ファイルが完全なアプリケーション GUI に読み込まれることを考慮して、GUI と同じメソッドを使用しようとしています)。
QgsRasterLayer のデフォルトのコンストラクターは、プライベート メンバー関数でさえないようです。これをコンパイルする方法を知っている人はいますか?
ありがとう、リク