Skip to content

Commit cfe79f6

Browse files
[fix]知识图谱center算法 review by songym
1 parent 694e847 commit cfe79f6

File tree

3 files changed

+15
-4
lines changed

3 files changed

+15
-4
lines changed

src/common/overlay/KnowledgeGraph.js

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ import { G6Render } from './knowledge-graph/G6Render';
2121
* @property {string | HTMLElement} container - 创建的容器 id 或容器本身, 默认是'knowledgeGraph'。
2222
* @property {number} width - 图的宽度, 默认是container的width。
2323
* @property {number} height - 图的高度,默认是container的height。
24+
* @property {Array.<number>} [center] - 中心点的渲染坐标。可以通过KnowledgeGraph.prototype.getViewPortCenterPoint获取。
2425
* @property {number} [zoom] - 缩放比例。
2526
* @property {number} [minZoom] - 最小缩放比例。若 fitView、zoom、zoomTo 等操作导致图的缩放比例小于该值,则将使用该值进行缩放,并返回 false。
2627
* @property {number} [maxZoom] - 最大缩放比例。若 fitView、zoom、zoomTo 等操作导致图的缩放比例大于该值,则将使用该值进行缩放,并返回 false。
@@ -43,7 +44,6 @@ import { G6Render } from './knowledge-graph/G6Render';
4344
/**
4445
* @typedef {Object} KnowledgeGraph.Layout - 布局。
4546
* @property {string} [type='force'] - 布局类型, 可选值:['force']。 默认'force'。
46-
* @property {Array.<number>} [center] - 布局的中心, 图的中心。
4747
*/
4848

4949
/**
@@ -416,6 +416,9 @@ export class KnowledgeGraph {
416416
if (this.config.zoom !== undefined) {
417417
this.zoom(this.config.zoom);
418418
}
419+
if (this.config.center !== undefined) {
420+
this.graphRender.setCenter({ x: this.config.center[0], y: this.config.center[1] });
421+
}
419422
};
420423
this.graph.on('beforelayout', cb);
421424
return graph;

src/common/overlay/knowledge-graph/G6Render.js

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -360,6 +360,14 @@ export class G6Render {
360360
getHeight() {
361361
return this.graph.getHeight();
362362
}
363+
364+
setCenter(centerDrawPoint) {
365+
var centerCanvasPointX = this.graph.getWidth() / 2;
366+
var centerCanvasPointY = this.graph.getHeight() / 2;
367+
var centerCanvasPointNew = this.graph.getCanvasByPoint(centerDrawPoint.x, centerDrawPoint.y);
368+
this.graph.translate(centerCanvasPointX - centerCanvasPointNew.x, centerCanvasPointY - centerCanvasPointNew.y);
369+
}
370+
363371
/**
364372
* @function G6Render.prototype._setToolBarStyle
365373
* @description 隐藏工具栏的redo undo realZoom按钮

test/mapboxgl/overlay/GraphMapSpec.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,10 @@ describe('GraphMap mapboxgl', () => {
3636
return Promise.resolve(new Response(graphmapData));
3737
}
3838
});
39-
var graphMap = new GraphMap(knowledgegraphmapURL);
40-
graphMap.on('loaded',()=>{
39+
var graphMap = new GraphMap(knowledgegraphmapURL, { config: { center: [0, 0] } });
40+
graphMap.on('loaded', () => {
4141
expect(graphMap).not.toBeNull();
4242
done();
43-
})
43+
});
4444
});
4545
});

0 commit comments

Comments
 (0)