本文主要是介绍【Mars3d】点位停止编辑时获取点位空间坐标位置信息等回传给后端,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
示例地址:
http://mars3d.cn/editor-vue.html?id=graphic/primitive/point
当前问题:
右键编辑点,开始编辑对象--停止编辑。需要保存编辑后的点到数据库,需要对应的停止编辑函数。
{text: "停止编辑对象",icon: "fa fa-edit",show: function (e) { console.log('停止编辑对象,获取对象信息');const graphic = e.graphicif (!graphic || !graphic.hasEdit) {return false}return graphic.isEditing},callback: (e) => {console.log('停止编辑对象000callback');const graphic = e.graphicif (!graphic) {return false}if (graphic) {graphic.stopEditing()}}},
解决方案:
停止编辑后,能够获取编辑点的坐标、高度、属性信息,回传给后端保存。
1.可以使用下面事件监听。
graphicLayer.on(mars3d.EventType.editStop, function (e) {})
2.或参考图上标绘功能,增加其他事件做完整的处理。
// 矢量数据创建完成graphicLayer.on(mars3d.EventType.drawCreated, function (e) {if (formState.hasEdit || props.customEditor) {showEditor(e.graphic)}})// 单击开始编辑graphicLayer.on(mars3d.EventType.editStart, (e: any) => {setTimeout(() => {// 属性面板打开时,点击其他的矢量数据,打开后会被下面的执行关闭showEditor(e.graphic)}, 150)})// 修改了矢量数据graphicLayer.on([mars3d.EventType.editMovePoint, mars3d.EventType.editStyle, mars3d.EventType.editRemovePoint], function (e) {updateWidget("graphic-editor", {data: {graphic: markRaw(e.graphic)}})})// 停止编辑graphicLayer.on([mars3d.EventType.editStop, mars3d.EventType.removeGraphic], function (e) {setTimeout(() => {if (!graphicLayer.isEditing) {if (props.customEditor) {emit("onStopEditor")} else {disable("graphic-editor")}}}, 100)})
这篇关于【Mars3d】点位停止编辑时获取点位空间坐标位置信息等回传给后端的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!