Skip to content

交互工厂

交互工厂用于创建用户与地图之间的交互行为。

G.draw(mode, options)

创建绘制交互。

ts
G.draw(mode: string, options?: DrawOptions): DrawInteraction
参数类型描述
modestring绘制模式:'point''line''polygon'
optionsobject附加选项

返回对象属性:

属性/方法类型说明
typestring固定为 'draw'
isActive()boolean是否激活
activate()void激活绘制
deactivate()void停用绘制
on(event, handler)Disposable事件订阅
remove()void移除交互
ts
// 绘制点
const drawPoint = G.draw('point');
drawPoint.activate();

// 绘制线
const drawLine = G.draw('line');

// 绘制多边形
const drawPolygon = G.draw('polygon');
drawPolygon.activate();

console.log(drawPoint.isActive()); // true
drawPoint.deactivate();
console.log(drawPoint.isActive()); // false

G.edit(options)

创建编辑交互。

ts
G.edit(options?: EditOptions): EditInteraction
参数类型描述
modestring编辑模式
targetsFeature[]要编辑的要素列表

返回对象属性:

属性/方法类型说明
typestring固定为 'edit'
isActive()boolean是否激活
activate()void激活编辑
deactivate()void停用编辑
ts
const edit = G.edit();
edit.activate();
// ...
edit.deactivate();

G.measure(mode, options)

创建量测交互。

ts
G.measure(mode: string, options?: MeasureOptions): MeasureInteraction
参数类型描述
modestring量测模式:'distance'(距离)、'area'(面积)
optionsobject附加选项

返回对象属性:

属性/方法类型说明
typestring固定为 'measure'
isActive()boolean是否激活
start()void开始量测
stop()void停止量测
getResult()获取量测结果
ts
// 距离量测
const measureDist = G.measure('distance');
measureDist.start();
console.log(measureDist.isActive()); // true
const result = measureDist.getResult();
console.log(result.value, result.unit);
measureDist.stop();

// 面积量测
const measureArea = G.measure('area');
measureArea.start();

G.snap(options)

创建吸附交互。

ts
G.snap(options?: SnapOptions): SnapInteraction
参数类型描述
layersArray<string | Layer>吸附目标图层
tolerancenumber吸附容差(像素)

返回对象属性:

属性/方法类型说明
activate()void激活吸附
deactivate()void停用吸附
on(event, handler)Disposable事件订阅
remove()void移除交互
ts
const snap = G.snap({ tolerance: 10 });
snap.activate();

G.popup(options)

创建弹窗。

ts
G.popup(options?: PopupOptions): Popup
参数类型描述
position[number, number]初始坐标
contentstring | HTMLElement内容(HTML 字符串或 DOM 元素)

返回对象属性/方法:

方法参数说明
isOpen()-是否打开
setPosition(coord)[number, number]设置坐标
setContent(content)string | HTMLElement设置内容
open()-打开弹窗
close()-关闭弹窗
getElement()-获取 DOM 元素
ts
const popup = G.popup({ content: '<b>Hello</b>' });
popup.setPosition([116, 39]);
popup.open();
console.log(popup.isOpen()); // true
popup.close();
console.log(popup.isOpen()); // false

G.tooltip(options)

创建提示框。

ts
G.tooltip(options?: TooltipOptions): Tooltip

返回对象属性/方法:

方法参数说明
setContent(content)string设置内容
show(coord, text)[number, number], string显示提示
hide()-隐藏提示
ts
const tooltip = G.tooltip();
tooltip.setContent('详细信息');
tooltip.show([116, 39], '点位信息');
tooltip.hide();

四川省交通运输综合地理服务平台 地图开发框架