Hi,
I am trying to add a feature as soon as an app is opened. I tried the code below but it is not working. The location is turning on however, the feature is not showing up. How can I fix this?
Component.onCompleted: {
//Qt.openUrlExternally("%1/home/webmap/viewer.html?webmap=%2".arg(app.portalUrl).arg(portalItem.id))
if (!mapView.locationDisplay.started) {
mapView.locationDisplay.start()
mapView.locationDisplay.autoPanMode = Enums.LocationDisplayAutoPanModeRecenter
// create attributes json for the new feature
var featureAttributes = {"xxxx" : "xxxx"};
// create a new feature using the mouse's map point
var point = mapView.locationDisplay.mapLocation
var feature = featureTable.createFeatureWithAttributes(featureAttributes, point);
// add the new feature to the feature table
featureTable.addFeature(feature);
} else {
mapView.locationDisplay.stop()
}
}
Giatri,
What is the error message you are getting? Does that block of code work if you were to run it with a click of a button for example?
This should work, this type of question requires further troubleshooting, I would recommend calling Esri Technical Support to get help.
Erwin.
Yes, the code runs if I had a Button to click. There is no error message. The point feature just don't show up while the location turns on like normal. That's why I can't figure out how to fix this.
My guess is it might be a timing issue between the "Completed.onCompleted" being triggered and the location display is ready.
Can you check if we have the point before adding the feature to featureTable?
No feature is being created, nothing is happening.
Hi Giatri,
Please make sure the feature layer has been loaded (if adding it to the map) or initialized (if not the part of the view).
For e.g. here I am adding the feature as soon as the featurelayer loads. Also Make your point is not undefined. I hope this helps.
Nakul
FeatureLayer {
id: featureLayer
// declare as child of feature layer, as featureTable is the default property
ServiceFeatureTable {
id: featureTable
url: "http://sampleserver6.arcgisonline.com/arcgis/rest/services/DamageAssessment/FeatureServer/0"
// make sure edits are successfully applied to the service
onApplyEditsStatusChanged: {
if (applyEditsStatus === Enums.TaskStatusCompleted) {
console.log("successfully added feature");
}
}
// signal handler for the asynchronous addFeature method
onAddFeatureStatusChanged: {
if (addFeatureStatus === Enums.TaskStatusCompleted) {
// apply the edits to the service
featureTable.applyEdits();
}
}
}
onLoadStatusChanged: {
if(loadStatus === Enums.LoadStatusLoaded){
// var point = ArcGISRuntimeEnvironment.createObject("Point", {x: -11975850.0012, y: 4274812.4997999966, spatialReference: SpatialReference.createWebMercator()});
var point = mapView.locationDisplay.mapLocation
var featureAttributes = {"typdamage" : "Minor", "primcause" : "Earthquake"};
// create a new feature using the mouse's map point
var feature = featureTable.createFeatureWithAttributes(featureAttributes, point);
// add the new feature to the feature table
featureTable.addFeature(feature);
}
}
}
}