タグ付けされた質問 「qgis-2.10」

3
PyQGISのループで空間クエリを実行する
私がやろうとしていること:ポイントシェープファイルをループして、ポリゴンに該当する各ポイントを選択します。 次のコードは、本で見つけた空間クエリの例に基づいています。 mitte_path = r"D:\PythonTesting\SelectByLocation\mitte.shp" punkte_path = r"D:\PythonTesting\SelectByLocation\punkte.shp" polygon = QgsVectorLayer(mitte_path, 'Mitte', 'ogr') points = QgsVectorLayer(punkte_path, 'Berlin Punkte', 'ogr') QgsMapLayerRegistry.instance().addMapLayer(polygon) QgsMapLayerRegistry.instance().addMapLayer(points) polyFeatures = polygon.getFeatures() pointsCount = 0 for poly_feat in polyFeatures: polyGeom = poly_feat.geometry() pointFeatures = points.getFeatures(QgsFeatureRequest().setFilterRect(polyGeom.boundingBox())) for point_feat in pointFeatures: points.select(point_feat.id()) pointsCount += 1 print 'Total:',pointsCount これは機能し、データセットを選択しますが、問題はバウンディングボックスによって選択されるため、明らかに興味のないポイントを返すことです。 qgis:selectbylocationを使用せずにポリゴン内のポイントのみを返すにはどうすればよいですか? 私はwithin()およびintersects()メソッドを使用しようとしましたが、それらを機能させなかったため、上記のコードに頼りました。しかし、おそらくそれらは結局のところ鍵です。


2
QGIS / Pythonでベクトルをスケルトン化する
QGISとそのバンドルを使用して、大きなベクターデータセットのスケルトンを作成するツールを見つけようとしています。Pythonまたはコマンドラインを介してプログラムから直接呼び出すことができます(QGIS、GRASS、OGRなどはすべて問題ありません)。 ターゲットは、ストリートエリアを表す穴のある大きな細いポリゴンであり、スケルトン化によって道路ネットワークの概算を取得する必要があります。 これまでに見つけたもの: GRASS 7.0はv.skeleton十分に優れているはずですが、近い将来、QGISとの統合には対応していないようです。 もちろん、CGALにはスケルトンアルゴリズムがありますが、Pythonのサポートは非​​常に貧弱です。 pySkeletonは私にとっては機能せず、おそらくコードをサルベージする時間がありません。 他の代替手段(openJumpスケルトン、この古いArcGISプラグイン ...)は、QGIS / Pythonに簡単に接続できません。 他の提案はありますか?
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.