自定义目录配置

发送反馈


在实际的业务应用中,用户单位对地图、服务、场景、数据、洞察、项目等资源的分类展示往往是多种多样的,如按照年份、区域、业务类型等等,因此,单一的按照资源的来源、类型进行分类已无法满足实际业务需求。

基于此,SuperMap iPortal 提供了自定义资源目录配置功能,即允许管理员为某类资源新建一个或多个目录结构树,将门户中的地图、服务、场景、数据、洞察、项目等资源添加到指定的目录结构树中的某个具体目录文件夹下。资源目录配置完成后,在“首页”>“资源中心”>“地图/服务/场景/数据/洞察/项目”资源列表页面左侧过滤器面板会依次列出管理员配置的资源目录结构树。您也可通过过滤器定制功能调整新添加的目录分类过滤器的显示次序,或隐藏显示。

开启/禁用自定义目录

自定义目录功能默认未开启,管理员可以通过以下两种方式开启/禁用自定义目录:

  1. 以管理员身份登录门户首页,依次点击“管理”>“站点配置”>“目录管理”,进入目录管理页面,当前页面提供了“地图”、“服务”、“场景”、“数据”、“洞察”、“项目”资源的自定义目录配置项,您可以根据实际业务需求,在页面左上角点击启用/禁用开关,控制是否启用您配置的自定义目录。
  2. 在【SuperMap iPortal 安装目录】\webapps\iportal\WEB-INF 文件夹下的 iportal.xml 配置文件中,通过 <customDirectorySetting> 子节点元素来设置启用/禁用自定义目录,具体请参见:iPortal 配置文件说明

完成启用自定义目录功能的配置后,“首页”>“资源中心”>“地图/服务/场景/数据/洞察/项目”资源列表页面左侧过滤器面板会依次列出管理员配置的自定义目录结构树。通过过滤器定制功能可调整新添加的目录分类过滤器的显示次序,或隐藏显示。

完成启用“服务”资源自定义目录功能的配置后,“首页”>“资源中心”>“服务”>“注册服务”页面会出现“指定服务存放目录”选项,门户用户可以将注册的服务添加到自定义目录中。

自定义目录设置

以管理员身份登录门户首页,依次点击“管理”>“站点配置”>“目录管理”,进入目录管理页面。使用自定义目录的一般流程是:一、选择资源类型,如:地图/服务/场景/数据/洞察/项目,二、选中或新建一个根目录,在此根目录下创建一级或多级目录,三、进入某个新建的具体目录文件夹下,将资源添加到该目录中。下面以“自定义地图目录”为例, 详细介绍各项操作。

添加根目录

每种资源类型支持创建一个或多个根目录。系统默认为每种资源类型创建了“默认目录”的根目录。点击“地图”选项卡,点击按钮,在新建根目录弹出中输入根目录名称,点击确定,即可创建一个根目录。根目录创建完后,即可添加目录、资源。

重命名根目录

根目录支持重命名操作。鼠标移动到要操作的根目录名称上,点击右侧出现的,选择“重命名”操作,根目录名称即进入编辑状态,完成编辑后,鼠标点击任意空白位置即可退出编辑操作。

删除根目录

根目录支持删除操作。鼠标移动到要操作的根目录名称上,点击右侧出现的,选择“删除”操作,在删除弹窗中选择是否同时将该目录树中分配的资源也从门户中删除,选择完成后点击“确定”,完成删除操作。注意:若选择同时将目录中的资源从门户中删除,此资源会被永久删除,不可恢复。请慎重操作。

添加目录

创建根目录后,即可为创建的根目录添加一级或多级目录,从而完成自定义目录结构树的创建。点击“地图”选项卡,选择要创建目录的根目录(系统会默认选择“默认目录”),点击“添加目录”按钮,输入目录名称,完成一级目录的创建。您可创建多个一级目录,也可点击创建好的一级目录进入该目录中,点击“添加目录”,继续添加子目录。支持无限级目录嵌套。

添加资源

支持在创建好的目录下添加资源。点击需要添加资源的目录名称,进入该级目录中,然后点击“添加资源”按钮,会弹出可以添加到该目录下的所有地图列表信息,您还可以在搜索框中输入地图标题的关键字,查询想要添加的地图,然后勾选地图标题前面的复选框(支持多选),点击“添加”按钮即可。注:同一个资源支持被添加到不同的目录结构树中,但同一个目录结构树中,同一个资源只能被添加一次。

移动目录及资源

