唯杰地图 logo唯杰地图
VJMAP
EN

交互总览

vjmap/references/interaction/overview.md 2.2 KB36 行
原文

本文回答:右键菜单 / 绘图 / 测量 / 选择 / 控件 / 键鼠输入 —— vjmap 的交互能力总览。

分类

类别 目的 子文件
右键菜单 地图 / 图层 / Marker 右键弹菜单 context-menu
测量工具 距离 / 面积 / 角度 / 坐标 measure
绘图工具 点 / 线 / 面 / 圆 / 矩形,含夹点编辑 draw-tools / draw-action
选择工具 框选 / 点选 / 多边形选 select-feature
地图控件 Navigation / Scale / MiniMap 等 controls
鼠标键盘事件 mouseover / click / keydown mouse-keyboard
拖拽 / 旋转 / 缩放控制 启用禁用交互 drag-rotate-zoom
捕捉 / 正交 / 快捷键 绘制辅助 snap-ortho

两套绘图 API

vjmap.Draw 既有 全局控件模式 又有 一次性 action 模式:

  • new vjmap.Draw.Tool({...}) + map.addControl(draw):显示工具栏,点按钮切换模式。
  • await vjmap.Draw.actionDrawLineSting(map, {...}):Promise 风格,无按钮,业务代码里直接等用户画完一条线 → 继续下一步。

测量、选择、修改文字等业务场景都用 action 模式,因为它天然是"绘制一次 → 得到结果 → 继续下一步"的流程。

控件位置

map.addControl(control, position):position = top-left | top-right | bottom-left | bottom-right。

主题级 Top 3 陷阱

  1. Marker 的右键不走 map.setMenu:Marker 是独立 DOM,需要 marker.getElement().addEventListener("mousedown", ...)。
  2. 内存模式选择能力受限:MapOpenWay.Memory 下 pointQueryFeature/rectQueryFeature/exprQueryFeature 可用(点查询恒只返回 1 条,返回几何是实体外包范围而非真实轮廓),但 conditionQueryFeature(SQL 条件)返回 {error:"not support query type!"};需要真实几何或 SQL 选择请用 MapOpenWay.GeomRender 打开。
  3. 绘制时"Alt 取消捕捉 / Ctrl 正交 / Backspace 删点" 都是内置快捷键;触摸端不可用。