I am trying to zoom to the extent of a layer that has definitionExpression on it. I cannot get it to zoom to anything but the world view. I want to setViewpontGeometry(queryLayer.fullExtent), but this doesn't seem to work. Do I have to build a view point manually?
Connections {
target: map
onOperationalLayersChanged: {
identifyQueryLayer()
queryLayer.definitionExpression = app.definitionQuery
//This doesn't work?
mapView.setViewpointGeometry(queryLayer.fullExtent)
//Do I have to build a viewpoint?
//mapView.setViewpoint(newViewPoint);
}
}
Hi M Ka,
What you're doing looks correct, but you will need to make sure the layer is loaded first. If you move that logic to an onLoadStatusChanged handler, can you see if that works?
Connections {
target: queryLayer
onLoadStatusChanged: {
if (queryLayer.loadStatus !== Enums.LoadStatusLoaded)
return;
mapView.setViewpointGeometry(queryLayer.fullExtent)
}
}
Another thing would be to check that the online layer's full extent property on the service is not the full world extent. Alternately, you could also try this:
const viewpoint = ArcGISRuntimeEnvironment.createObject("ViewpointExtent", {extent: queryLayer.fullExtent});
mapView.setViewpoint(viewpoint);