主题
创建图 - CreateGraph
函数简介
创建一个新的图数据结构,可以通过JSON格式初始化图的节点和边。
接口名称
CreateGraphDLL调用
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 Iftext
.局部变量 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格式正确,否则可能导致创建失败。 |
