Skip to content

创建图 - CreateGraph

函数简介

创建一个新的图数据结构,可以通过JSON格式初始化图的节点和边。

接口名称

CreateGraph

DLL调用

c
int64_t CreateGraph(int64_t instance, char* json);

参数说明

参数名类型说明
instance长整数型OLAPlug对象的指针,由 CreateCOLAPlugInterFace 接口生成。
json字符串图的JSON表示,包含节点和边的信息,传空创建一个空的图对象。

JSON数据格式:

json
[
  {
    "directed": false,
    "from": "上海",
    "to": "北京",
    "weight": 3.0
  },
  {
    "directed": true,
    "from": "深圳",
    "to": "上海",
    "weight": 3.0
  }
]
字段名类型说明
directed布尔directed 字段值。
from字符串from 字段值。
to字符串to 字段值。
weight浮点数weight 字段值。
字段说明
directed是否单向,false表示双向通行,true表示只能从from到to
from起点名称
to终点名称
weight距离权重

示例

SDK 调用

cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;
long graphPtr = ola.CreateGraph("[{\"directed\":false,\"from\":\"上海\",\"to\":\"北京\",\"weight\":3.0},{\"directed\":false,\"from\":\"北京\",\"to\":\"深圳\",\"weight\":5.0}]");
if (graphPtr != 0) {
    // graphPtr 为图句柄,用于后续图操作
    ola.DeleteGraph(graphPtr);
}
csharp
using OLAPlug;

var ola = new OLAPlugServer();
long graphPtr = ola.CreateGraph(@"[{"directed":false,"from":"上海","to":"北京","weight":3.0},{"directed":false,"from":"北京","to":"深圳","weight":5.0}]");
if (graphPtr != 0)
{
    // graphPtr 为图句柄,用于后续图操作
    ola.DeleteGraph(graphPtr);
}
python
from OLAPlugServer import OLAPlugServer

ola = OLAPlugServer()
graph_ptr = ola.CreateGraph(r'[{"directed":false,"from":"上海","to":"北京","weight":3.0},{"directed":false,"from":"北京","to":"深圳","weight":5.0}]')
if graph_ptr != 0:
    # graph_ptr 为图句柄,用于后续图操作
    ola.DeleteGraph(graph_ptr)
java
import com.olaplug.OLAPlugServer;

OLAPlugServer ola = new OLAPlugServer();
long graphPtr = ola.CreateGraph("[{\"directed\":false,\"from\":\"上海\",\"to\":\"北京\",\"weight\":3.0},{\"directed\":false,\"from\":\"北京\",\"to\":\"深圳\",\"weight\":5.0}]");
if (graphPtr != 0) {
    // graphPtr 为图句柄,用于后续图操作
    ola.DeleteGraph(graphPtr);
}
cpp
var ola = com("OlaPlug.OlaSoft")
var graphPtr = ola.CreateGraph("[{\"directed\":false,\"from\":\"上海\",\"to\":\"北京\",\"weight\":3.0},{\"directed\":false,\"from\":\"北京\",\"to\":\"深圳\",\"weight\":5.0}]")
if(graphPtr) {
    // graphPtr 为图句柄,用于后续图操作
    ola.DeleteGraph(graphPtr)
}
vbscript
Set ola = CreateObject("OlaPlug.OlaSoft")
graphPtr = ola.CreateGraph("[{\"directed\":false,\"from\":\"上海\",\"to\":\"北京\",\"weight\":3.0},{\"directed\":false,\"from\":\"北京\",\"to\":\"深圳\",\"weight\":5.0}]")
If graphPtr <> 0 Then
    // graphPtr 为图句柄,用于后续图操作
    ola.DeleteGraph(graphPtr)
End If
text
.局部变量 ola, OLAPlug
ola.创建 ()
graphPtr = ola.CreateGraph (“[{\“directed\“:false,\“from\“:\“上海\“,\“to\“:\“北京\“,\“weight\“:3.0},{\“directed\“:false,\“from\“:\“北京\“,\“to\“:\“深圳\“,\“weight\“:5.0}]“)
.如果真 (graphPtr ≠ 0)
    // graphPtr 为图句柄,用于后续图操作
    ola.DeleteGraph (graphPtr)
.如果真结束
aardio
import OLAPlugServer;
var ola = OLAPlugServer();
var graphPtr = ola.CreateGraph("[{\"directed\":false,\"from\":\"上海\",\"to\":\"北京\",\"weight\":3.0},{\"directed\":false,\"from\":\"北京\",\"to\":\"深圳\",\"weight\":5.0}]");
if(graphPtr){
    // graphPtr 为图句柄,用于后续图操作
    ola.DeleteGraph(graphPtr);
}
text
变量 ola <类型 = OLAPlugServer>
ola = 新建 OLAPlugServer
长整数 graphPtr = ola.CreateGraph("[{\"directed\":false,\"from\":\"上海\",\"to\":\"北京\",\"weight\":3.0},{\"directed\":false,\"from\":\"北京\",\"to\":\"深圳\",\"weight\":5.0}]")
如果真 (graphPtr ≠ 0)
{
    // graphPtr 为图句柄,用于后续图操作
    ola.DeleteGraph(graphPtr)
}
cpp
#include "OLAPlugServer.h"

OLAPlugServer ola;
long graphPtr = ola.CreateGraph("[{\"directed\":false,\"from\":\"上海\",\"to\":\"北京\",\"weight\":3.0},{\"directed\":false,\"from\":\"北京\",\"to\":\"深圳\",\"weight\":5.0}]");
if (graphPtr != 0) {
    // graphPtr 为图句柄,用于后续图操作
    ola.DeleteGraph(graphPtr);
}

原生 DLL 调用

cpp
long instance = CreateCOLAPlugInterFace();
long graphPtr = CreateGraph(instance, "[{\"directed\":false,\"from\":\"上海\",\"to\":\"北京\",\"weight\":3.0},{\"directed\":false,\"from\":\"北京\",\"to\":\"深圳\",\"weight\":5.0}]");
if (graphPtr != 0) {
    DeleteGraph(instance, graphPtr);
}
csharp
using System.Runtime.InteropServices;

[DllImport("OLAPlug_x64.dll", CallingConvention = CallingConvention.StdCall)]
static extern long CreateCOLAPlugInterFace();

long instance = CreateCOLAPlugInterFace();
long graphPtr = CreateGraph(instance, @"[{"directed":false,"from":"上海","to":"北京","weight":3.0},{"directed":false,"from":"北京","to":"深圳","weight":5.0}]");
if (graphPtr != 0) {
    DeleteGraph(instance, graphPtr);
}
python
from ctypes import CDLL, c_int, c_int64

ola = CDLL("OLAPlug_x64.dll")
ola.CreateCOLAPlugInterFace.restype = c_int64
instance = ola.CreateCOLAPlugInterFace()
graph_ptr = ola.CreateGraph(instance, b'[{"directed":false,"from":"上海","to":"北京","weight":3.0},{"directed":false,"from":"北京","to":"深圳","weight":5.0}]')
if graph_ptr:
    DeleteGraph(instance, graphPtr);
}

返回值

返回值说明
(返回值)返回图的指针,用于后续的图操作。如果创建失败返回0。

注意事项

项目说明
返回的图指针需要调用 DeleteGraph 释返回的图指针需要调用 DeleteGraph 释放内存。
格式确保JSON格式正确,否则可能导致创建失败。