POST
|
Interesting! I'm going to loop in @SamuelTroth2 to get his thoughts as I've actually moved to working on a different area since this post so am not up to speed on recent changes to the label engine. Hopefully he'll be able to get to the bottom of the issue!
... View more
09-02-2022
09:04 AM
|
0
|
0
|
648
|
POST
|
Hi @Anonymous User , Thanks that's great! My suspicion based on those properties is that Never remove (place overlapping) on the Conflict Resolution tab is causing the issue. That property is really a last resort to get text on the map when there isn't enough room. Would you be able to see if turning it off resolves your stacking issue? Ciara
... View more
09-01-2022
11:01 AM
|
0
|
2
|
6771
|
POST
|
Hi @Anonymous User, Would you be able to send over what placement strategy you have on this label? Or send the layer file for me to take a look? Some types such as street labeling and contour deliberately ignore any new lines in the expression, so I'm wondering if you might be using one of those. All the best, Ciara
... View more
09-01-2022
02:30 AM
|
0
|
6
|
6777
|
IDEA
|
Glad that helped! Thank you for the feedback - we will look into making it more intuitive to find. Thanks! Ciara
... View more
08-26-2021
07:28 AM
|
0
|
0
|
1519
|
IDEA
|
Hi there, the leaderline symbol is part of the text symbol and there are a couple of ways you can change it. Option 1 - Most useful for one-off pieces of text Activate selection tool on ribbon (map tab or editing tab) Select your piece of annotation Launch the attributes pane (from the small icon on the ribbon - map tab or editing tab) Click the symbol button on attributes pane Go to callout properties Change the line (e.g. using simple line, or background callout for complex lines) Apply your changes and see the selected annotation update Option 2 - Useful if you want to reuse the same line for multiple pieces of text Ensure you have no unsaved edits Open Catalog pane or window Navigate to your annotation feature class Right click and launch annotation feature class properties from the context menu Select 'Add new symbol' option Under symbol, set the desired leader and/or callout Save your new symbol into the feature class Now, when you come to create a new piece of annotation or edit an existing piece you can use this symbol to get the desired leader: Hope that helps! Thanks, Ciara
... View more
08-23-2021
10:50 AM
|
0
|
0
|
1562
|
POST
|
Hi Marc, Are you still having issues with this? From what you're describing it sounds like you've set up the properties correctly. Does the label class on layer A have the never remove checkbox checked on? If not, would it be possible for you send a screenshot of the placement and placement properties? Thanks! Ciara
... View more
07-07-2021
01:30 AM
|
0
|
0
|
629
|
POST
|
Hi Le, You should be able to see the leader if you select the graphic with the select tool on the map graphics tab: and right click the text to select Add Leader: You can then move around the anchor to your desired position. Hope that helps! Let me know if you have any issues. Thanks, Ciara
... View more
08-17-2020
10:29 AM
|
1
|
1
|
637
|
POST
|
Jakub Sisak Sorry this is still posing an issue. If you could provide data demonstrating it that would be great!
... View more
01-20-2020
03:54 AM
|
0
|
0
|
3072
|
POST
|
Hi Brandon, This problem may no longer be relevant for you, but just in case it is: the issue is that maplex has the option to specify stacking characters, and the space character is a stacking separator by default, so it splits on any space it sees fit. You could remove the space as a stacking separator and choose an open bracket character for example, with visibility on and split after checked off. However, this won't help you if you still want it to stack on space characters in other parts of your expression. For that, you can use non-breaking space characters. You can replace regular spaces in part of your expression with non-breaking space character (U+00A0). For example: $feature.full_name + " (Z:" + $feature.zone + "\u00A0" + "R:"+ $feature.rank_id +")" Or if you have regular spaces in your fields and don't want them to stack, you could find and replace them with nbsp in a section: $feature.full_name+ " " + replace("(Z:" + $feature.zone + " R:"+ $feature.rank_id +")", " ", "\u00A0") Maplex will not split on these non breaking space characters. Or as a third option, you can hard code your new line character, and disabling stacking as a fitting strategy $feature.full_name + TextFormatting.Newline + "(Z:" + $feature.zone + " R:"+ $feature.rank_id +")" All the examples above are using Arcade, but will work just as well in any other parser. For VBScript make sure you use + vbnewline + instead of TextFormatting.Newline to ensure you have the correct type of line feed character. Hope that helps! Ciara
... View more
11-22-2019
03:28 AM
|
9
|
2
|
8721
|
POST
|
Hi Jeff, I can't see anything obviously wrong with your script that would cause you to only get the last word. The search could fail however your street field is not all capitalized since the search is case sensitive on line 8, so you might want to consider changing line 2 to: var words = split(upper($feature.STREET), " ") When I run the script in the playground and return the street it seems to come out okay, so not sure what's going wrong. Could you provide any more info?
... View more
11-20-2019
08:05 AM
|
0
|
1
|
7499
|
POST
|
Hi William, Unfortunately there was a a bug with callout bounds which will be fixed in 2.5. This is set to be released at the start of 2020 and will hopefully fix your issue! If you are part of the Early Adopter Community you will be able to get your hands on beta version now. Let me know if you still have issues when 2.5 is released. Thanks! Ciara
... View more
11-20-2019
03:43 AM
|
1
|
0
|
500
|
POST
|
Hi Randy, Would you be able to check whether you have never remove checked on? Never remove will mean your label will place even if the label engine is unable to find a good position for it: If not, would it be possible for you to send over a layer package or layer file so we can try to get to the bottom of it? Thanks! Ciara
... View more
11-20-2019
03:07 AM
|
2
|
0
|
3677
|
POST
|
Hi Paul, Different data types may have different names for their shape area field. This seems to be a common issue folks run into (stack-overflow example here). Arcade can help you here by giving you access to the feature geometry, which you can then calculate the area on: area(geometry($feature)) Hope that helps! Ciara
... View more
11-20-2019
02:21 AM
|
0
|
2
|
1552
|
POST
|
You also might find the number function useful to check if the first character is numeric. It returns NaN if the value you give it is not a number, then IsNan can be used to check it. Something along these lines should satisfy a lot of the issues you mention: var words = split($feature.NAME, " ")
var label = ""
for (var i in words)
label += iif(IsNan(number(words[0])), proper(words), lower(words)) + " "
return label Although it won't give you correct capitalization in all cases e.g. James Ii Street instead of James II Street or Virginia Avenue Sw instead of Virginia Avenue SW .
... View more
11-19-2019
07:04 AM
|
3
|
5
|
7500
|
POST
|
Hi Jeff, Sorry to hear it wasn't quite what you were looking for. Unfortunately only realized after the video meetup that I had missed off a couple of cases ("1TH", "2TH", "3TH") from my list of ordinals! I believe adding those in should fix the street name issues. Proper case has quite a specific meaning in Arcade in that it capitalizes the first letter. This means in cases such as proper("[hello]") Arcade will return [Hello], even though the first character is a square bracket. It moves on to the second character to make it proper case. By contrast, the capitalize function in Python will leave this lower case. If that is the behavior you are looking for, this can be done in Arcade by explicitly pulling out the first character with something along the lines of: var words = split($feature.NAME, " ")
var label = ""
for (var i in words)
label += upper(words[0]) + lower(right(words, count(words) - 1)) + " "
return label However, this will not handle special cases such as if you have a leading bracket or quote, or if you require upper case compass directions. Those would also not be handled by Python's capitalize function. Indeed the StackOverflow article you mentioned includes regex examples which are looking for a digit followed by th, st etc. to handle the ordinals special case. Unfortunately the capitalization of street names can be fiddly. Regex is certainly an option in Python, but it is important to remember that this is doing the same work, just in a single (although often less readable) line. While it is true that the proper() function could internally look out for and have special behavior to handle these known cases, Arcade is used globally, and not all languages share the same set of special cases. A special case for one user may not work for another. Writing these longer expressions for specific cases can take a little getting used to, but ultimately is what you are doing even in Python via regex. I hope that helps! Let me know if you have any more questions. All the best, Ciara
... View more
11-19-2019
04:40 AM
|
2
|
0
|
7493
|
Title | Kudos | Posted |
---|---|---|
2 | 11-19-2019 04:40 AM | |
3 | 11-19-2019 07:04 AM | |
9 | 11-22-2019 03:28 AM | |
1 | 04-25-2019 03:36 AM | |
1 | 08-17-2020 10:29 AM |
Online Status |
Offline
|
Date Last Visited |
03-14-2024
05:39 PM
|