首页 / 浏览问题 / 组件GIS / 问题详情
点击点对象,弹出气泡
66EXP 2018年07月05日
点击mapcontrol中的地图对象,显示气泡弹出框效果(二维地图开发)。(你们iobject文档里有个三维地图显示旗气泡的例子,有很多地方对二维地图使用,我如何做在二维地图中实现这个效果?)

1个回答

您好!您先自定义一个bubbleControlModel控件,主程序中初始化mapControl.Controls .Add(bubbleControlModel);bubbleControlModel.Visible = false;在您要弹出气泡的事件中设置可见即可。 bubbleControlModel.Location = point; bubbleControlModel.Visible = true;
3,362EXP 2018年07月05日
对,我知道是这样,二维地图mapcontrol好像不能注册气泡事件。

//气泡位置变化时触发该事件
 m_sceneControl.BubbleResize += new BubbleResizeEventHandler(m_sceneControl_BubbleResize);
 

您看这个,m_sceneControl是三维船体控件,而二维窗体事件mapcontrol就不能直接注册这个气泡事件。
是的。二维地图中没有气泡位置发生变化时触发的事件,您可以在地图上鼠标左键选择一个点,在鼠标点击这个事件中获取点的坐标并将这个点赋给bubbleControlModel,也就是 bubbleControlModel.Location = point; bubbleControlModel.Visible = true;

您看做出来的效果是这样的,定位很不精准,我点击一号站结果气泡(白色矩形区域就是)跑到下面去了(usercontrol.Location = new Point(e.X, e.X);
                usercontrol.Visible = true;)

而我想要的是这样的效果(气泡底下的指向箭头是怎样做到的?):

...