摘要: VC+MapX鹰眼实现文章来源:www.csdn.net 文章作者:collision 2005-11-16 字体:[大中小]在网上我看到了很多用VC+MapX实现的鹰眼,可功能都不全,看了清华出的那本<<用MapX开发地理信息系统>>上面有一个用vb作的鹰眼,功能不是很强,不过简单的也够用了,我翻译了一下写成了VC版的鹰眼。希望对新手有所帮助。我的基本实现想法是,在同一个View窗口下家两个CMapX控件,一个称为主图,一个称为鹰眼图。CMapX m_ctrlMapX; ///主图CMapX m_eagleMapX; ///鹰眼图注意事项:在View里的OnCreat 阅读全文
posted @ 2012-08-31 09:30 雪藩 阅读(476) 评论(0) 推荐(0) 编辑
摘要: 研究了一段时间的MapXtreme2005 v6.6, 实现了个简单的鹰眼,放出来与大家分享,转载请注明出处。设计思路为设置两个MapControl ,map1和map2,map1为主地图,map2为索引图,将map1.Bounds的矩形在map2上转换为System.Drawing.Rectangle,之后将这个Rectangle的左上坐标和width,height传到客户端,应用JS在客户端绘图。同理移动客户端索引图上的Rectangle,则将Rectangle的中心坐标传回转换后设置map1的中心坐标。一、打开VS2005新建一个网站,选择“MapXtreme 6.6 Web Appl. 阅读全文
posted @ 2012-08-30 21:55 雪藩 阅读(192) 评论(0) 推荐(0) 编辑
摘要: FeatureFactory.IntersectFeatures方法(FeatureFactory对象)目标 返回独立图元,代表多个图元的交集。语法 [Feature=]OBJECT.IntersectFeatures(feature1[feature2])注释 此方法让Feature或Features对象与另一个Feature或Features对象相交,返回结果是独立的图元。 不能对点或文本图元使用此方法。只支持下列图元类型的组合: · 可以让区域与其它区域相交。如果区域重叠,通过此方法返回的图元也是区域。 · 可以让区域与线相交。假设该区域至少覆盖线的一部分,返回的交集 阅读全文
posted @ 2012-08-30 21:53 雪藩 阅读(241) 评论(0) 推荐(0) 编辑
摘要: #include"stdio.h"#defineBIG9999//无穷大//Dijkstra算法函数,求给定顶 点到其余各点的最短路径//参数:邻接矩阵、顶点数、出发点的下标、结果数组voidDijkstra(intCost[] [6],intn,intv0,intDistance[]){ints[6];intmindis,dis;inti,j,u;//初始化for(i=0;i<n;i++){Distance[i]=Cost[v0][i];s[i]=0;}s[v0] =1;/*标记v0*///在当前还未找到最短路径的顶点中,//寻找具有最短距离的顶点for(i=1;i 阅读全文
posted @ 2012-08-30 21:39 雪藩 阅读(286) 评论(0) 推荐(0) 编辑
摘要: PublicFunctionshortpath(startnoAsInteger,endnoAsInteger)AsSingle以开始点,结束点为参数。Dimresult()AsSingleDimresult1AsInteger定义结果点Dims1AsSingleDimminAsSingleDimii,i,j,aaAsIntegerDimyc()AsBooleanDimycd()AsBooleanDimrs1()AsSingleDimno()AsIntegerDimnopointAsIntegerReDimyc(1Tomaxno)AsBooleanReDimycd(1Tomaxno)AsBoo 阅读全文
posted @ 2012-08-30 21:37 雪藩 阅读(283) 评论(0) 推荐(0) 编辑
摘要: //用于desktop部署privatevoidbtnInitializeObjects_Click(objectsender,System.EventArgse){CatalogCat=MapInfo.Engine.Session.Current.Catalog;//创建临时层TableInfoMemTabletblInfoTemp=newTableInfoMemTable("Animation");TabletblTemp=Cat.GetTable("Animation");if(tblTemp!=null)//Tableexistscloseit{ 阅读全文
posted @ 2012-08-30 21:33 雪藩 阅读(162) 评论(0) 推荐(0) 编辑
摘要: 两个思路:1.客户断每次操作地图后发起两次请求:取主地图和鹰眼地图,鹰眼地图根据主地图窗口在临时图层生成一个方框2.页面初始化的时候从服务器获取一张小图(鹰眼图,可以是事先做好的,也可以通过MapJ生成),同时获得这张鹰眼图的minx,miny,maxx,maxy,zoom,每次操作地图后通过主地图的minx,miny,maxx,maxy,然后在页面上根据这几对坐标和zoom生成一个div叠加到鹰眼图上推荐第二种方式,减少服务器的压力!第一种方式我已经不怎么用了,代码也找不到,网上的一段:privatevoidresponsebound(MapJmymap,MapJboundmap,HttpS 阅读全文
posted @ 2012-08-30 21:26 雪藩 阅读(210) 评论(0) 推荐(0) 编辑
摘要: /// <summary> /// 更新鹰眼图 /// </summary> private void UpdateEyeMap() { try { //如果主图和鹰眼图加载的是同一实例,那么鹰眼图就需要检测是否有效 //if (eyeMap != null) { //加载鹰眼矩形临时表 Table tblRect; ... 阅读全文
posted @ 2012-08-30 21:23 雪藩 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 由于MapXtreme没有提供鹰眼控件,需要自己来写。实现鹰眼有两个步骤:1)在地图的视图改变的时候根据地图当前的边距生成一个矩形框,然后把这个矩形框绘制到鹰眼窗口上。2)根据用户在鹰眼窗口上点击的位置,同步显示地图窗口对应的位置。VB.NET代码如下: ' 更新鹰眼图 Private Sub UpdateEyeMap() Try Dim tblRect As Table tblRect = Session.Current.Catalog.GetTable("TempRect") If Not tblRect Is Nothing Then tblRect.Clos 阅读全文
posted @ 2012-08-30 21:19 雪藩 阅读(153) 评论(0) 推荐(0) 编辑
摘要: 基于MapXtreme的鹰眼功能平台:Microsoft .Net Framework 1.1 (ASP.Net 1.1)GIS组件:MapInfo MapXTreme 2004语言:C#要实现鹰眼功能有两个主要问题:用户在鹰眼窗口上点击的时候地图自动定位到相应的位置;当地图视图(包括缩放比例和中心)发生变化的时候,鹰眼窗口上的导航矩形框相应变化以指示用户当前所处的位置。第一个问题可以通过客户端捕获用户在鹰眼窗口上点击的位置,发送到服务器,服务器端把该位置转换为地图坐标并更新地图的中心点来实现。为了便于保持地图或者页面上其它Web Control的状态,这个回发应该用HTTP POST来实现。 阅读全文
posted @ 2012-08-30 21:14 雪藩 阅读(186) 评论(0) 推荐(0) 编辑