|
IDEA
|
There are cases where we want to store spatial information in a table's non-spatial fields and create dynamic event layers on that information. We currently use the existing event layer types with great success: XY event layers and linear referencing route event layers. Those existing event layers are very powerful tools...and we want more! Polyline event layers WKT example: (30 10, 10 30, 40 40) Polygon event layers WKT example: ((30 10, 40 40, 20 40, 10 20, 30 10)) Multi-part point event layers WKT example: (10 40, 40 30, 20 20, 30 10) Use cases: Use a multipoint WKT field in a non-spatial table to create an event layer — for scenarios we don't have the option of converting the table to a FC, such as an external database. Or, a WKT field (polyline, polygon, or multipoint) in an existing FC. We can't have multiple geometry columns in a FC, so we'd store the information in a non-spatial text field instead, and create an event layer on it. Lots more... Performance: My experience has been that event layers are surprisingly fast: Why are XY event layers so fast? The XY event layer is generated on the client-side after all required library/data has been downloaded on the client machine, therefore there is no client-server connection required. It is also fast because it is generated from the Computer's RAM. In contrast, if you are querying geometry from DB, a client-server connection is required and a query is performed on the DB server which causes the latency. So, if XY event layers are fast (linear referencing route event layers are reasonably fast too), then hopefully that high performance would translate to line/polygon/multipoints as well. Alternatives: We're aware that there are other ways to calculate geometries, but they have downsides: ST_GEOMETRY views: The ST_GEOEMTRY constructor/function is far too slow for generating geometries on-the-fly. In a test, an XY event layer on 10,000 rows loaded in the map instantly, whereas an ST_GEOMETRY point view took 10-20 seconds using the same data. So ST_GEOMETRY isn't a realistic option. Attribute rules to populate a separate FC: That would likely work, but would require extra FCs to manage. Our EGDB is already quite big/complicated, so we want to avoid that extra complexity if we can help it. Also, attribute rules wouldn't be applicable if the table was in an external database. So, something like dynamic event layers would be preferred. Database triggers to populate a separate FC: Similar to the attribute rule option, triggers might work, but would require extra FCs to manage, aren't applicable if the table is in an external DB, and aren't really supported by Esri either. Not to mention the fact that versioning makes things extra complicated/risky/unsupported. As far as I know, there aren't any geoprocessing tools that can create a FC from WKT. And even if there were, the FC wouldn't be dynamic, so that's not what we're looking for...and scheduled jobs to recreate FCs aren't quite what we want either. The same limitations apply to Python scripts. Limitations/Tradeoffs: We're aware that there could be limitations for the proposed event layer types, such as: The event layers would be more complicated than a basic XY event layer. So, for large datasets, or features with lots of points, performance might be slower than we'd like. But users are aware that event layers have their limits by nature of being dynamic, and would plan accordingly. It's also worth mentioning that linear referencing event layers are reasonably fast. They're based on lines, so maybe other complex geometry types like lines/polygons/multipoints would perform well too. We would need to populate the WKT field with spatial information...one way or another...which would require custom code. But we could live with that. There are lots of different ways of calculating a field in ArcGIS...so one of the options should work. And, in some cases, the field might even come pre-populated if the table comes from an external system. Summary: Having event layer functionality for lines, polygons, and multi-part points could be very handy. We already have event layers for points and linear referencing lines, why not give us event layers for the other geometry types too?
... View more
06-22-2022
12:54 AM
|
3
|
2
|
1638
|
|
POST
|
You can add a unique index using the properties in Catalog. Composite unique indexes are also possible there too.
... View more
06-21-2022
05:20 PM
|
0
|
2
|
2165
|
|
IDEA
|
@KoryKramer Yeah, good point. That would work in a pinch. It's still maybe a bit clunkier than I'd like though. And takes an extra step. In many cases, I still want to see the nulls too, I just want them to be at the bottom of the list, while sorting descending. Thanks for the tip though.
... View more
06-21-2022
09:20 AM
|
0
|
0
|
8502
|
|
IDEA
|
For what it’s worth: Oracle, PostrgreSQL, and DB2 have this functionality built right into the database. with data (id, last_edited_date) as ( select 1, to_date('2022-06-21', 'YYYY-MM-DD') from dual union all select 2, null from dual union all select 3, to_date('2022-06-21', 'YYYY-MM-DD') from dual) select id, last_edited_date from data order by last_edited_date desc nulls last ID LAST_EDITED_DATE ---------- ---------------- 1 21-JUN-22 3 21-JUN-22 2 [null] Indexing ASC, DESC and NULLS FIRST/LAST Besides ASC and DESC, the SQL standard defines two hardly known modifiers for the order by clause: NULLS FIRST and NULLS LAST. Explicit control over NULL sorting was “recently” introduced as an optional extension with SQL:2003. So, since that functionality is built into some databases, that might make implementing this feature easy…at least for those specific DBs. Edit: It turns out there is a way to do it in all databases: Null in Order By The effect of nulls (first|last) can be obtained with a case expression in all databases. The following example implements order by c nulls first: ORDER BY CASE WHEN c IS NULL
THEN 0
ELSE 1
END
, c Note that the case expression defines a new order by key for the sole purpose of separating null and not null values. So I wonder if that would make it easy to implement this functionality in ArcGIS Pro. Just construct a slightly different ORDER BY clause in the SQL that's sent to the database...using the above CASE technique.
... View more
06-21-2022
08:38 AM
|
0
|
0
|
8584
|
|
IDEA
|
When sorting a field in the attribute table, it would be helpful if we could specify how nulls are handled (NULLS FIRST vs. NULLS LAST). For example (Oracle), I want to sort a date field descending so that the latest dates are at the top. But when I do that, 1) nulls are at the top, then 2) the latest dates are shown next, then 3) the first dates. That's a nuisance when dealing with large tables. I need to painstakingly scroll down through nulls to get to the first instance of a non-null date in the list. (In my case, I had to scroll through 10,000 nulls...and then look for where the nulls stop and the dates start) Sorting in ascending order doesn't help either. It would be better if I could specify that I want the nulls to be last in the list, even though I'm sorting descending. Maybe something like this: Would something like that be possible? Related: Allow using the ORDER BY clause in definition queries (SQL)
... View more
06-21-2022
08:38 AM
|
5
|
11
|
9195
|
|
IDEA
|
It would help if there were a geoprocessing tool for creating and managing entries in Oracle's user_sdo_geom_metadata table/view. I find it clunky to manually create those records through SQL. Every once and a while I make a mistake when writing the SQL, and it ends up being a headache. I'd be less likely to make a mistake if I used an OOTB GP tool. Also, an OOTB tool would be more convenient for deleting entries.
... View more
06-19-2022
08:41 PM
|
4
|
2
|
1257
|
|
POST
|
Thanks very much. That really helps. Related: Tips for creating an entry in user_sdo_geom_metadata (NAD 1983 UTM)
... View more
06-19-2022
08:38 PM
|
0
|
0
|
2539
|
|
IDEA
|
Regarding technical article #000011333: Bug: Unable to define a query layer in ArcGIS where the data source uses an st_geometry subtype in Oracle Workaround: Convert the geometry attribute field from the subtype (for example, st_point) to the supertype st_geometry. The docs say we should convert the ST_POINT subtype to ST_GEOMETRY supertype. But they don't say how to make the conversion. The only way I've found so far is to convert to WKB or WKT and then back to ST_GEOMETRY: --This works, but is clunky and slow: sde.st_geomfromwkb(sde.st_asbinary(...)). Is that how Esri recommends we make the conversion? It would help if Esri could explicitly tell us what is meant there. Thanks. Note: I've tried using the TREAT() function too. But that didn't seem to work properly: Stack Overflow: Convert UDT subtype to supertype Related: Convert MDSYS.ST_LINESTRING subtype value to MDSYS.ST_GEOMETRY supertype
... View more
06-19-2022
02:49 PM
|
0
|
1
|
1002
|
|
POST
|
What does the "strikethrough S" mean in an implemented idea summary? Example: (displayed in my Esri Community Profile > Latest Contributions section) Here's the post from the screenshot: https://community.esri.com/t5/arcgis-enterprise-ideas/esri-docs-need-updating-function-based-spatial/idi-p/1174005/
... View more
06-17-2022
03:14 PM
|
0
|
2
|
1538
|
|
POST
|
I can't say for sure, since I haven't been involved with this data until recently. But it could have been this: People other than me undertook an initiative a couple of years ago where they cleaned up and merged some FCs in the FD. That wouldn't have been easy to do while the data was in SDE, due to locks, testing, etc. So I think they probably put a copy into a FGDB or a PGDB (ArcMap), did some "novice things" with GP tools, Python scripts, etc.. Then they would have deleted the original from SDE and copy/pasted the modified version back in. The tolerances could have gone awry as part of that process.
... View more
06-17-2022
02:06 PM
|
2
|
0
|
7406
|
|
IDEA
|
@KoryKramer and @and_viceversa Thanks for your comments. I posted this blurb in the linked page just now. I'll post it here too: It looks like the FD's XY Resolution and XY Tolerance are wrong. I don't think those values should be so small...I'm guessing they should be set to what the FC has (0.0001 and 0.001) which are likely the defaults. I'll look into fixing the FD. I don't imagine it'll be easy. So, I think the FD's XY Resolution and XY Tolerance are what's causing the "Spatial Reference" error. As @Anonymous User mentioned, that's an example where the error message is misleading/not detailed enough: "Move failed. The Spatial references do not match."
... View more
06-17-2022
01:53 PM
|
0
|
0
|
3147
|
|
POST
|
It looks like the FD's XY Resolution and XY Tolerance are wrong. I don't think those values should be so small...I'm guessing they should be set to what the FC has (0.0001 and 0.001) which are likely the defaults. I'll look into fixing the FD. I don't imagine it'll be easy.
... View more
06-17-2022
01:48 PM
|
0
|
2
|
7414
|
|
POST
|
Good idea. See: Improve error messaging when moving FC to FD due spatial reference mismatch https://community.esri.com/t5/arcgis-pro-ideas/improve-error-messaging-when-moving-fc-to-fd-due/idi-p/1183977/
... View more
06-17-2022
10:23 AM
|
0
|
0
|
7435
|
|
IDEA
|
Scenario: Moving FC to feature dataset fails, despite spatial references appearing to be the same. Example: The XY Resolution and/or XY Tolerance is different between the FC and the FD. But ArcGIS Pro's error message says, "Move failed. The Spatial references do not match.", which is misleading/not specific enough. Idea: Improve the error messaging by telling the user what criteria failed instead of the very general "spatial reference" error message.
... View more
06-17-2022
10:23 AM
|
13
|
6
|
3286
|
| Title | Kudos | Posted |
|---|---|---|
| 1 | 03-19-2026 11:42 AM | |
| 1 | 06-03-2026 04:02 AM | |
| 1 | 03-18-2026 07:08 PM | |
| 2 | a week ago | |
| 4 | a week ago |