With the HydrographicS57Layer, is it possible to extract the sounding/depth at the point the user clicks? I have managed to get the DRVAL1 and DRVAL2 from the cell which I assume is the upper/lower depth in the area, but how do I get the actual depth (the number displayed on the map)?
Also, I am wondering what is the best-practice for loading a potentially large number of S57 cells onto the map at once with decent performance? Is it possible to load/show layers based on the S57 scale band, visible extent or similar?
We are currently evaluation the ArcGIS Runtime SDK for our upcoming WPF marine application, and how well it supports S57 will largely influence our decision.
Unfortunately you wont "really" be able to extract the depths when they click around on the ENC, unless they click directly on a sounding specifically. One option could be to return the "Depth Area" value, this is a polygon area that represents one depth. Unfortunately since the ENCs only have the sounding depths recorded at the location of the sounding symbol, this will be as close as we can provide you. That being said, you could serve a bathymetric raster in the background as the depth source. This would provide you with a continuous surface by which the user could identify on. In this case I would be careful of the source of the bathymetric raster because if it differs in any way from the soundings on the ENC it could be misleading.
As for best practices for loading large volumes of ENC data. We have few options, first; the ArcGIS for Maritime: Charting Solution. This solution is designed to ingest large volumes of ENC data into a single database. It also allows you to calculate representations on the data and display the feature classes with S-52 symbology. Ultimately, providing you with a very similar look to flat ENC files. This solution is traditionally used for chart production, if this isn't really what you're looking for we have a couple other options.
The second option would be Maritime Chart Server, this is a Server Object Extension that allows you to place ENC's into a directory allowing a server to look at this location and render all of your ENCs with S-52 symbology in the form of a map service. This can be accessed in ArcMap, ArcGIS Online, or in a custom web application. Message me with your contact information and I would be more than happy discussing this further.
Finally, the last option is the S-57 Viewer, this is a FREE product that we came out with a couple of years ago. You install it onto ArcMap and it simply provides you with a method to add ENC's to ArcMap with the proper S-52 symbology. Check out S-57 viewer here.
I hope this was helpful.
Thanks for your reply. One of the requirements of our application is that it should work offline, so unfortunately the server solution is not an option.
We don't need to load every cell for the world at once. If it is possible to load cells only within the current extent and filter the cells based on navigational purpose and scale/zoom level that would reduce the number of cells needed. Is something like that possible? I noticed that even loading the cells with the layers invisible is causing high load and memory consumption and ultimately crashes the application, which makes it harder to dynamically load/unload cells based on the user extent. If we have to load the cells from disk with each panning operation, I think the performance and user experience will suffer.
Any advise is greatly appreciated.