有什么方法可以获取 ENC 图层的所有功能并在 java 或 .net ArcGIS SDK 中切换它们的可见性?

Is there any way we can get all the features of an ENC layer and toggle their visibility in java or .net ArcGIS SDKs?

我正在寻找一种方法来从 ENC 层获取所有特征的列表,同时查看我遇到的编码样本 this

在此示例代码中,我们有 MapView.IdentifyLayersAsync 和 MapView.IdentifyLayerAsync 方法,这两种方法分别为 return Task> 和 Task,然后我们可以从 GeoElements 中获取特征,但这两种方法方法需要点作为输入参数,我们如何在不提供点的情况下做到这一点,即获取 ENC 层的所有特征,是否可以切换它们在 MapView 中的可见性(特别是在 java 100.7.0 中)?提前致谢

无法使用 IdentifyLayerAsync() 从 ENC 层获取所有要素。 IdentifyLayerAsync() 用于通过单击鼠标来识别可见特征。 https://developers.arcgis.com/java/latest/api-reference/reference/com/esri/arcgisruntime/mapping/view/GeoView.html#identifyLayersAsync(javafx.geometry.Point2D,double,boolean,int)

您的用例是什么?您是要获取当前视图中的所有 ENC 要素还是 ENC 文件中的所有要素?你看过 GDAL ogr2ogr 实用程序吗?它可以将S57(ENC)导出为其他矢量格式。

我一直在使用相同版本的 Java runtime SDK v100.7.0 并遇到了同样的问题。在“设置 ENC 环境设置”下 Display electronic navigational charts - ArcGIS Runtime SDK for Java 浏览了他们的文档后,提到了:

ENC layers are displayed in accordance with the IHO S-52 standard. You can define the display properties of your ENC layers by using the static EncEnvironmentSettings class. These settings apply to all ENC layers in all maps. Settings fall under three categories: mariner settings, text group visibility settings, and viewing group settings. Text group settings control the display of labels for features, mariner settings control the symbolization and presentation of ENC features, and viewing group settings allow for quickly applying settings to logical groups of feature types. Example:

    // Enables display of seabed information for all ENC layers
EncEnvironmentSettings.getDisplaySettings().getTextGroupVisibilitySettings().setIsNatureOfSeabed(true);

因此,要更改每个功能类型的可见性,您可以从 EncEnvironmentSettings.getDisplaySettings() 调用特定类别,然后使用布尔值设置该类别下特定功能的可见性。

此 ArcGIS class 文档会有所帮助 EncEnvironmentSettings.DisplaySettings Class