创建

描述

object map.create(object/array maps)

此方法允许创建一个新的拓扑图。

此方法适用于任何类型的用户。调用该方法的权限可以在用户角色设置中撤销。请参阅用户角色了解更多信息。

参数

(object/array) 要创建的拓扑图。

除了标准拓扑图属性外,该方法还接受以下参数

参数 类型 说明
links array 要在拓扑图上创建的拓扑图 link
selements array 要在拓扑图上创建的拓扑图 元素
urls array 要在拓扑图上创建的拓扑图 URL
users array 要在拓扑图上创建的拓扑图共享 用户
userGroups array 要在拓扑图上创建的拓扑图 用户组 共享。
shapes array 要在拓扑图上创建的拓扑图 shapes
lines array 要在拓扑图上创建的拓扑图 lines

要创建地图链接,您需要将地图元素selementid 设置为任意值,然后使用此值在链接 selementid1selementid2 属性中引用此元素。 创建元素时,该值将替换为 Zabbix 生成的正确 ID。参考示例

返回值

(对象)返回一个对象,该对象包含在"sysmapid"属性下创建的拓扑图的id。返回id的顺序与传递的拓扑图的顺序相匹配。

案例

创建一个空拓扑图

创建一个没有元素的拓扑图。

请求

{
           "jsonrpc": "2.0",
           "method": "map.create",
           "params": {
               "name": "Map",
               "width": 600,
               "height": 600
           },
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": {
               "sysmapids": [
                   "8"
               ]
           },
           "id": 1
       }

创建主机映射

创建一个包含两个主机元素和它们之间链接的拓扑图。请注意在拓扑图链接对象中使用临时 "selementid1" 和 "selementid2" 值来引用拓扑图元素。

请求

{
           "jsonrpc": "2.0",
           "method": "map.create",
           "params": {
               "name": "Host map",
               "width": 600,
               "height": 600,
               "selements": [
                   {
                       "selementid": "1",
                       "elements": [
                           {"hostid": "1033"}
                       ],
                       "elementtype": 0,
                       "iconid_off": "2"
                   },
       
                   {
                       "selementid": "2",
                       "elements": [
                           {"hostid": "1037"}
                       ],
                       "elementtype": 0,
                       "iconid_off": "2"
                   }
               ],
               "links": [
                   {
                       "selementid1": "1",
                       "selementid2": "2"
                   }
               ]
           },
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": {
               "sysmapids": [
                   "9"
               ]
           },
           "id": 1
       }

创建一个触发器拓扑图

创建一个包含两个触发器元素的拓扑图。

请求

{
           "jsonrpc": "2.0",
           "method": "map.create",
           "params": {
               "name": "Trigger map",
               "width": 600,
               "height": 600,
               "selements": [
                   {
                       "elements": [
                           {"triggerid": "12345"},
                           {"triggerid": "67890"}
                       ],
                       "elementtype": 2,
                       "iconid_off": "2"
                   }
               ]
           },
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": {
               "sysmapids": [
                   "10"
               ]
           },
           "id": 1
       }

拓扑图分享

创建具有两种共享类型(用户和用户组)的拓扑图。

请求

{
           "jsonrpc": "2.0",
           "method": "map.create",
           "params": {
               "name": "Map sharing",
               "width": 600,
               "height": 600,
               "users": [
                   {
                       "userid": "4",
                       "permission": "3"
                   }
               ],
               "userGroups": [
                   {
                       "usrgrpid": "7",
                       "permission": "2"
                   }
               ]
           },
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": {
               "sysmapids": [
                   "9"
               ]
           },
           "id": 1
       }

拓扑图形状

创建一个带有主题的拓扑图。

请求

{
           "jsonrpc": "2.0",
           "method": "map.create",
           "params": {
               "name": "Host map",
               "width": 600,
               "height": 600,
               "shapes": [
                   {
                       "type": 0,
                       "x": 0,
                       "y": 0,
                       "width": 600,
                       "height": 11,
                       "text": "{MAP.NAME}"
                   }
               ]
           },
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": {
               "sysmapids": [
                   "10"
               ]
           },
           "id": 1
       }

拓扑图线

创建拓扑图线。

请求

{
           "jsonrpc": "2.0",
           "method": "map.create",
           "params": {
               "name": "Map API lines",
               "width": 500,
               "height": 500,
               "lines": [
                   {
                       "x1": 30,
                       "y1": 10,
                       "x2": 100,
                       "y2": 50,
                       "line_type": 1,
                       "line_width": 10,
                       "line_color": "009900"
                   }
               ]
           },
           "id": 1
       }

响应:

{
           "jsonrpc": "2.0",
           "result": {
               "sysmapids": [
                   "11"
               ]
           },
           "id": 1
       }

查看相关

来源

CMap::create() in ui/include/classes/api/services/CMap.php.