浏览问题
等待回复
精选文章
申请试用
资源中心
漏洞修复
注册
|
登录
SuperMap技术问答社区
我要
提问
智能客服
首页
/
浏览问题
/
组件GIS
/
问题详情
平移几何要素
振翼鸣飞
22EXP
2019年01月02日
如何将选中的一些几何要素通过鼠标拖拽的方式进行平移(最好不要使用offset)
iobject
net
平移
请
登录
或者
注册
后回答这个问题。
1个回答
首先开启图层可编辑,然后鼠标状态action切换成select,然后就可以任意拖动了
邬袁凯
1
2,432EXP
2019年01月03日
这个可以拉伸,但是不能平移
开启图层可编辑过后,代码输入mapControl1.Action = SuperMap.UI.Action.Select2,然后选中就可以任意拖动啦,之前给你说的select有点随意,它是分两种模式的,select的话就不能进行对象编辑了,而select2可以
select2也不行,我知道你说的select2
你鼠标必须要点在几何元素上,比如你要移动一个面,选中面后,你的鼠标要点在它的边上
这我也知道啊,但是我鼠标挪过去,鼠标样式都不变,拖拽也没有效果,在SuperMap Desktop中就完全没问题
是这样的 如果你是打开的一副地图 那是由很多层图层构成的,你这段代码只是这些图层集合的第一个图层可编辑,所以把你之前的代码发来看看
加载数据的代码吗?下面是加载数据的。上面那三行代码就那么多,放在了一个按钮事件里了
//设置公用打开对话框
openFileDialog1.Filter = "SuperMap工作控件文件(*.smwu)|*.smwu";
//判断打开的结果,如果打开就执行下列操作
if (openFileDialog1.ShowDialog() == DialogResult.OK)
{
//避免连续打开工作空间导致程序异常
mapControl1.Map.Close();
workspace1.Close();
mapControl1.Map.Refresh();
//定义打开工作空间文件名
string fileName = openFileDialog1.FileName;
//打开工作控件文件
WorkspaceConnectionInfo connectionInfo = new WorkspaceConnectionInfo(fileName);
//打开工作空间
workspace1.Open(connectionInfo);
//建立MapControl与Workspace的连接
mapControl1.Map.Workspace = workspace1;
pResources = workspace1.Resources;
//判断工作空间中是否有地图
if (workspace1.Maps.Count == 0)
{
MessageBox.Show("当前工作空间中不存在地图!");
return;
}
//通过名称打开工作空间中的地图
mapControl1.Map.Open("WorldMap");
//刷新地图窗口
mapControl1.Map.Refresh();
mapControl1.Action = SuperMap.UI.Action.Null;
}
你这个是打开一个地图,而这个地图对应了很多图层,你的那个代码只是允许第一个图层可编辑
你把button中的代码换成下面这个
mapControl1.IsMultiLayerEditEnabled = true;
int q = mapControl1.Map.Layers.Count;
for (int i = 0; i < q; i++)
{
mapControl1.Map.Layers[i].IsEditable = true;
mapControl1.Map.Layers[i].IsSelectable = true;
mapControl1.Action = SuperMap.UI.Action.Select2;
}
我试了一下,这样当我选中的要素有面的情况就可以平移,但是当我单独选中点或者线的时候就不行。同样的数据,我这超图桌面端就能实现。
再加一段代码 mapControl1.Map.Layers[i].IsSnapable = true; 就放在for循环里 ,我不太清楚你所说的点线是什么意思,这个是开启图层可捕捉
我说的点线就是示例数据中的点线图层啊,也就是World中的河流和首都
你的意思是能选中一个面 不能选中面里面的点和线 是这个意思吗
能选中,当我选中 的要素包括面要素的时候就可以移动,当我选中的要素不包括面要素 的时候就不能移动,比如上图:我只选中线要素的时候就不能移动
你有没有定义别的选择事件,必须要所有都是select2才行
没有,没有执行任何操作和设置,加载数据后,直接点击的这个按钮
请
登录
或者
注册
后再添加评论。
智能推荐
相关问题
相关文章
推荐教程
怎么实现用鼠标点选来平移、旋转、打断要素?
iobject.net 对模型进行平移或旋转时总是卡死
S3MTilesLayer的平移问题
mMap!!.pan(offsetX, offsetY)平移有时无效
CAD数据可以进行平移旋转吗
webgl加载倾斜摄影模型,调用什么方法对其进行平移旋转等操作呢
CAD数据只有线和面,怎么在超图里面平移?
将CAD图纸导入idesktop中,载入新建球面场景后如何移动
热门文章
查看更多>
关注我们
超图软件官网
SuperMap Online
地图慧
帮助中心
备案信息
技术资源中心
...