Skip to content

Commit 1cdf682

Browse files
committed
Remove low-level QRF and FeaturesetQueryTarget from public API
1 parent e7b4fe7 commit 1cdf682

File tree

6 files changed

+12
-150
lines changed

6 files changed

+12
-150
lines changed

Sources/MapboxMaps/Documentation.docc/Extensions/MapboxMap.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -71,12 +71,10 @@
7171
- ``MapboxMap/beginGesture()``
7272
- ``MapboxMap/endGesture()``
7373

74-
### Quering map features
74+
### Querying map features
7575

7676
- ``MapboxMap/queryRenderedFeatures(with:options:completion:)``
77-
- ``MapboxMap/queryRenderedFeatures(with:targets:completion:)``
7877
- ``MapboxMap/querySourceFeatures(for:options:completion:)``
79-
- ``MapboxMap/querySourceFeatures(for:completion:)``
8078
- ``MapboxMap/getGeoJsonClusterLeaves(forSourceId:feature:limit:offset:completion:)``
8179
- ``MapboxMap/getGeoJsonClusterChildren(forSourceId:feature:completion:)``
8280
- ``MapboxMap/getGeoJsonClusterExpansionZoom(forSourceId:feature:completion:)``

Sources/MapboxMaps/Foundation/MapboxMap.swift

Lines changed: 5 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1061,42 +1061,11 @@ extension MapboxMap: MapFeatureQueryable {
10611061
concreteErrorType: MapError.self))
10621062
}
10631063

