lilleo
路人甲
路人甲
  • 注册日期2004-05-10
  • 发帖数60
  • QQ
  • 铜币302枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:2282回复:4

象ARCMAP中的捕捉一样的功能,怎么开发?

楼主#
更多 发布于:2004-05-10 16:32
小弟正在做一个地图编辑的小软件,但不知道怎么做出象ARCMAP里的SNAPPING一样的功能。请高手指教!
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15945
  • QQ554730525
  • 铜币25337枚
  • 威望15352点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2004-05-11 14:52
你是做底层的开发吗?如果单是实现snapping功能并不是很难啊,只需要使用些windows api来模拟些动画效果,
举报 回复(0) 喜欢(0)     评分
lilleo
路人甲
路人甲
  • 注册日期2004-05-10
  • 发帖数60
  • QQ
  • 铜币302枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-05-11 16:32
我是用MAPCONTROL在二次开发
举报 回复(0) 喜欢(0)     评分
wlh_jimmy
路人甲
路人甲
  • 注册日期2004-02-02
  • 发帖数66
  • QQ309588724
  • 铜币363枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-05-14 13:45
<P>我可以提供你一下思路:</P><P>当你鼠标在mapcontrol控件移动时(也就是在OnMouseMove事件中),你以鼠标的位置(X,Y值)为中心创建一个圆(这个圆是虚拟的,运行时看不见的),通过这个圆在地图上做一个空间查询,这样就返回了在圆之内的要素了。</P><P>之后,你把所有的要素组成一个整体(以就是用Union方法),这样你就可以利用方法可以返回离你鼠标位置最近的点了。</P><P>这样你可以去画那个电。或者用一个控件去做这个效果。这就跟个人爱好有关了。</P><P>具体用到的接口有:</P><P>对于线捕捉:</P><P>iPolyLine,IProximityOperator,IConstructCircularArc,iFeatureLayer,ITopologicalOperator,</P><P>基本就这么多,可能还有别的接口,这就跟你编成方法有关了。</P><P>不行的话我可以给你源代码。</P>
举报 回复(0) 喜欢(0)     评分
lilleo
路人甲
路人甲
  • 注册日期2004-05-10
  • 发帖数60
  • QQ
  • 铜币302枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2004-05-17 10:50
我现在用的就是这个方法,我还加了一个,就是添加一个点的Element,鼠标移动的时候这个点也跟着移动,但是很慢,有什么方法可以快一点?
举报 回复(0) 喜欢(0)     评分
游客

返回顶部