随笔分类 -  GIS 实例程序

关于EPSINON
摘要:林锐的C++文档中关于浮点变量(float、double)与零值比较时,不可将浮点变量用“= =”或“!=”与任何数字直接比较。千万要留意,无论是float还是double类型的变量,都有精度限制。所以一定要避免将浮点变量用“= =”或“!=”与数字比较,应该设法转化成“>=̶... 阅读全文

posted @ 2006-07-18 21:41 口俞克木公 阅读(1902) 评论(1) 推荐(0)

迷宫A*算法
摘要:#include<iostream>#include<cassert>#include<ctime>#include<windows.h>usingnamespacestd;constintMAXINT=88888;//随便取个数,大于地图上任意两点间的距离intmap_w,map_h;//地图的宽,高inlineinttitle_num(intx,... 阅读全文

posted @ 2006-07-06 10:44 口俞克木公 阅读(1002) 评论(1) 推荐(0)

Dijkstra算法源程序
摘要:#defineMAX1e+8voiddijkstra(GraphMatrixgraph,Pathdist[]){inti,j,minvex;AdjTypemin;init(&graph,dist);/**//*初始化,此时集合U中只有顶点v0*/for(i=1;i<graph.n;i++){min=MAX;minvex=0;for(j=1;j<graph.n;j++)if((g... 阅读全文

posted @ 2006-07-06 10:38 口俞克木公 阅读(1657) 评论(0) 推荐(0)

显点画线
摘要:创建了一行代码,使用MultiCurve类中的CreateLine方法。以下代码是使用该方法的示例:usingMapInfo.Geometry;MultiCurvemultiCurve=newMultiCurve(longLatNad83);multiCurve=MapInfo.Geometry.MultiCurve.CreateLine(longLatNad83,dpoints[0],dpoin... 阅读全文

posted @ 2006-07-06 09:53 口俞克木公 阅读(655) 评论(0) 推荐(0)

在MapXtreme2004 地图中创建一个显示小车的图层
摘要:privatevoidbtnInitializeObjects_Click(objectsender,System.EventArgse){CatalogCat=MapInfo.Engine.Session.Current.Catalog;//创建临时层TableInfoMemTabletblInfoTemp=newTableInfoMemTable("Animation");TabletblTe... 阅读全文

posted @ 2006-07-06 09:18 口俞克木公 阅读(697) 评论(0) 推荐(0)

地图图元的闪烁效果制作
摘要:实现查找之后如果加上一个闪烁效果会更明显,方法是用个时间控件控制,改变vstyle即可;还可以简单的设置进程休眠时间,改变可视性,利用一个循环,控制闪烁次数。前面一种实现代码如下:用个时间控件控制,改变vstyleFeatureLayerfl=this.mapControl1.Map.Layers["pathLine"]asFeatureLayer;FeatureOverrideStyleModi... 阅读全文

posted @ 2006-06-28 17:16 口俞克木公 阅读(925) 评论(0) 推荐(0)

小功能:当前鼠标的位置显示(需脚本处理)
摘要:当前鼠标的位置的实时显示:小功能:当前鼠标的位置(需脚本处理)MapInfo.Tools.MouseToolMouseMove(objectsender,MouseEventArgse){System.Drawing.PointFDisplayPoint=newPointF(e.X,e.Y);MapInfo.Geometry.DPointMapPoint=newMapInfo.Geometry.D... 阅读全文

posted @ 2006-06-28 16:59 口俞克木公 阅读(440) 评论(0) 推荐(0)

更新图层,多次查询支持
摘要:在一个图层中往往要多次查询,但是,在第二次以后就会报错,说pathLine这个表已经存在,无法创建新表,解决的办法是在页面载入之前检查图层的存在情况,代码如下://多次查询支持CatalogCat=MapInfo.Engine.Session.Current.Catalog;MapInfo.Data.TableInfoMemTabletblInfoTemp=newTableInfoMemTable... 阅读全文

posted @ 2006-06-28 16:55 口俞克木公 阅读(346) 评论(0) 推荐(0)

A*算法,显示路径
摘要:privatevoidDrawPath(longnStart,longnEnd){Cursor.Current=Cursors.WaitCursor;if(nStart<1)nStart=1;elseif(nStart>mDataList.Num)nStart=mDataList.Num;if(nEnd<1)nEnd=1;elseif(nEnd>mDataList.Num)... 阅读全文

posted @ 2006-06-28 10:26 口俞克木公 阅读(586) 评论(0) 推荐(0)

搜寻与地图上指定点最近的道路节点
摘要:private long FindStartLocation() { long i=0,startLocation=0,listNum=mDataList.Num; double minDist=0,tmpDist=0; string strStartPoint,tableName="出发地",colName="站名"... 阅读全文

posted @ 2006-06-28 10:14 口俞克木公 阅读(430) 评论(1) 推荐(0)

从MIF文件直接读取道路数据
摘要:string file= @"C:\Inetpub\wwwroot\SSWeb\node\Road.MIF";//载入数据,使用绝对路径(单独制作的综合节点图层) StreamReader sr = new StreamReader(file); string nextLine, sTmp; long nTmp, mTmp; ... 阅读全文

posted @ 2006-06-28 10:10 口俞克木公 阅读(840) 评论(0) 推荐(0)

判断线段相交及求交
摘要:public TNode TCrossNode(TNode P1, TNode P2, TNode Q1, TNode Q2) { if (! TSegmentCrossed(P1, P2, Q1, Q2)) return null; TNode cross = new TNode(); ... 阅读全文

posted @ 2006-06-28 10:07 口俞克木公 阅读(1768) 评论(4) 推荐(0)

利用地图图层的属性项填充下拉列表
摘要:private void FillDropDown(string tableName, string colName,string startPoint, string startPointName) { MapInfo.Mapping.Map map = null; if (MapInfo.Engine.Session.Curren... 阅读全文

posted @ 2006-06-28 10:04 口俞克木公 阅读(379) 评论(0) 推荐(0)

导航