Hi there, I have the following function that aims to extract meshes from a scene layer passed in as a parameter. However, for reasons unknown to me. The number of features returned is consistently 0. Would appreciate any help understanding what it is that I am doing wrong. I will share the function below as well as an portion of my logs for context:
func extractMeshes(from sceneLayer: ArcGISSceneLayer) async {
guard let featureTable = sceneLayer.featureTable else {
print("No feature table found in the scene layer")
return
}
print("Feature table found: \(featureTable.tableName)")
// Ensure the layer is loaded
if sceneLayer.loadStatus != .loaded {
do {
try await sceneLayer.load()
print("Scene layer loaded: \(sceneLayer.name)")
} catch {
print("Error loading scene layer: \(error)")
return
}
}
// Print the fields of the feature table
let fields = featureTable.fields
print("Feature table fields: \(fields.map { $0.name })")
// Adjust the query parameters
let query = QueryParameters()
query.whereClause = "1=1"
query.returnsGeometry = true
print("Query parameters set: \(query.whereClause)")
do {
let featureQueryResult = try await featureTable.queryFeatures(using: query)
let features = featureQueryResult.features()
let featuresArray = Array(features)
print("Number of features queried: \(featuresArray.count)")
for feature in featuresArray {
if let geometry = feature.geometry {
print("Extracted geometry from feature: \(geometry)")
if let node = createNode(for: geometry) {
let point = geometry.extent.center
print("Anchoring node at coordinate: (\(point.y), \(point.x)) with altitude \(String(describing: point.z))")
anchorNode(node, at: point)
}
}
}
} catch {
print("Error querying features: \(error)")
}
}
Logs:
MSPK loaded successfully.
Attempting to load scene: ArcGIS.Scene
Layer name: London GPS test
Layer name: 3D_tests_Multipatch_as_Mesh
Feature table found: SceneLayerFeatures
Feature table fields: ["OBJECTID", "speckle_id"]
Query parameters set: 1=1
Number of features queried: 0