目录或资源支持移动到所属目录结构树下的指定目录中。在某一个目录级别,勾选当前目录下需要移动的目录或资源前面的复选框,然后点击按钮,选择“移动至”,在“移动至”弹窗中,选择目标目录名称,点击“确定”按钮,即可完成目录和资源的移动。

注意:移动目录时,会将目录下的全部内容(资源和子目录)一起移动。

重命名目录

支持重命名目录名称。鼠标移动到需要重命名的目录名称条目上,点击出现的按钮,目录名称即进入编辑状态,完成编辑后,鼠标点击任意空白位置即可退出编辑操作。

删除目录及资源

支持删除目录及目录下的资源。在某一个目录级别,勾选当前目录下需要删除的目录或资源前面的复选框,点击按钮,选择“删除”,在删除弹窗中选择是否同时将该目录树中分配的资源也从门户中删除,选择完成后点击“确定”,完成删除操作。注意:若选择同时将目录中的资源从门户中删除,此资源会被永久删除,不可恢复。请慎重操作。

调整目录顺序

支持目录的上下移动,调整目录顺序。将鼠标移动至单条目录记录上,会显示向上移动和向下移动的箭头。例如想把第二个目录向上移动到第一条目录的位置, 点击第二条目录中的向上移动箭头,此时,第二个目录上移,位置变成了第一个,之前的第一个目录的位置变成了第二个,然后点击确认按钮,即完成了目录的顺序调整,也可以点击取消按钮,取消本次的目录移动。

导入第三方服务目录

iPortal 支持导入第三方的服务目录及资源,方便您直接将已有应用系统中的服务目录及服务资源导入 iPortal 中。导入的第三方服务目录需遵循导入第三方服务目录规范,具体导入操作如下:

以管理员身份登录门户“首页”>“管理”>“站点配置”>“目录管理”页面,点击左侧面板的“服务”,系统会自动选中提供的“默认目录”,您也可以点击按钮创建一个新的根目录,然后在页面上方点击“导入目录“,在弹窗中输入第三方服务目录地址,即根目录(Root Catalog)的 url,具体请参见:根目录(Root Catalog)

导入第三方服务目录规范

导入的服务目录需遵循本规范。本规范主要参考了 SpatioTemporal Asset Catalog 中的 STAC CatalogSTAC Item。其中 Catalog 用于描述一个目录,Item 用于描述一个资源项(如:服务资源)。

根目录(Root Catalog)

iPortal 导入第三方的服务目录时,要求第三方必须且只需提供一个能够获得根目录(Root Catalog)的 url,通过该 Root Catalog,iPortal 可以检索到第三方的所有子目录(Child Catalog)以及 Catalog 下的资源项(Item)。Root Catalog 本身不会被同步到 iPortal,它只作为一个检索 Child Catalog 和 Item 的入口。

要求能够返回本规范中描述的 Root Catalog 的 json 格式数据,示例如下:

{

    "id": "Root_Catalog",

    "title": "Root Catalog",

    "description": "Root Catalog",

    "links": [

        {

            "rel": "self",

            "href": "http://{server}/catalog.json"

        },

        {

            "rel": "root",

            "href": "http://{server}/catalog.json"

        },

        {

            "rel": "child",

            "href": "http://{server}/catalog/RailwayCatalog.json"

        },

        {

            "rel": "child",

            "href": "http://{server}/catalog/Highway.json"

        },

        {

            "rel": "child",

            "href": "http://{server}/catalog/Other.json"

        }

    ]

}

json 表述结构如下:

字段 类型 描述
id String 【必选参数】
根目录ID,也是目录名称。
title String 【可选参数】
根目录标题。
description String 【可选参数】
根目录描述信息。
links [Link Object] 【必选参数】
当前目录与链接内容的关联关系列表。

Link Object

该对象描述了当前目录与链接内容的关联关系列表,由以下字段组成:

字段 类型 描述
rel String 【必选参数】
表示当前目录与链接内容的关联关系。rel 的取值包括:self(自身)、root(根目录)、parent(父级目录)、child(子级目录)、item(该目录下的数据项)。
href String 【必选参数】
表示链接的 url。此 url 的设计不做要求,建议按目录层级设计。

子目录(Child Catalog)

如果有子目录,要求能够返回本规范中描述的子目录(Child Catalog)的 json 格式数据,示例如下:

