POST
|
Runtime Team, (Using Esri.ArcGISRuntime 100.6/WPF) I have an application where I'm showing various assets (vehicles, people, etc) moving around a map. To accomplish this, I'm using a GraphicsOverlay with a UniqueValueRenderer. Everything seems to be working well, except when I'm zoomed in on an asset (zoom level doesn't seem to make a difference), the defined label is not always moving along with the symbol. This seems that it may have something to do with label weights, and the label waiting to be in an area where it has enough room to render. I need this label to always be moving along with the graphic, even if it is showing up on top of other labels defined in the map, I'm guessing this may be something I'm missing in the label definition? See in the image how the label G15 is significantly behind the symbol. Eventually, it will seemingly randomly catch up to it. StringBuilder gphLabelsBuilder = new StringBuilder();
gphLabelsBuilder.AppendLine("{");
// Define a labeling expression that will show the unit attribute value
gphLabelsBuilder.AppendLine("\"labelExpressionInfo\": {");
gphLabelsBuilder.AppendLine("\"expression\": \"return $feature.Header;\"},");
// Align labels horizontally
gphLabelsBuilder.AppendLine("\"labelPlacement\": \"esriServerPointLabelPlacementAboveCenter\",");
// Use a green bold text symbol
gphLabelsBuilder.AppendLine("\"symbol\": {");
gphLabelsBuilder.AppendLine("\"color\": [0,0,0,255],");
gphLabelsBuilder.AppendLine("\"font\": {\"size\": 10, \"weight\": \"bold\"},");
gphLabelsBuilder.AppendLine("\"haloColor\": [255,255,255,255],");
gphLabelsBuilder.AppendLine("\"haloSize\": 1,");
gphLabelsBuilder.AppendLine("\"type\": \"esriTS\"}");
gphLabelsBuilder.AppendLine("}");
GraphicOverlay.LabelsEnabled = true;
GraphicOverlay.LabelDefinitions.Add(LabelDefinition.FromJson(gphLabelsBuilder.ToString())); This is how the label is being defined, the GraphicOverlay object is of type GraphicsOverlay with the rendering mode dynamic. Hopefully an obvious property I'm missing in the label definition JSON? EDIT: If it matters, I'm updating the graphic location by grabbing the Graphic from the GraphicsOverlay by its unique identifier (FirstOrDefault with Label), and setting the Geometry property to a new MapPoint created with the new coordinates. Furthermore, I would like to ask if this is the best practice for displaying rapidly changing data on a map? All examples I've been able to find on anything relatively close to this use case seem to use GraphicsOverlays/Symbols, but I wanted to see if there's a known better practice.
... View more
03-25-2020
07:20 AM
|
0
|
5
|
1290
|
POST
|
Joe and Shana, Thank you, this feedback confirmed the suspicion I already had that there really is no need for an explicit intersections point layer.
... View more
01-24-2020
05:10 AM
|
0
|
0
|
499
|
POST
|
ArcGIS Geolocation Team, Many of our clients will explicitly create a point layer to represent every intersection in their Centerline data. Is it in any way possible to use a point layer as a source for intersections as a locator role? Possibly some specific way of using the Point Address role with no house number and optional parameters? Thanks for your consideration. Kyle
... View more
01-20-2020
05:18 AM
|
0
|
3
|
577
|
POST
|
Brad, Thank you for the information. I have to say this is pretty shocking, and disappointing that there was no information or warning about this. The new locators were working fine in x86 up to 100.6. Our mapping application has been completely designed around the new locators, we would not be able to go back to the logic and deficiencies of the address locators. I'm pretty sure Visual Studio 2019 still defaults "prefer 32-bit" when creating a new WPF app, and I'm fairly certain we have a decent amount of clients running 32-bit versions of Windows out in the field.
... View more
01-02-2020
12:06 PM
|
0
|
1
|
1581
|
POST
|
Shana, Reverse geocoding does not work at all when mixing new locators and composite locators, that's a pretty important feature. Brad even says it's inadvisable to mix the new technology with the old, and it should only be used as a last resort or you have no need for reverse geocoding.
... View more
01-02-2020
10:24 AM
|
0
|
1
|
740
|
POST
|
Mark, Thanks for the info, looking forward to clarification. I have to admit that it would be very disappointing if this change was made without any sort of notice or warning. While in an ideal world all applications would be running in 64-bit by now, we all know it's not an ideal world. Brad Niemand Any input/information you have on this?
... View more
01-01-2020
05:57 AM
|
0
|
4
|
1581
|
POST
|
Here is what I think is a relevant thread. https://community.esri.com/thread/242403-reverse-geocoding-returns-different-attributes-with-composite-locator Having multiple roles of the same type in locators would be very helpful.
... View more
12-31-2019
05:02 PM
|
0
|
0
|
1016
|
POST
|
Are you using the new style locators (Create Locator) and merging them into a composite locator by any chance? If so, this thread has relevant information. https://community.esri.com/thread/242403-reverse-geocoding-returns-different-attributes-with-composite-locator#comment-8… The bottom line is, while it's technically supported, new style locators and composite locators are virtually unusable.
... View more
12-31-2019
04:57 PM
|
0
|
3
|
740
|
POST
|
Mark Bockenhauer, In my case, yes. Turning off Prefer 32-bit and recompiling does fix the issue, but obviously is not a fix due to the fact that we need to continue supporting 32-bit OSes, and I would expect ESRI would give us a healthy cushion period if you were planning on deprecating 32-bit support from the SDK. Edit: Sorry if this sounded a bit harsh, I'm not suggesting you were suggesting making apps 64-bit as a resolution, I just wanted to make it clear that it definitely would not be a viable resolution for us (and I'd assume many other SDK clients) at this time.
... View more
12-30-2019
11:24 AM
|
0
|
6
|
1581
|
POST
|
John, Just to clarify, I'm also using "Create Locator", I've been referring to them as "New Style Locators" since ESRI refuses to give us a definitive way to clearly separate locators (only available in ArcGIS Pro) and address locators. The only difference is mine only contains a street address role. Thanks for pointing that out as I realize the language in my original post was ambiguous, I edited to clarify.
... View more
12-27-2019
10:00 AM
|
0
|
0
|
1581
|
POST
|
I was really hoping this was something screwy going on in my main (complex) project, but the same thing is occurring in a simple repro app. https://helpdesk.alertts.com/content/Debugging/ArcGISReproApp_12232019.7z I also verified that downgrading to 100.6 fixes the problem.
... View more
12-23-2019
02:06 PM
|
1
|
2
|
1581
|
POST
|
Since upgrading to 100.7, any action I try with LocatorTask inside a MobileMapPackage seems to be bombing with an obscure exception. System.Windows.Threading.Dispatcher => Esri.ArcGISRuntime.ArcGISRuntimeException: Invalid response at Esri.ArcGISRuntime.ArcGISException.HandleCoreError(CoreError error, Boolean throwException) at RuntimeCoreNet.GeneratedWrappers.Interop.CheckError(IntPtr errorHandle, Boolean throwOnFailure, GCHandle wrapperHandle) at RuntimeCoreNet.GeneratedWrappers.CoreTask.Get() at Esri.ArcGISRuntime.Internal.CoreTaskExtensions.TaskCompletedCallbackHandler`1.OnCompleted(Object sender, EventArgs e) --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at Esri.ArcGISRuntime.Internal.CoreTaskExtensions.TaskCompletedCallbackHandler`1.<CreateInternal>d__7.MoveNext() --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) at System.Runtime.CompilerServices.TaskAwaiter`1.GetResult() at [REDACTEDMETHOD] in [REDACTED].cs:line 755 at [REDACTEDMETHOD] in [REDACTED].cs:line 525 --- End of stack trace from previous location where exception was thrown --- at System.Runtime.CompilerServices.AsyncMethodBuilderCore.<>c.<ThrowAsync>b__6_0(Object state) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Int32 numArgs, Delegate catchHandler) Literally, just calling LocatorTask.LoadAsync is causing this exception. Is there something I maybe missed in the release notes? This is with a v2.4 Locator with a Street Address role created in ArcGIS Pro 2.4.3 packaged inside an MMPK created with ArcGIS Pro 2.4.3. Esri.ArcGISRuntime/Esri.ArcGISRuntime.WPF 100.7. Project targeting .NET Runtime 4.6.2. I'll create a repro project when I get a chance. Thanks as always.
... View more
12-23-2019
01:35 PM
|
2
|
11
|
2395
|
POST
|
Just wondering here, the obvious answer seems to be "use strings instead of SuggestResults", but obviously I'd like some clarification on why the overload exists, and what the difference between the two is. My assumption would be that the SuggestResult overload is for convenience, and under the hood it would use the string equivalent anyway, but clearly that doesn't seem to be the case.
... View more
11-16-2019
07:05 AM
|
0
|
0
|
439
|
POST
|
Let me lay out a scenario, you have street address centerline and address point layers for Generic County, IL. You create a locator (I've been referring to them as "new style locators" that can only be created with ArcGIS Pro, we really need an official term for them) with an Point Address role and a Street Address role. User enters 265 Main St. This exists both as an address point, and a street address in a range (200-300 Main St, Springfield). The values in the centerline file and the address point file match exactly, so the Suggestor is only going to show one entry (as it should, the user shouldn't need to pick one if they represent basically the same thing (of course it's not the same exact thing, but that's another discussion)). Obviously, if a county has address point data, they're going to want to use that if an address matches, and fall back to the centerline if there's no exact address point. When you pass in a SuggestResult of 265 Main St, Springfield, it seems to only be pulling the StreetAddress. When you pass in the text of this same exact SuggestResult (I'm literally using SuggestResult.Label), I get two results in the order expected (PointAddress then StreetAddress). Any ideas? Sorry if this post seems erratic, I initially was suggesting there was a problem with the suggest behavior when I realized that suggest does nothing but returns text suggestions, nothing related to location coordinates or what type of feature it is. Now seems to be an issue with the Geocode overload. For reference: ArcGIS Runtime 100.6 (WPF) ArcGIS Pro 2.4.2 Local file Locator embedded in MMPK
... View more
11-11-2019
07:51 AM
|
0
|
1
|
502
|
POST
|
Brad, Thanks again. For option 1, I'm assuming one would use the merge tool, combine the common fields (L_F_ADD, L_T_ADD, etc), then leave additional fields for information one dataset may have and the other doesn't (SPEED, REST). Just want to verify this a practical way to go about this. Once again, you are a lifesaver, greatly appreciate all the assistance. I feel like you've given me more straight information about the new locators/geocoding in the past hour than I've gotten in the last 3 months.
... View more
10-22-2019
12:07 PM
|
0
|
0
|
1751
|
Title | Kudos | Posted |
---|---|---|
1 | 06-28-2019 09:01 AM | |
2 | 05-05-2020 01:06 PM | |
2 | 12-23-2019 01:35 PM | |
1 | 12-23-2019 02:06 PM | |
1 | 04-15-2019 08:53 AM |
Online Status |
Offline
|
Date Last Visited |
11-11-2020
02:25 AM
|