|
POST
|
@DiveshGoyal Thanks, I had not noticed that. It looks like the way this is implemented is all in the core libraries. It would b great to understand what is done so it could be implemented in our own LocationDataSource that cannot use the NMEALocationDataSource
... View more
06-15-2023
12:40 PM
|
0
|
0
|
1049
|
|
POST
|
Hi, We have custom LocationDataSource implementations in our app, in addition to using the NmeaLocationData source for connecting various devices for external high accuracy GPS on iOS. These devices will also provide an app which is used to connect to an RTK server for corrections. I am trying to understand how one applies a datum shift in these cases. What I am trying to do in our custom LocationDataSource is basically project my Wgs84 point still using Wgs84 but applying a GeographicTransformation, prior to sending the point to UpdateLocation var sr = SpatialReferences.Wgs84;
MapPoint mp = new MapPoint(longitude, latitude, sr);
var geoStep = new GeographicTransformationStep(108363);
GeographicTransformation geoTransform = new GeographicTransformation(geoStep);
mp = (MapPoint)GeometryEngine.Project(mp, sr, geoTransform); With the NmeaLocationDataSource I do not know how you would necessary apply the datum shift, until you saved the point. The problem is we don't seem to be coincident when comparing to Field Maps using the same datum shift. So I am trying to understand if there is a different way this could be done. The offset is consistent, about 3 feet. We really need the two apps to be the same because a group within the company uses Field Maps and they may come to locate the assets at a later date
... View more
06-13-2023
06:48 AM
|
0
|
3
|
1076
|
|
POST
|
Can you run fiddler to look at the query sent across? Runtime is just a wrapper for the same rest calls made via a browser, so not sure why you would see a difference
... View more
05-26-2023
06:57 AM
|
1
|
0
|
1162
|
|
POST
|
I find the documentation a bit confusing on this topic. Is it possible to implement an HA Enterprise deployment using only Web Adapter and not a 3rd party load balancer? If so where is documentation for this @JonathanQuinn Personally, I do not see how Web Adapter is setup in front of two Portal machines.
... View more
05-17-2023
11:37 AM
|
0
|
13
|
2859
|
|
POST
|
We are wanting to change some offline WebMaps to use SubtypeFeatureLayer. A main driver behind this is that it allows us to edit domains in AGOL. It also is a better general fit with the Utility Network configuration. A big issue making this much more complex is that when you retrieve the LegendInfo objects from SubtypeSublayer these do not have a Name associated to them. There is no way to identify what a LegendInfo is. This seems to me to be a bit of a bug, as there is no way to identify what a LegendInfo is unless you somehow know what SubtypeSublayer it was created from. But it makes it impossible to use the code which already assumed the LegendInfo would have an associated Name (matching the Subtype). Making this issue even more difficult is that LegendInfo is a sealed class. So it is not even possible to make a subclass and assign a Name that way. This has made, what seemed to me should be a trivial operation into a really complex refactoring because there is no way to pass along the IReadOnly<LegendInfo> collection as the previous code did. This is using Runtime 100.15
... View more
05-09-2023
10:14 AM
|
0
|
0
|
392
|
|
POST
|
There is something really odd with M and these shapes, see my earlier post. Investigating the shapes when passed in have M values at like int.Max or something. So I just take the same X, Y extents and SR and use that to build a new Envelope. Then use that in the ValidateNetworkTopology method and it works
... View more
04-14-2023
02:59 PM
|
0
|
0
|
794
|
|
POST
|
We have an application that places a Tee and an attached service line (in gas) in a UN. That part seems to work as expected. The problem is trying to validate the topology afterwards. This seems like a pretty simple task simply call ValidateNetworkTopology Method According to documentation this should not be wrapped in an edit operation. Unfortunately this does not seem to work. If I try this way, to first expand the envelope public ValidationResult ValidateTopology(UtilityNetwork utilityNetwork, Geometry serviceGeometry)
{
//expand the area used for validation
Envelope envelope = serviceGeometry.Extent.Expand(1.05, 1.05, true);
ValidationResult result = utilityNetwork.ValidateNetworkTopology(envelope);
} The following exception is received ArcGIS.Core.Data.GeodatabaseEnterpriseException: The specified coordinate exceeds the valid coordinate range. ---> System.Runtime.InteropServices.COMException: Exception from HRESULT: 0x80041590 at ArcGIS.Core.Internal.IUtilityNetworkIOP.UtilityNetwork_ValidateNetworkTopology(IntPtr utilityNetworkHandle, IntPtr extentHandle, Boolean useAsynchronousService, DateTime& timeStamp, Boolean& hasErrors, Int32& dirtyAreasCount, Boolean& isFullUpdate) at ArcGIS.Core.Data.UtilityNetwork.UtilityNetwork.ValidateNetworkTopologyInternal(Geometry extent, InvocationTarget invocationTarget) --- End of inner exception stack trace --- If instead of using the slightly expanded envelope, the service line geometry is sent the method simply times out. No exception is received Seems pretty straight forward, not sure what is incorrect Thanks
... View more
04-14-2023
11:38 AM
|
0
|
3
|
826
|
|
POST
|
For some reason the way one of the points was created gave the goofy M value. I changed how that was being done and it accepts the geometry when updating the feature
... View more
04-14-2023
11:23 AM
|
0
|
0
|
983
|
|
POST
|
I have a standalone batch application which needs to move a feature to a new location. The problem is when I try to update the geometry on the feature a very odd exception is thrown which I cannot find any information about ArcGIS.Core.Data.GeodatabaseException
HResult=0x80131500
Message=A geodatabase exception has occurred.
Source=ArcGIS.Core
StackTrace:
at ArcGIS.Core.Data.Feature.SetShapeInternal(Geometry shape)
at ...
Inner Exception 1:
COMException: TabletPC inking error code. Queue is full (Exception from HRESULT: 0x80040238) I have reduced this down to a pretty simple code string polylineJson =
"{\"hasZ\":true,\"hasM\":true,\"paths\":[[[1157175.5091482587,1949613.7086186269,0,null],[1157179.1629363969,1949513.7653565472,0,-23728156529555.527]]],\"spatialReference\":{\"wkid\":102671,\"latestWkid\":3435}}";
Polyline polyline = PolylineBuilder.FromJson(polylineJson);
long pipeObjectId = 1067988;
QueryFilter qf = new QueryFilter() { ObjectIDs = new [] { pipeObjectId } };
// _networkDataProvider just wraps operation of Opening Geodatabase Object, swicthing version and opening Feature Class
var rows = _networkDataProvider.PipelineFeatureClass.Search(qf,false);
if (rows.MoveNext())
{
var pipeFeature = (Feature) rows.Current;
//This line throws exception
pipeFeature.SetShape(polyline);
} What is the issue here? I cannot find anything about this exception, but I can absolutely not set the Shape on the existing feature Thanks
... View more
04-14-2023
05:28 AM
|
0
|
2
|
1019
|
|
POST
|
We use a data model with a strong emphasis on subtype based domains. For those familiar with the Utility Network know this approach is used a great deal. When these layers are published to AGOL the definitions of the subtype based domains are loaded to the service and the service definition reflects these. The problem is, the UI in AGOL does not support editing or viewing these subtype based domains. My question...does anyone know of a way to modify these domains. About the only thing I can think of would be to write a tool that does this with the REST API, which is no small undertaking Thanks
... View more
03-03-2023
08:13 AM
|
3
|
3
|
1059
|
|
POST
|
That value comes from the server, so is just based on how the server team came up with estimating progress about a job that they don't know the length of. Someone probably said, 20% seems like a good amount for the initial startup time and that's what it became
... View more
02-15-2023
08:43 AM
|
0
|
1
|
735
|
|
POST
|
The user has to be licensed properly, you don't override the user level by assigning a license to the app ArcGIS Runtime levels can be licensed through user types or through a license key. You must assign a user type with the appropriate ArcGIS Runtime level to members of your organization based on the level of access they need. The following table lists which ArcGIS Runtime level is included with each user type: The named user still needs to be given a role that includes Runtime Basic or above. In AGOL if you look at the Licenses it shows what type of Runtime license is associated to a User Type. If you think about it, if it did not work that way you could simply buy one Basic license for your app and let any Viewer user then have the ability to edit data. But don't worry as soon as it makes any sense esri will change the licensing model add 15 new types which have different capabilities 😃
... View more
02-06-2023
08:44 AM
|
1
|
0
|
1571
|
|
POST
|
When an iOS application goes into background there are two conditions that can occur in regards to receiving location The user just goes to home screen or goes to another application that is not connected to the external gps device The user goes to an application that does connect to the external gps device. This is a common occurrence if the user need to go into an application that connects to an NTrip server. What I have observed is that in each of these condition is it seems different things happen to the underlying EASession associated to the EAAccessoryStream object public EAAccessoryStream(EAAccessory accessory, string protocol)
{
this._accessory = accessory;
this._session = new EASession(accessory, protocol);
this._session.InputStream?.Open();
this._session.OutputStream?.Open();
} In case (1), the session is maintained in case (2) the EASession object would seem to be disposed. The problem is that there is no way to know which case has occurred. They way I have implemented things is that when the user returns to the application //_sxblueAccessory is connected EAAccessory Protocal is the protocal string
_internaLocationDataSource = NmeaLocationDataSource.FromAccessory(_sxblueAccessory, Protocal);
_internaLocationDataSource.StartAsync(); In case (2) above this works without issue. However, in case (1) you will get a "Starting" status changed followed by a "Failed to Start" status message. In this case there is also an ErrorOccured notification sent with the following: Could not initialize an instance of the type 'ExternalAccessory.EASession': the native 'initWithAccessory:forProtocol:' method returned nil. It is possible to ignore this condition by setting ObjCRuntime.Class.ThrowOnInitFailure to false. What appears to happen in this case is that when it tries to create the EAAccessoryStream is it throws this exception because there is already an existing EASession object being held by the NmeaLocationDataSource object. This is somewhat conjecture just based on what I observe through a lot of logging and going through various scenarios in testing. As there is no access to the underlying EASession it is hard to see in exactly what happening. So what would a best practice of how to manage the NmeaLocationDataSource when the app goes into background. What I am trying now is to call StopAsync when the app goes into background. This allows just restarting everything without error when the app comes back into foreground. This does seem to be working. Honestly, I am not too happy with this solution. I think the location provider should be able to run in the background unless it is forced to stop because another app took over the connection to the external device. However, I am unable to see anything that indicates which of the two scenarios has occurred to allow the application to restore in the correct way based on the different conditions.
... View more
02-02-2023
09:46 AM
|
0
|
0
|
574
|
|
POST
|
@ReneParise We are aware of the SxToolbox app and that is the current approach being used. We would prefer to not require the users have a second application running in the background and require them to return to this application to confirm they are connected to the NTrip server. The client is using the SX Blue Platinum (they have over 100 devices). The workflow of needing a second application has been arduous to the end users and we are looking for a way to have greater control within the application, giving an ability to keep the users better informed as to status of the NTrip data. We do seem to be able to write out to the stream of the device, however, it does not seem to be returning a NMEA sentence indicating a RTK float/fix fix type. This confusing, as it seems based on samples (including one provided by your company a few years back) we are writing the data correctly. It is very unclear how the SxToolbox application would be writing to the device differently than how we are doing it directly from the our application. Based on various technical documents, it seems to indicate that if an NTrip stream was being sent on the port the Platinum would recognize that it is a correction data stream. We would love to talk with someone at Geneq that could help in this matter, you can direct message me if you could help in this regard Thanks -Joe
... View more
01-10-2023
08:46 AM
|
0
|
1
|
1619
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 10-23-2025 12:16 PM | |
| 1 | 10-19-2022 01:08 PM | |
| 1 | 09-03-2025 09:25 AM | |
| 1 | 04-16-2025 12:37 PM | |
| 1 | 03-18-2025 12:17 PM |
| Online Status |
Offline
|
| Date Last Visited |
12-04-2025
04:12 PM
|