1064-
/// Queries the map for rendered features using featureset descriptors.
1065-
///
1066-
/// This method allows to query both featureset from imported styles and user layers in the root style.
1067-
/// The results can be additionally filtered per-featureset.
1068-
///
1069-
/// ```swift
1070-
/// let targets = [
1071-
/// FeaturesetQueryTarget(
1072-
/// featureset: .layer("my-layer"),
1073-
/// filter: Exp(.eq) {
1074-
/// Exp(.get) { "type" }
1075-
/// "hotel"
1076-
/// }
1077-
/// ),
1078-
/// FeaturesetQueryTarget(featureset: .featureset("poi", importId: "basemap"))
1079-
/// ]
1080-
/// mapView.mapboxMap.queryRenderedFeatures(with: CGPoint(x: 0, y: 0),
1081-
/// targets: targets) { result in
1082-
/// // handle features in result
1083-
/// }
1084-
/// ```
1085-
///
1086-
/// - Important: This is a low-level method. If you need to handle basic gestures on map content, please prefer to use Interactions API (see ``MapboxMap/addInteraction(_:)``) or ``MapboxMap/queryRenderedFeatures(with:featureset:filter:completion:)``.
1087-
///
1088-
/// - Parameters:
1089-
/// - geometry: A screen geometry to query. Can be a `CGPoint`, `CGRect`, or an array of `CGPoint`.
1090-
/// - targets: An array of targets to query with.
1091-
/// - completion: Callback called when the query completes.
1092-
@_spi(Experimental)
1093-
@_documentation(visibility: public)
1094-
@discardableResult
1095-
public func queryRenderedFeatures(with geometry: some RenderedQueryGeometryConvertible,
1096-
targets: [FeaturesetQueryTarget],
1097-
completion: @escaping (Result<[QueriedRenderedFeature], Error>) -> Void) -> Cancelable {
1064+
private func queryRenderedFeatures(with geometry: some RenderedQueryGeometryConvertible,
1065+
targets: [CoreFeaturesetQueryTarget],
1066+
completion: @escaping (Result<[QueriedRenderedFeature], Error>) -> Void) -> Cancelable {
10981067
return __map.__queryRenderedFeatures(for: geometry.geometry.core,
1099-
targets: targets.map(\.core),
1068+
targets: targets,
11001069
callback: coreAPIClosureAdapter(for: completion,
11011070
type: NSArray.self,
11021071
concreteErrorType: MapError.self))
@@ -1133,7 +1102,7 @@ extension MapboxMap: MapFeatureQueryable {
11331102
queryRenderedFeatures(
11341103
with: geometry,
11351104
targets: [
1136-
FeaturesetQueryTarget(featureset: featureset, filter: filter)
1105+
CoreFeaturesetQueryTarget(featureset: featureset.core, filter: filter?.asCore, id: nil)
11371106
]) { result in
11381107
completion(result.map({ features in
11391108
features.compactMap {
@@ -1187,22 +1156,6 @@ extension MapboxMap: MapFeatureQueryable {
11871156
concreteErrorType: MapError.self))
11881157
}
11891158

1190-
/// Queries the source features for a given featureset.
1191-
///
1192-
/// - Parameters:
1193-
/// - target: A featureset query target.
1194-
/// - completion: Callback called when the query completes.
1195-
@_spi(Experimental)
1196-
@_documentation(visibility: public)
1197-
@discardableResult
1198-
public func querySourceFeatures(for target: FeaturesetQueryTarget,
1199-
completion: @escaping (Result<[QueriedSourceFeature], Error>) -> Void) -> Cancelable {
1200-
return __map.__querySourceFeatures(for: target.core,
1201-
callback: coreAPIClosureAdapter(for: completion,
1202-
type: NSArray.self,
1203-
concreteErrorType: MapError.self))
1204-
}
1205-
12061159
/// Returns all the leaves (original points) of a cluster (given its cluster_id) from a GeoJSON source, with pagination support: limit is the number of leaves
12071160
/// to return (set to Infinity for all points), and offset is the amount of points to skip (for pagination).
12081161
///

Sources/MapboxMaps/Foundation/QueriedRenderedFeature+Extensions.swift

Lines changed: 0 additions & 13 deletions
This file was deleted.

Sources/MapboxMaps/Interactions/FeaturesetQueryTarget.swift

Lines changed: 0 additions & 37 deletions
This file was deleted.

Tests/MapboxMapsTests/Foundation/FeaturesetsTests.swift

Lines changed: 0 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -232,49 +232,4 @@ final class FeaturesetsTests: IntegrationTestCase {
232232
let featureset = try XCTUnwrap(mapView.mapboxMap.featuresets.first)
233233
XCTAssertEqual(FeaturesetDescriptor.standardPoi(importId: "nested"), featureset.converted())
234234
}
235-
236-
func testLowLevelQRF() {
237-
let coord = CLLocationCoordinate2D(latitude: 0.01, longitude: 0.01)
238-
let point = map.point(for: coord)
239-
240-
let expectation = expectation(description: "Low-level QRF")
241-
242-
let featuresetFilter = Exp(.eq) {
243-
Exp(.get) { "type" }
244-
"B"
245-
}
246-
let layerFilter = Exp(.eq) {
247-
Exp(.get) { "filter" }
248-
true
249-
}
250-
mapView.mapboxMap.queryRenderedFeatures(
251-
with: point,
252-
targets: [
253-
FeaturesetQueryTarget(featureset: .featureset("poi", importId: "nested"), filter: featuresetFilter, id: 1),
254-
FeaturesetQueryTarget(featureset: .layer("circle-2"), filter: layerFilter, id: 2)
255-
]) { result in
256-
switch result {
257-
case .success(let features):
258-
XCTAssertEqual(features.count, 2)
259-
XCTAssertEqual(features[safe: 0]?.queryTargets.count, 1)
260-
XCTAssertEqual(features[safe: 0]?.queryTargets.last?.id, 2) // from circle target
261-
XCTAssertEqual(features[safe: 0]?.queryTargets.last?.featureset, .layer("circle-2"))
262-
XCTAssertEqual(features[safe: 0]?.queryTargets.last?.filter, nil)
263-
XCTAssertEqual(features[safe: 0]?.queriedFeature.feature.identifier, .number(2))
264-
XCTAssertEqual(features[safe: 0]?.queriedFeature.feature.properties?["name"]??.string, "qux")
265-
266-
XCTAssertEqual(features[safe: 0]?.queryTargets.count, 1)
267-
XCTAssertEqual(features[safe: 1]?.queryTargets.last?.id, 1) // from featureset
268-
XCTAssertEqual(features[safe: 1]?.queryTargets.last?.featureset, .featureset("poi", importId: "nested"))
269-
XCTAssertEqual(features[safe: 1]?.queryTargets.last?.filter, nil)
270-
XCTAssertEqual(features[safe: 1]?.queriedFeature.feature.identifier, .number(12))
271-
XCTAssertEqual(features[safe: 1]?.queriedFeature.feature.properties?["class"]??.string, "poi")
272-
XCTAssertEqual(features[safe: 1]?.queriedFeature.feature.properties?["name"]??.string, "nest2")
273-
case .failure:
274-
XCTFail("Shouldn't fail")
275-
}
276-
expectation.fulfill()
277-
}
278-
wait(for: [expectation], timeout: 1)
279-
}
280235
}

scripts/api-compatibility-check/breakage_allowlist.txt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1927,3 +1927,9 @@ Extension FeaturesetDescriptor is no longer open for subclassing
19271927

19281928
// Docs for styleGlyphURL
19291929
Var MapboxMap.styleGlyphURL is now with @_documentation
1930+
1931+
// Remove experimental FeaturesetQueryTarget
1932+
Func MapboxMap.queryRenderedFeatures(with:targets:completion:) has been removed
1933+
Func MapboxMap.querySourceFeatures(for:completion:) has been removed
1934+
Struct FeaturesetQueryTarget has been removed
1935+
Var QueriedRenderedFeature.queryTargets has been removed

0 commit comments

Comments
 (0)