Class: QgsPointLocator¶
-
class
qgis.core.
QgsPointLocator
(layer: QgsVectorLayer, destinationCrs: QgsCoordinateReferenceSystem = QgsCoordinateReferenceSystem(), transformContext: QgsCoordinateTransformContext = QgsCoordinateTransformContext(), extent: QgsRectangle = None)¶ Bases:
PyQt5.QtCore.QObject
Construct point locator for a
layer
.If a valid
QgsCoordinateReferenceSystem
is passed fordestinationCrs
then the locator will do the searches on data reprojected to the given CRS. For accurate reprojection it is important to set the correcttransformContext
if adestinationCrs
is specified. This is usually taken from the currentQgsProject.transformContext()
If
extent
is notNone
, the locator will index only a subset of the layer which falls within that extent.The class defines interface for querying point location: - query nearest vertices / edges to a point - query vertices / edges in rectangle - query areas covering a point
Works with one layer.
New in version 2.8.
- Parameters
layer (QgsVectorLayer) –
destinationCrs (
QgsCoordinateReferenceSystem
= QgsCoordinateReferenceSystem()) –transformContext (
QgsCoordinateTransformContext
= QgsCoordinateTransformContext()) –extent –
-
All
= 7¶
-
Area
= 4¶
-
Edge
= 2¶
-
Invalid
= 0¶
-
class
Match
¶ Bases:
sip.wrapper
construct invalid match
QgsPointLocator.Match(t: QgsPointLocator.Type, vl:
QgsVectorLayer
, fid: int, dist: float, pt:QgsPointXY
, vertexIndex: int = 0, edgePoints:QgsPointXY
= None)QgsPointLocator.Match(QgsPointLocator.Match)
-
distance
(self) → float¶ for vertex / edge match units depending on what class returns it (geom.cache: layer units, map canvas snapper: dest crs units)
- Return type
float
-
edgePoints
(self) → Tuple[QgsPointXY, QgsPointXY]¶ Only for a valid edge match - obtain endpoints of the edge
- Return type
Tuple[
QgsPointXY
, QgsPointXY]
-
featureId
(self) → int¶ The id of the feature to which the snapped geometry belongs.
- Return type
int
-
hasArea
(self) → bool¶ - Return type
bool
-
hasEdge
(self) → bool¶ - Return type
bool
-
hasVertex
(self) → bool¶ - Return type
bool
-
isValid
(self) → bool¶ - Return type
bool
-
layer
(self) → QgsVectorLayer¶ The vector layer where the snap occurred. Will be
None
if the snap happened on an intersection.- Return type
-
point
(self) → QgsPointXY¶ for vertex / edge match coords depending on what class returns it (geom.cache: layer coords, map canvas snapper: dest coords)
- Return type
-
type
(self) → QgsPointLocator.Type¶ - Return type
-
vertexIndex
(self) → int¶ for vertex / edge match (first vertex of the edge)
- Return type
int
-
-
class
MatchFilter
¶ Bases:
sip.wrapper
QgsPointLocator.MatchFilter(QgsPointLocator.MatchFilter)
-
acceptMatch
(self, match: QgsPointLocator.Match) → bool¶ - Parameters
match (QgsPointLocator.Match) –
- Return type
bool
-
-
class
Type
¶ Bases:
int
-
class
Types
¶ Bases:
sip.wrapper
QgsPointLocator.Types(Union[QgsPointLocator.Types, QgsPointLocator.Type]) QgsPointLocator.Types(QgsPointLocator.Types)
-
Vertex
= 1¶
-
cachedGeometryCount
(self) → int¶ Returns how many geometries are cached in the index
New in version 2.14.
- Return type
int
-
childEvent
(self, QChildEvent)¶
-
connectNotify
(self, QMetaMethod)¶
-
customEvent
(self, QEvent)¶
-
destinationCrs
(self) → QgsCoordinateReferenceSystem¶ Gets destination CRS - may be an invalid
QgsCoordinateReferenceSystem
if not doing OTF reprojectionNew in version 2.14.
- Return type
-
destroyIndex
(self)¶
-
disconnectNotify
(self, QMetaMethod)¶
-
edgesInRect
(self, rect: QgsRectangle, filter: QgsPointLocator.MatchFilter = None) → List[QgsPointLocator.Match]¶ Find edges within a specified recangle Optional filter may discard unwanted matches.
edgesInRect(self, point:
QgsPointXY
, tolerance: float, filter: QgsPointLocator.MatchFilter = None) -> List[QgsPointLocator.Match] Override of edgesInRect that construct rectangle from a center point and tolerance- Parameters
rect (QgsRectangle) –
filter (QgsPointLocator.MatchFilter = None) –
- Return type
List[QgsPointLocator.Match]
-
extent
(self) → QgsRectangle¶ Gets extent of the area point locator covers - if
None
then it caches the whole layerNew in version 2.14.
- Return type
-
hasIndex
(self) → bool¶ Indicate whether the data have been already indexed
- Return type
bool
-
init
(self, maxFeaturesToIndex: int = - 1) → bool¶ Prepare the index for queries. Does nothing if the index already exists. If the number of features is greater than the value of maxFeaturesToIndex, creation of index is stopped to make sure we do not run out of memory. If maxFeaturesToIndex is -1, no limits are used. Returns
False
if the creation of index has been prematurely stopped due to the limit of features, otherwiseTrue
- Parameters
maxFeaturesToIndex (int = -1) –
- Return type
bool
-
isSignalConnected
(self, QMetaMethod) → bool¶
-
layer
(self) → QgsVectorLayer¶ Gets associated layer
New in version 2.14.
- Return type
-
nearestArea
(self, point: QgsPointXY, tolerance: float, filter: QgsPointLocator.MatchFilter = None) → QgsPointLocator.Match¶ Find nearest area to the specified point - up to distance specified by tolerance Optional filter may discard unwanted matches. This will first perform a pointInPolygon and return first result. If no match is found and tolerance is not 0, it will return nearestEdge.
New in version 3.0.
- Parameters
point (QgsPointXY) –
tolerance (float) –
filter (QgsPointLocator.MatchFilter = None) –
- Return type
-
nearestEdge
(self, point: QgsPointXY, tolerance: float, filter: QgsPointLocator.MatchFilter = None) → QgsPointLocator.Match¶ Find nearest edge to the specified point - up to distance specified by tolerance Optional filter may discard unwanted matches.
- Parameters
point (QgsPointXY) –
tolerance (float) –
filter (QgsPointLocator.MatchFilter = None) –
- Return type
-
nearestVertex
(self, point: QgsPointXY, tolerance: float, filter: QgsPointLocator.MatchFilter = None) → QgsPointLocator.Match¶ Find nearest vertex to the specified point - up to distance specified by tolerance Optional filter may discard unwanted matches.
- Parameters
point (QgsPointXY) –
tolerance (float) –
filter (QgsPointLocator.MatchFilter = None) –
- Return type
-
pointInPolygon
(self, point: QgsPointXY) → List[QgsPointLocator.Match]¶ find out if the point is in any polygons
- Parameters
point (QgsPointXY) –
- Return type
List[QgsPointLocator.Match]
-
rebuildIndex
(self, maxFeaturesToIndex: int = - 1) → bool¶ - Parameters
maxFeaturesToIndex (int = -1) –
- Return type
bool
-
receivers
(self, PYQT_SIGNAL) → int¶
-
sender
(self) → QObject¶
-
senderSignalIndex
(self) → int¶
-
setExtent
(self, extent: QgsRectangle)¶ Configure extent - if not
None
, it will index only that areaNew in version 2.14.
- Parameters
extent (QgsRectangle) –
-
setRenderContext
(self, context: QgsRenderContext)¶ Configure render context - if not
None
, it will use to index only visible featureNew in version 3.2.
- Parameters
context (QgsRenderContext) –
-
timerEvent
(self, QTimerEvent)¶
-
verticesInRect
(self, rect: QgsRectangle, filter: QgsPointLocator.MatchFilter = None) → List[QgsPointLocator.Match]¶ Find vertices within a specified recangle Optional filter may discard unwanted matches.
New in version 3.6.
verticesInRect(self, point:
QgsPointXY
, tolerance: float, filter: QgsPointLocator.MatchFilter = None) -> List[QgsPointLocator.Match] Override of verticesInRect that construct rectangle from a center point and toleranceNew in version 3.6.
- Parameters
rect (QgsRectangle) –
filter (QgsPointLocator.MatchFilter = None) –
- Return type
List[QgsPointLocator.Match]