POST
|
Thank you for your workaround, it temporary helps us. I just want to point out that the wrong behaviour occurs at deleted vertices too (not only in case of dragging them). Is there an esri bug number or issue ticket or similar?
... View more
01-28-2019
03:11 AM
|
0
|
1
|
3999
|
POST
|
Hello! We are developing an application based on ArcGIS Runtime .NET 100.3, .Net Framework 4.7.1 , Windows 10 64bit For polygon feature edit operations we use the the sketch editor using different modes: We trigger the <command>.Execute in the code (for selected workflows) (MyMapView.SketchEditor.AddCommand.Execute(insertPoint); MyMapView.SketchEditor.MoveSelectedVertex(newPosition); ... MyMapView.SketchEditor.UndoCommand.Execute(...);); Additionally, the user is allowed to edit the geometry interactively on the mapview (AllowVertexEditing = true, SketchVertexEditMode VertexEditMode = InteractionEdit; RequireSelectionBeforeDrag = false; ... ) Our question is: What does the UndoCommand exactly "undo"? Our expectation is, that the last operation is rollbacked, but we observed following behaviour (check the attached videos): Move - Undo - In case of moving an arbitrary vertex interactively, the undo command does not reset the original position, but DELETES the moved point. - same behaviour when using MyMapView.SketchEditor.MoveSelectedVertex(newPosition); Delete - Undo - In case of deleting an arbitrary selected vertex, the undo command does not recreate the deleted point, but deletes the vertex subsequent to the deleted point ??? Is this behaviour "as designed" ? Is there a detailled description in the APIreference documentation? Thanks in advance, Karin
... View more
01-21-2019
03:41 AM
|
0
|
5
|
4540
|
POST
|
RequireSelectionBeforeDrag=False or AllowMove = false don't effect anything, if set in the EditConfiguration of the SketchEditor. No matter if I hit the fill/Center or the outline. However, after A LOT OF tests, if found a workaround: If you use the overload of the SketchEditor.StartAsync(...) , and pass an EditConfiguration extra, it works. You even can take just the previously modified Editor - EditConfiguration. If I am completely wrong, please provide a full best practice sample of how to use the EditConfiguration with customized properties correctly. For me, this is a bug. // my "pseudocode" test method private static async void TestEditor( MapView mapView , Geometry editGeometry) { mapView.SketchEditor.EditConfiguration.AllowMove = false; mapView.SketchEditor.EditConfiguration.RequireSelectionBeforeDrag = false; // IN CASE OF CREATE // THIS DOES NOT WORK Geometry res = await mapView.SketchEditor.StartAsync(SketchCreationMode.Polygon,false); // OR Geometry res1 = await mapView.SketchEditor.StartAsync(SketchCreationMode.Polygon,true); //THIS WORKS if used in the overload: SketchEditConfiguration sec = mapView.SketchEditor.EditConfiguration; var res2 = await mapView.SketchEditor.StartAsync( SketchCreationMode.Polygon,sec ); // IN CASE OF EDIT // THIS DOES NOT WORK var res4 = await mapView.SketchEditor.StartAsync( editGeometry ); // THIS WORKS with extra definition of the CreationMode and SketchEditConfiguration in the overload ! SketchCreationMode scm = Editor.CreationMode; var res3 = await mapView.SketchEditor.StartAsync( editGeometry, scm, sec ); }
... View more
08-10-2018
03:21 AM
|
0
|
1
|
889
|
POST
|
Hi! I have a similar problem. I want to move vertices of a geometry without extra selection. I found the property RequireSelectionBeforeDrag in the SketchEditor.EditConfiguration , but it makes no difference if set to true or false. I always have to preselect the vertices I want to move. In Runtime 10.2.7 it worked! On the other hand I want to disable moving the whole geometry and set the property AllowMove to false. However, I still can move my geometry! I am using Runtime Quartz 100.3 Thanks
... View more
08-08-2018
04:45 AM
|
0
|
0
|
889
|
POST
|
Hi, Our problem concerns the 100.x family. I'm sorry for the confusion. We are using a kind of "SpatialQueryFilter" mapping data class to switch between 10.2.x and 100.x Versions. That's why this "SpatialQueryFilter" object is erroneously in the sample. We pass and apply it like this : public static async Task<FeatureQueryResult> QueryTest(FeatureTable featureTable, SpatialQueryFilter spatialQ, int maxRecordsCount) { if (spatialQ?.Geometry != null) { FeatureQueryResult res = null; var qp = new QueryParameters() { Geometry = spatialQ.Geometry, SpatialRelationship = spatialQ.SpatialRelationship, }; // apply other properties too [...] if (maxRecordsCount > 0) qp.MaxFeatures = maxRecordsCount; // [...] try { res = await featureTable.QueryFeaturesAsync(qp); } catch (Exception e) { // [...] } return res; } // [...] return null; } I' ll provide a full reproducer per mail. Thanks in advance.
... View more
06-06-2018
04:17 AM
|
0
|
0
|
586
|
POST
|
Dear Esri Team! We implemented a query on an offline point feature layer (from a previously downloaded geodatabase) using var query = new SpatialQueryFilter { // Geometry geom is a polygon geometry from the sketch editor Geometry = geom, SpatialRelationship = SpatialRelationship.Intersects, }; var res = await featureTable.QueryFeaturesAsync(query); according to the Esri samples. We don't understand how the properties SpatialRelationship and MaxRecordCount work. 1) for polygon / polyline FL the property SpatialRelationship.Intersects returns the results as expected– this is OK. 2) But while using the property SpatialRelationship.Intersects for point FL, a strange behaviour occurs. If we additionally use the query.MaxRecordCount=300 property, the query returns a subset of (arbitrary?) points within the geometry, but without exceeding the limit. In this area there are almost 4000 points, but it returns for example only 243 points, and the result object returns res.IsTransferLimitExceeded = false; We expected an result with exactly 300 features, and res.IsTransferLimitExceeded = true; If we repeat the query with the same geometry and without the query.MaxRecordCount limit, everthing seems to be alright and 2497 features are returned. 3) We tried the SpatialRelationship.EnvelopeIntersects for point feature layers then, and the results concerning the limit seem to be OK. But unfortunately another odd error happens: It is not just that all points in the given geometry (and its extent) are returned, but even the points that have been moved far outside this geometry (+extent) in a previous step. This is quite strange. The same behavior, if you use SpatialRelationship.Contains for example. Only using the property SpatialRelationship.Intersects returns the correct results in this case. So whatever we use, the results aren't correct. In one case too few points, in the other too many (and outside the geometry). We use ArcGIS Runtime 100.1.0 (and 100.2.0), ArcGIS Server 10.6, .NET Framwork 4.5.2, VS 2015, Windows 10 Thanks in advance, Karin
... View more
03-05-2018
02:50 AM
|
0
|
2
|
766
|
POST
|
Dear Esri Team! We implement an application with ArcGIS Runtime 100.1 (and 100.2), using .NET Framwork 4.5.2 and VS2015, and running on Windows 10 Most of the geometry operations in the GeometryEngine fail with a "...must have equivalent spatial references" exception. Geometry geoCliptest = GeometryEngine.Clip(feat.Geometry, extent); {"Invalid argument: geometry and envelope must have equivalent spatial references."} bei Esri.ArcGISRuntime.ArcGISException.HandleCoreError(CoreError error, Boolean throwException) bei RuntimeCoreNet.GeneratedWrappers.Interop.CheckError(IntPtr errorHandle, Boolean throwOnFailure, GCHandle wrapperHandle) bei RuntimeCoreNet.GeneratedWrappers.CoreGeometryEngine.Clip(CoreGeometry geometry, CoreEnvelope envelope) bei Esri.ArcGISRuntime.Geometry.GeometryEngine.Clip(Geometry geometry, Envelope envelope) In this example we use the MapView Extent and the geometry from a feature. We compared the Spatial References with var test = feat.Geometry.SpatialReference.IsEqual(extent.SpatialReference); and it returned true. And manually checked, the wktstrings are equal too: PROJCS["MGI_Austria_GK_East",GEOGCS["GCS_MGI",DATUM["D_MGI",SPHEROID["Bessel_1841",6377397.155,299.1528128]],PRIMEM["Greenwich",0.0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",0.0],PARAMETER["False_Northing",-5000000.0],PARAMETER["Central_Meridian",16.33333333333333],PARAMETER["Scale_Factor",1.0],PARAMETER["Latitude_Of_Origin",0.0],UNIT["Meter",1.0]] We created a workaround for our low level operations. Now we convert the geometry parameters like this, and everything works without problems: public static Polygon ConvertPolygon( Polygon p) { var pJson = p.ToJson( ); Polygon newPolygon = Geometry.FromJson( pJson ) as Polygon; return newPolygon; } So what is the problem? I cannot evaluate the side effects of this workaround, so it cannot stay like this. Thanks in advance, Karin
... View more
03-05-2018
02:02 AM
|
0
|
1
|
691
|
POST
|
Hello, I implemented a workflow using your samples to create a replica from a FeatureService. Till now it worked as expected. Since a few days however, irregular errors occur on the server during the execution of the CreateReplica Request: Error:The item was not found. DBMS deadlock victim ... (see DeadlockVictim.jpg for full server log) What ist the problem? Thank you in advance, Karin We are using: ArcGIS Runtime 10.2.7, ArcGIS for Server 10.5.1 + WebAdaptor VS 2015, Windows 10 Enterprise(64),
... View more
10-09-2017
01:31 AM
|
0
|
0
|
570
|
POST
|
Thank you for your feedback. The rollback workflow for online editing or syncing offline data back to server does not solve our problem. Our scenario concerns exclusively offline data. Our clients are working a whole day on offline databases before syncing. Therefore, we need something like an offline editor that collects ALL operations (Add, Delete and Edit) during a transaction step, and pushes the collection (NOT THE SEPARATE ACTIONS) to the offline database with rollback possibiltiy. E.g. When an feature (that exists both on server and offline database) is deleted in the offline database, a restoration is not possible, because with "re-inserting" the deleted feature a new object-id and global-id is created. => In short we need something similar to the online workflow, but for offline *.geodatabases (offline GeodatabaseFeatureTables) YOUR ONLINE EXAMPLE: private async void AddDamageFeature(MapPoint structureLocation, string type, string cause) { var attributes = new Dictionary<string, object>(); attributes.Add("typdamage", type); attributes.Add("primcause", cause); // create a new feature in the damage table, pass in the attributes and geometry var newFeature = _damagePointsTable.CreateFeature(attributes, structureLocation); // add the new feature (this updates the local copy of the table) await _damagePointsTable.AddFeatureAsync(newFeature); // push this update (apply edits) to the feature service IReadOnlyList<EditResult> editResults = await _damagePointsTable.ApplyEditsAsync(); // check the results for errors foreach(var r in editResults) { if (r.CompletedWithErrors) { Console.WriteLine("Edit to Object '" + r.ObjectId + "' failed: " + r.Error.Message); } } } You mention offline map task and offline map sync Task in update1 - do I understand correctly that these new tasks cope with this problem? When will update1 be released? Thank you
... View more
06-19-2017
02:26 AM
|
0
|
1
|
545
|
POST
|
Hello, we are developing an app that supports editing on offline maps. We are using *.geodatabase FeatureLayers and *.tpks. However , in offline mode, i found no possibility to enable a "transaction mode" with a rollback to multiple edit operations. After adding, deleting or editing the features, the "commit" has to be done for each operation separately. That means if Add and Delete is done well, and Update fails, a correct rollback is not possible. this.ArcFeatureTable.AddFeaturesAsync(List<Feature> flist); this.ArcFeatureTable.DeleteFeaturesAsync( List<Feature> flist ); this.ArcFeatureTable.UpdateFeaturesAsync( List<Feature> flist ); Further more, how do i know that all features have been added/deleted/updated correctly at all? What is the ResultObject / callback? I tried (in ArcGISRuntime 10.2.5 ) to delete a list with three features in ftable.DeleteAsync(oids) (with oids is a List<long> containing three objectIds , two of them exist in the database). Two objects were deleted without telling me that the third one does not exist. In ArcgisRuntime SDK for WPF there exists: SaveEdits ArcGIS Runtime SDK for Microsoft WPF - Library Reference and UndoEdits ArcGIS Runtime SDK for Microsoft WPF - Library Reference What are the corresponding methods in ArcGIS Runtime .NET 10.2.5 - 10.2.7 and further more in ArcGISRuntime .NET 100.0.0 ? Thank you
... View more
06-08-2017
01:17 AM
|
0
|
3
|
1037
|
POST
|
Hello, We are developing an app with ArcGIS Runtime .NET 100.0.0, that offers interaction with offline maps. In general we are using the MVVM Model. The MapView.Map binds to a ViewModel.class Map Property CurrentMap. This class also contains a Map Property OfflineMap, which holds reference to a corresponding Map with offline-content . During initial loading (with some async stuff in previous steps), the (offline) Layers are attached to the OfflineMap Map and after awaiting OfflineMap.LoadAsync(); the Property CurrentMap is assigned to OfflineMap. Our problem is that the app crashes randomly at the line this.ProjectManagerViewModelInstance.CurrentMap = this.ProjectManagerViewModelInstance.OfflineMap; with an exception we cannot handle.The output window shows: […MyApp...]WPF.vshost.exe' has exited with code -1073741819 (0xc0000005) 'Access violation'. public async Task LoadProjectWithTaskSampleAsync( object param) { try { #region checkProject // our "progressbar" this.ToogleReporter("CheckProject",true); //read project information from parameter var pi = await this.ProjectManagerViewModelInstance.InitConnectionInformationAsync(param); if (pi == null) { Log.Warn(" ... "); this.ToogleReporter("CheckProject",false); return; } this.ToogleReporter("CheckProject",false); #endregion checkProject this.ToogleReporter("LoadProject", true); //MAP CREATION AND ASSIGN TO OFFLINE MAP PROPERTY (and other stuff like processing layer infos ...) await this.ProjectManagerViewModelInstance.LoadProjectAsync(pi); // check if all information could be loaded properly if (await this.TryToOpenProjectAsync(pi)) { this.ToogleReporter("LoadProject", false); Log.Error("..."); return; } // Check if offline map has layers var offlineMapAllLayers = this.ProjectManagerViewModelInstance?.OfflineMap?.AllLayers; if (offlineMapAllLayers != null && offlineMapAllLayers.Any()) { Log.Debug("Await call OfflineMap.LoadAsync()"); await this.ProjectManagerViewModelInstance.OfflineMap.LoadAsync(); this.ProjectManagerViewModelInstance.CurrentMap = this.ProjectManagerViewModelInstance.OfflineMap; } IsLoadingProject = false; } catch (Exception e) { Log.Error("Loading Project Failed. Abort! ",e); } finally { this.ToogleReporter("LoadProject", false); this.EndOfLoadingProject(); } } The offline map contains 1 vtpk (52 MB), 1 tpk (15 GB) and 2 mmpks(85 MB and 3 MB). The problem seems to occur only on offline maps with *.mmpks (but still randomly). Can you help us? I attach the memory dumps, maybe it helps. Thank you We are using: Microsoft Visual Studio Professional 2015 Version 14.0.25421.03 Update 3 Microsoft .NET Framework Version 4.6.01586 Installed Version: Professional Visual C# 2015 00322-40000-00000-AA460 Microsoft Visual C# 2015 ArcGIS Runtime SDK for .NET 100.0.0 Microsoft Windows 10 Enterprise
... View more
06-08-2017
12:55 AM
|
0
|
9
|
7005
|
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:25 AM
|