{

    "id": "铁路",

    "title": "铁路",

    "description": "铁路目录描述",

    "links": [

        {

            "rel": "self",

            "href": "http://{server}/catalog/RailwayCatalog.json"

        },

        {

            "rel": "parent",

            "href": "http://{server}/catalog.json"

        },

        {

            "rel": "root",

            "href": "http://{server}/catalog.json"

        },

        {

            "rel": "child",

            "href": "http://{server}/catalog/RailwayCatalog/2019.json"

        },

        {

            "rel": "child",

            "href": "http://{server}/catalog/RailwayCatalog/2018.json"

        },

        {

            "rel": "item",

            "href": "http://{server}/catalog/RailwayCatalog/item1.json"

        },

        {

            "rel": "item",

            "href": "http://{server}/catalog/RailwayCatalog/item2.json"

        }

    ]

}

json 表述结构如下:

字段 类型 描述
id String 【必选参数】
子目录ID,也是目录名称。
title String 【可选参数】
子目录标题。
description String 【可选参数】
子目录描述信息。
links [Link Object] 【必选参数】
当前目录与链接内容的关联关系列表。

Link Object

该对象描述了当前目录与链接内容的关联关系列表,由以下字段组成:

字段 类型 描述
rel String 【必选参数】
表示当前目录与链接内容的关联关系。rel 的取值包括:self(自身)、root(根目录)、parent(父级目录)、child(子级目录)、item(该目录下的数据项)。
href String 【必选参数】
表示链接的 url。此 url 的设计不做要求,建议按目录层级设计。

资源项(Item)

如果有资源项(服务资源),要求能够返回本规范中描述的资源项(Item)的 json 格式数据,示例如下:

{

    "id": "4b4e9e27-bef2-4a84-865a-f1dfd08f507e",

    "type": "SERVICE",

    "properties": {

        "title": "map-china400",

        "subtype": "WMS",

        "version": "1.1.1",

        "description": "map-china400 description",

        "tags": [

            "tag1",

            "tag2"

        ],

        "created": 1575508370562,

        "updated": 1575508370566

    },

    "assets": {

        "thumbnail": {

            "href": "http://rdc.ispeco.com:8080/iserver/services/map-china400/wms111/entireImage.png",

            "type": "image/png"

        },

        "metadata": {

            "href": "http://rdc.ispeco.com:8080/iserver/services/map-china400/wms111",

            "type": "application/xml"

        }

    },

    "links": [

        {

            "rel": "self",

            "href": "http://{server}/catalog/RailwayCatalog/item1.json"

        },

        {

            "rel": "parent",

            "href": "http://{server}/catalog/RailwayCatalog.json"

        },

        {

            "rel": "root",

            "href": "http://{server}/catalog.json"

        }

    ]

}

json 表述结构如下:

字段 类型 描述
id String 【必选参数】
资源项 ID。
type String 【必选参数】
资源项类型,固定值:SERVICE。
properties Properties Object 【必选参数】
资源项的基本属性信息列表。
assets Assets Object 【必选参数】
资源项的资产列表。
links [Link Object] 【必选参数】
当前目录与链接内容的关联关系列表。

Properties Object

该对象描述了资源项的基本属性信息列表,由以下字段组成:

字段 类型 描述
title String 【必选参数】
资源项名称。
subtype String 【必选参数】
资源项子类型,例如:WMS、WMTS等。
version String 【必选参数】
资源项版本号,例如:WMS 服务的1.3.0。
description String 【可选参数】
资源项描述信息。
tags List<String> 【可选参数】
资源项的标签列表。
created Long 【必选参数】
资源项的创建时间。
updated

Long

【必选参数】
资源项的更新时间。

 

Assets Object

该对象描述了资源项的资产列表,由以下字段组成:

字段 类型 描述
thumbnai String 【必选参数】
资源项的缩略图。
metadata Metadata 【必选参数】
资源项的元数据信息。

Link Object

该对象描述了当前目录与链接内容的关联关系列表,由以下字段组成:

字段 类型 描述
rel String 【必选参数】
表示当前目录与链接内容的关联关系。rel 的取值包括:self(自身)、root(根目录)、parent(父级目录)、child(子级目录)、item(该目录下的数据项)。
href String 【必选参数】
表示链接的 url。此 url 的设计不做要求,建议按目录层级设计。

第三方服务目录同步

导入服务目录成功后,若后续第三方服务目录的地址或内容发生了变更,并希望将变更同步至 iPortal 中,iPortal 为您提供了服务目录一键同步功能。

在首次导入服务目录后,“导入目录”按钮将被替换为“同步目录”按钮,如果服务目录的内容发生了变更,您可以直接点击“同步目录”,实现 iPortal 服务目录与第三方服务目录的同步;若服务目录的地址发生了变更,您可以点击“同步目录”右侧的编辑按钮,更新第三方服务目录地址并完成同步。