怎么用C#和mapinfo开发车辆定位系统?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用C#和mapinfo开发车辆定位系统?相关的知识,希望对你有一定的参考价值。
我现在准备开发一个GIS系统,需要实现的内容:
1.通过获取车辆上GPS传输的数据,把这辆车在地图上动态显示出来。
2.支持地图的放大、缩小和平移。
3.支持在地图上显示多个车辆的运行轨迹。
准备用MAPinfo和C#,哪位高手可以教下我?
mapinfo是啥软件?能简单介绍一下么?
Mapinfo是美国Mapinfo公司1986年推出的桌面地图信息系统,至今已从最初的Mapinfo for Dos 1.0 发展到了Mapinfo Professional 6.0。 Mapinfo产品定位在桌面地图信息系统上,与Arc/Info等大型GIS系统相比,因Mapinfo图元数据不含拓扑结构,它的制图及空间分析能力相对较弱,但对大众化的PC桌面数据可视及信息地图化应用来说,Mapinfo小巧玲珑,易学易用,价位较低,是一个优选GIS产品。Mapinfo提供了自己的二次开发平台,用户可以在平台上开发各自的GIS应用。二次开发方法归结起来有三种,它们是基于MapBasic的开发、基于OLE自动化的开发及利用MapX控件的开发。从早期的MapBasic到目前的MapX4.5,Mapinfo上的GIS系统开发变得越来越高效、简捷,下面介绍如何利用MapBasic、OLE自动化和MapX开发GIS应用系统。一、利用MapBasic开发
MapBasic是Mapinfo自带的二次开发语言,它是一种类似Basic的解释性语言,利用MapBasic编程生成的*.mbx文件能在Mapinfo软件平台上运行,早期的Mapinfo二次开发都是基于MapBasic进行的。MapBasic学起来容易,用起来却束缚多多,无法实现较复杂的自定义功能,用它来建立用户界面也很麻烦,从现在角度看,MapBasic比较适合用于扩展Mapinfo功能。
二、利用OLE自动化开发
1. 建立Mapinfo自动化对象
基于OLE自动化的开发就是编程人员通过标准化编程工具如VC、VB、Delphi、PB等建立自动化控制器,然后通过传送类似MapBasic语言的宏命令对Mapinfo进行操作。实际上是将Mapinfo用作进程外服务器,它在后台输出OLE自动化对象,供控制器调用它的属性和方法。
OLE自动化开发的首要一步就是建立Mapinfo自动化对象,以Delphi为例(后面都是如此),你可设定一个Variant类型的全程变量代表OLE自动化对象,假设该变量名为olemapinfo,那么有:
oleMapinfo := CreateOleObject('Mapinfo.Application')
一旦OLE自动化对象建立,也就是后台Mapinfo成功启动,你就可以使用该对象的Do方法向Mapinfo发送命令,如:
oleMapinfo.Do('Set Next Document Parent' + WinHand + 'Style 1')
这一命令使Mapinfo窗口成为应用程序的子窗口,WinHand是地图窗口句柄,style 1 是没有边框的窗口类型。你还可以使用自动化对象的Eval方法返回MapBasic表达式的值,如下面语句返回当前所打开的表数:
TablesNum:=olemapinfo.eval('NumTables()')
你也可以直接调用Mapinfo菜单或按钮命令对地图窗口进行操作,如地图放大显示:
oleMapinfo.RunMenuCommand(1705)
2. 建立客户自动化对象触发CallBack
基于OLE自动化开发的难点在于所谓的CallBack,Mapinfo服务器对客户程序地图窗口的反应叫CallBack,假如你在地图窗口中移动地图目标,Mapinfo能返回信息告诉你地图目标当前的坐标位置,这就是CallBack功能。如果你想定制自己的地图操作工具或菜单命令,你必须依靠CallBack。但是想捕获CallBack信息,你的客户程序必须具备接收CallBack信息的能力,为此需要在客户程序中定义自己的OLE自动化对象,如:
//定义界面
IMyCallback = interface(IDispatch)
['2F4E1FA1-6BC7-11D4-9632-913682D1E638']
function WindowContentsChanged(var WindowID: Integer):SCODE;safecall;
function SetStatusText(var StatusText: WideString): SCODE; safecall;
//定义界面实现
TMyCallback = class(TAutoObject, IMyCallback)
function SetStatusText(var StatusText: WideString): SCODE; safecall;
function WindowContentsChanged(var WindowID: Integer): SCODE;safecall;
其中WindowContentsChanged函数用于返回变化窗口的ID号,即当地图窗口变化时(如放大、缩小),让Mapinfo将地图窗口的ID号返回给客户程序; 另一个SetStatusText函数返回Mapinfo状态条变化信息。编程人员不能随意定义这些函数,因为只有在三种情况下Mapinfo服务器的CallBack才会被触发:(1)地图窗口发生变化,触发函数为WindowContentsChanged;(2)Mapinfo状态条信息改变,触发函数为SetStatusText;(3)用户选择自定义工具或菜单命令在地图窗口上操作,如用户定制的画线工具,当用户在地图窗口画线时触发Mapinfo的CallBack返回线的坐标位置。
建立客户自动化对象后,调用MapInfo自动化对象的SetCallback方法将客户自己定义的自动化对象告诉Mapinfo,只要程序一运行,客户自动化对象就会自动在注册表中注册,然后就能收到CallBack信息了,如:
My:=MyCallBack.Create
oleMapInfo.SetCallBack(My)
这里打一个比方我想会有助于理解上述机制,客户程序与Mapinfo之间的交互就像舞台指挥与木偶演员的交流,客户程序中的地图窗口或说Mapinfo子窗口只不过是一个牵线木偶,后台的Mapinfo才是真正操纵木偶的演员,所以客户程序必须与后台Mapinfo建立正向、反向的联系机制,才能操纵地图窗口中的图形目标。
三、利用MapX开发
1. 掌握使用MapX
MapX是Mapinfo公司最新推出的ActiveX控件产品,目前已经发展到MapX4.5。由于MapX是基于Windows操作系统的标准控件,因而能支持VC、VB、Delphi、PB等标准化编程工具,使用时只需将控件装入开发环境,装入控件后,开发环境ActiveX工具条上会增加一个控件按钮Map,把它拖放到窗体上就可建立一个TMap类型的ActiveX地图对象Map,通过设置或访问该Map对象的属性、调用该Map对象的方法及事件,便能快捷地将地图操作功能溶入到你的应用程序中。
MapX由一系列Object(对象)和Collection(对象集合)组成,Map是最基本的对象,每个Map由Layer(层)、Dataset(数据集)和Annotation(标注)这三个对象及对象集合(Layers、Datasets、Annotations)来定义, 其中Layer用于操作地图图层,Dataset用于访问空间对象的属性数据,Annotation用于在地图上添加文本、符号等标注,掌握上述三个主要对象的特征后,再顺藤摸瓜掌握下一级对象的特征,如每个Layer又由Feature(点、线、面、文本图形目标)对象及对象集合(Features)定义,每个Dataset由Field(属性数据域)对象及对象集合(Fields)定义......,这样很快就能把MapX学到手。
2. 定义地图坐标系
在MapX开发中需要特别注意地图坐标系问题,MapX地图坐标系分为地图显示坐标系和内部计算坐标系,两者互为独立,在GIS应用开发中根据应用需要设置好这两种坐标系非常重要,因为坐标系一方面影响软件系统的内部坐标处理,另一方面影响地图的外观显示。Map对象的坐标系及投影通过CoordSys对象的Set方法定义:
Set(Type, [Datum], [Units], [OriginLongitude], [OriginLatitude],
[StandardParallelOne], [StandardParallelTwo], [Azimuth], [ScaleFactor],
[FalseEasting], [FalseNorthing], [Range], [Bounds], [AffineTransform])
其中主要参数:Type表示投影类型,Type为1时地图坐标以经纬度表示,后面都为可选参数,其中Datum为地球基准面;Units为坐标单位,如Units为7表示以米为单位;OriginLongitude、OriginLatitude分别为起始经度和纬度;StandardParallelOne、StandardParallelTwo为第一、第二标准纬线,该参数与地图投影相关。
通过设置Map对象的DisplayCoordSys和NumericCoordSys属性返回的CoordSys对象,就可设定地图显示坐标系和内部计算坐标系。举例如下:
procedure TMain.DefineMapParam();
var
MapDatum: Variant;//地球基准面
begin
try
MapDatum := CreateOleObject('MapX.Datum.4'); //建立基准面对象
//定义北京54坐标系基准面
// (Ellipsoid, ShiftX, ShiftY, ShiftZ, RotateX, RotateY, RotateZ, ScaleAdjust, PrimeMeridian)
MapDatum.set(3, 24, -123, -94, -0.02, 0.25, 0.13, 1.1, 0);
//定义北京54坐标系经纬度作为内部计算坐标系
Map1.NumericCoordSys.Set_(1, MapDatum);
//定义北京54坐标系30度标准纬线麦卡托投影作为显示坐标系,单位为米
Map1.DisplayCoordSys.Set_(26,MapDatum,7,0,0,30);
finally
VarClear(MapDatum);
end;
坐标系是GIS系统的基石,正确设置坐标系是系统成败的关键。
3. 操纵地图对象
你可以简单地加载一个GeoSet文件,给Layers对象集合赋予具体的内容,随之在Map对象中就能看到地图显示,GeoSet文件类似MapInfo中的工作空间,MapX中带有Geoset文件的编辑器GeosetMangater.exe,用户可在编辑器中组合及设置图层,然后保存生成一个 *.gst 文件直接调入Map对象,这样可以节省时间。你也可以通过Layers对象的Add 或 Remove 方法添加或移走地图图层,如:
Map.layers.Add(FileName); // 添加图层,FileName为文件全路径名
Map.Layers.Remove(3); // 移走地图第三层
Layers对象由一组Layer对象组成,通过Layer对象的Features和Selection对象集合你可以操纵和选择图层上的图形目标,如:
Map.Layers.Item(1).AddFeature(Newobj); //将新建对象Newobj添加到图层一
4. 地图数据捆绑
数据捆绑是将不同来源的数据对应到地图层的过程,捆绑结果会产生一个Dataset对象,Dataset对象的集合组成Datasets Collection,它定义了Map对象的数据集属性。 你可以通过Datasets将不同来源的数据捆绑到地图上实现图文互动,或创建专题图,如下例ODBC Access数据的捆绑及专题分析:
procedure TMapForm.ODBC1Click(Sender: TObject);
var
param: ODBCQueryInfo ;
ds: Dataset; //定义数据集
Datafields: Fields; //定义数据域
begin
param.SqlQuery := 'select * from China'; //选择Access数据库中的China表
param.DataSource := 'MapChina'; //ODBC 数据源名
param.ConnectString := 'ODBC;'; //或是user = ... Pwd = ... , 定义ODBC连接
Datafields.Add('GEONAME','GEONAME', miAggregationAuto,miTypeString); //添加数据域GEONAME
Datafields.Add('POPU','POPU', miAggregationAuto,miTypeNumeric); //添加数据域POPU
//将Access数据捆绑到Mapinfo China表
ds := Map.Datasets.Add(miDataSetODBC, param, unassigned, unassigned, unassigned, 'CHINA', Datafields, unassigned);
ds.Themes.Add(miThemeRanged, 'POPU', 'MyTheme'); //添加一个范围专题图
end;
5. 建立客户定制工具
你还可以定制自己的地图操作工具,下面通过定制一个名为Info的信息按钮工具简述方法步骤:
(1)定义客户工具常量
Const CUSTOM_INFO_TOOL = 1
(2)利用Map对象的CreateCustomTool方法定义客户工具,方法为:
CreateCustomTool (ToolNumber, Type, Cursor, [ShiftCursor] , [CtrlCursor], [InfoTips])
其中ToolNumber为工具号,即上面定义的常量;Type为工具类型;Cursor为光标形状,其他参数可选。
//定义Info工具为十字光标点触发工具
Map.CreateCustomTool(CUSTOM_INFO_TOOL, miToolTypePoint, miCrossCursor, miArrowCursor, miArrowCursor, unassigned)
(3)在Map对象事件ToolUsed中编写工具的Handler(操作内容)
procedure TMain.MapToolUsed(Sender: TObject; ToolNum: Smallint; X1, Y1, X2, Y2, Distance: Double;
Shift, Ctrl: WordBool; var EnableDefault: WordBool);
begin
Case ToolNumber of
CUSTOM_INFO_TOOL : //信息工具Info
try
……
end;
(4)定义信息按钮的Click事件
procedure TMain.InfoClick(Sender: TObject);
begin
Map.CurrentTool:=CUSTOM_INFO_TOOL;
end
四、小结
基于MapBasic的开发简单但受限制较多,比较适合Mapinfo功能扩展编程。而基于OLE自动化的开发比较繁琐,因为需要来回向后台的Mapinfo发送MapBasic字符串命令,所建立的应用程序运行速度也相对较慢,但这种开发方法能随心所欲制作出美观友好的界面,将地理操作与非地理操作溶为一体,并且能实现几乎100%的Mapinfo功能,这是目前的MapX4.5也不能比拟的。与传统GIS专业性开发环境相比,像MapX这类组件式GIS系统的出现可说是一种质的飞跃,它小巧灵活,开发简捷,价格便宜,以后会越来越大众化。 用MapX开发的GIS系统运行速度快,因为它不需要在Mapinfo软件平台上运行。但从目前MapX4.5看,MapX并没能实现所有的Mapinfo功能(据称95%以上),使用过程中发现其生成或编辑地图能力及地理分析能力不足,而且里面Bug也不少,当然随着今后新版的推出,MapX会越来越稳定、完美。 参考技术A 地理信息系统GIS的专业软件,我就是学这个的 啊哈哈
MapInfo地理信息系统平台作为一个图形-文字信息完善结合的软件工具,能将所需要的信息资料形象、直观地与地理图形紧密地联结起来,能提供大量常用的分析、查询功能,能将结果以图形或表格的方式显示出来。
MapInfo软件提供与一些常用数据库的接口,可以直接或间接地与这些数据库进行数据交换。 MapInfo软件提供的开发工具MapBasic, 可完成用户在图形、界面、查询、分析等方面的各种要求,以形成全用户化的应用集成。配接多媒体系统可使用户对 地图进行多媒体查询。MapInfo软件适用于军队管理与指挥、市场营销、城市规划、市政管理、公安交通、邮电通讯、石油地质、土地资源、人口管理、金融保险等各个应用领域,能对用户的管理、决策提供有力的支持与帮助。
一、强大的图形表达、处理功能
MapInfo做为一种功能强大的图形软件,利用点、线、区域等多种图形元素,及丰富的地图符号、文本类型、线型、填充模式和颜色等表现类型,可详尽、直观、形象地完成电子地图数据的显示。同时MapInfo对于位图文件(如GIF、TIF、PCX、BMP、TGA等多种格式的位图文件)和卫片(SPOT)、航片、照片等栅格图象,也可以进行屏幕显示,根据实际需要还可以对其进行矢量化。此外,DXF格式(AutoCAD和其它CAD软件包的图形/数据交换格式)的数据文件,也可以直接运用于MapInfo当中。在图形处理方面,它提供了功能强大的编图工具箱,用户可以对各种图形元素任意进行增加、删除、修改等基本编辑操作。
MapInfo所处理的电子地图与一般地图不同。一般的地图,各类要素、信息集中在一起,不利于不同用户对不同的地理信息的查询使用。MapInfo对地图是分层处理,用户可以通过图形分层技术,根据自己的不同需求或一定的标准对各种图形元素进行分层组合,将一张地图分成不同图层。例如对于某个城市图,可分为区划、道路、河流、建筑物、标注等若干层。对于每一个图层又可以针对其信息数据的不同内容要求,运用不同的数据格式和不同的数据库类型如(dBase、FoxBase、Lotus1-2-3、Oracle、Sybase等)。 而在用户对图形或数据库进行显示、编辑、查询等操作时,又可以对任意图层实现自动标注。对标注的大小、字 体、位置、内容、颜色还可随时根据需要进行修改。为提高做图效率, MapInfo设有装饰层,用户可将所画的图形在装饰层里编辑,认可后再存入相应层。利用MapInfo提供的视图工具(Zoom tool), 用户可对矢量图形和光栅图象进行任意比例的无级缩放,可纵览全局,亦可细观局部。为了满足某些用户对于地理坐标系统的特殊需求,MapInfo不仅提供有几百种地理投影模式可供选择,用户还可以通过编辑投影参数,定义自己的地图投影模式。
二、实用的关系型数据库功能
MapInfo具有动态联接的关系型数据库的功能。MapInfo可以直接读取dBase、FoxBase、Clipper、Lotus1-2-3、Microsoft Excel及ASCII文件。在客户\服务器(Client\ server)的网格环境中 ,通过SQL DATALINK数据联接软件包提供的QELIB、ODBC接口,可以同远程服务器联接,直接读取Sybase、Oracle、INGRES、DB/2 DataBase Manager 、 SQLBase 、Netware SQL 、 XDB等十几种大型数据库中的数据信息。MapInfo还可以将数据文件及图形目标的图形属性转换成mif、mid格式的AsCII文件,供其它用户使用。
MapInfo可以运用地理编码(GeoCode)的功能,根据各数据点的地理坐标或空间地址(如省市、街区、楼层、房间等),将数据库的数据与其在地图上相对应的图形元素一一对应。通过完成数据库与图形的有机结合,实现在图形的基础上对数据库进行操作。
MapInfo引进了靶区(Target)的概念。通过设定靶区,不仅可以实现各图形对象之间的数据项的合并和分离,而且可以完成对靶区局部图形对象及数据库内容的清除(Erase)和迭加 (Overlay)处理。MapInfo自备内置关系数据库,用户可以自由定义。每个库可有255个字段(field),20亿条记录。
三、灵活的数据查询分析功能
MapInfo的精华是其分析查询功能,即它能够精确地在屏幕上查询、分析与其相应的地理数据库信息。面对大量的数据,仅对其进行数学统计就已经是一项非常繁重的工作,更何况进行 精确的分类、查询和判断分析。对于相对比较简单的分析查询,MapInfo提供了对象(Object)查询工具、区域(包括矩形、圆形和多边形的区域)查询工具、缓冲区(Buffer)查询、和一些常用的逻辑与数据的分析查询函数,用户随时可运用灵活的查询工具(Info tools)或运用函数建立表达式(Expression)的方式完成;而对较复杂的分析查询,则可通过运行MapBasic编写的查询程序命令来实现。
四、多样化的数据可视表达方式
MapInfo采用了地图(Map)、浏览表格(Browser)及直观图(Graph)等三种不同的方式对数据库内容进行描述,这三种视图均可动态联接。当用户改变某一张视图的数据时,其它视图会实时自动地作相应的变化。
对于信息数据和查询分析的结果,MapInfo还可以采用专题图(ThematicMap)的显示方式,它以柱状图(Bar chart)、圆饼图(Pie chart)、点密度图(DotDensity)、区块图(Ranges)、数量分级图( Graduated )等多种显示模式,运用用户自定义的颜色、填充模式、图形图例等图形显示类型,直观、生动地把数据和分析查询结果显示在屏幕上,便于用户迅速地了解和判断有关的信息数据和查询结果。
五、功能强大的系统开发工具
MapInfo系统软件提供MapBasic作为与MapInfo配套的开发工具。用户使用MapBasic,可以设计、建立符合自己特点和要求的纯用户化的应用系统。作为一种结构化语言,MapBasic提供了380多种函数和命令语句,既简洁明了、易于学习,又具有强大的功能,可以完成用户的各种需求。与传统的GIS软件相比较,良好的软件集成环境和面向对象及事件驱动的编程思想,都是MapBasic的优点。
针对各类用户的不同需求,用MapBasic可以迅速地制定出用户特需的菜单、按钮盒或对话框等,用户不仅可以修改标准的MI菜单,而且可在原菜单条上增加新的菜单项。使用MapBasic用户可方便、准确地绘制经、纬度线,避免手工绘制的枯燥以及可能引起的误差;也可以设计各种新的图形符号。
MapBasic含有一系列SQL函数和许多非常实用的语句,大大增强了对数据进行操作的能力。如仅用一条非常简单的MapBasic的 Select语句,就可以进行对数据库的查询工作,实现对数据排 序、求和、过滤等操作。此外,MapBasic所提供的一系列对 MapInfo的表(Table)或其它类型的表格(如dBASE、FoxBase、Lotus、ASCII或Excel的表格文件)进行操作的命令和函数,可完成对表的各种操作(如打开、新建或修改表等),进行对数据对象的各种编辑操作。利用MapBasic还可以将多媒体技术引入地理信息系统,可以使系统更加形象、生动。
MapBasic提供了MapInfo和其它应用程序的接口,MapBasic的开放式体系结构允许程序员调用外部函数中的例程。例如MapBasic 不仅可以利用DDE(Dynamic Data Exchange)调用其它软件中的程序(C语言、Visual Basic的应用程序),还可以调用Windows DLL(Dynamic Link Libary)中的例程。用户还可以通过运用MapBasic编写的执行程序,来完成在工作中复杂的例行工序,这样就可以将日常烦琐的例行工作交给了计算机处理,不仅能够大大的提高工作效率,而且还将管理人员从完全不必要的精力消耗中彻底解放出来。
六、方便灵活的图形输入输出功能
对于图形的输入和输出,MapInfo也提供了强有力的支持。使用MapInfo软件可处理通过扫描仪、数字化仪输入的数据信息。如果利用美国DTC公司(Digitizer Technology Company)所生产的VTI(Virtual Table Interfae)接口软件,MapInfo可与当前国际流行的Summagraphics、Calcomp等200多种数字化仪连接。利用其相应的硬件支撑平台,MapInfo在灵活的调整了版面内容及其间的相对比例之后,可以通过彩色绘图仪、打印机输出任意比例的图形、电子表格、图表及图例,或直接将窗口中显示的矢量地图转成 bmp文件或Metafile文件。
七、支持多种硬件操作平台
MapInfo能够支持多种硬件操作平台及适应较低的工作环境。MapInfo和MapBasic有可用于DOS、Windows 3.1、Windows 95、Windows NT Tm 、Macintosh、Sun和Hp等多种硬件平台的版本,而且用MapBasic编写的程序可以运行于任意一种硬件平台之上。 用户可以根据自己的实际要求和经济承受能力选用适当的产品。
八、快速、准确的GPS连接能力
MapInfo提供了良好的地图环境,为GPS提供了相应的控制显示技术,使GPS跟踪目标能实时地、准确地显示在当前地图中,并显示当前跟踪目标的经纬度。
九、高精度的地图数据产品
MapInfo还提供有全球范围可分为十几个图层的地理图形的矢量数据产品,其中主要包括人文地理、行政区划、公路交通、人口统计、自然资源等方面的内容。局部地区的数据可达到街区一级的精度。 有了这些数据产品,用户就可以直接与自己的数据库联接,实现数据库内容的可视化管理本回答被提问者采纳 参考技术B 地理信息系统GIS的专业软件,我就是学这个的
啊哈哈
MapInfo地理信息系统平台作为一个图形-文字信息完善结合的软件工具,能将所需要的信息资料形象、直观地与地理图形紧密地联结起来,能提供大量常用的分析、查询功能,能将结果以图形或表格的方式显示出来。
MapInfo软件提供与一些常用数据库的接口,可以直接或间接地与这些数据库进行数据交换。
MapInfo软件提供的开发工具MapBasic,
可完成用户在图形、界面、查询、分析等方面的各种要求,以形成全用户化的应用集成。配接多媒体系统可使用户对
地图进行多媒体查询。MapInfo软件适用于军队管理与指挥、市场营销、城市规划、市政管理、公安交通、邮电通讯、石油地质、土地资源、人口管理、金融保险等各个应用领域,能对用户的管理、决策提供有力的支持与帮助。
一、强大的图形表达、处理功能
MapInfo做为一种功能强大的图形软件,利用点、线、区域等多种图形元素,及丰富的地图符号、文本类型、线型、填充模式和颜色等表现类型,可详尽、直观、形象地完成电子地图数据的显示。同时MapInfo对于位图文件(如GIF、TIF、PCX、BMP、TGA等多种格式的位图文件)和卫片(SPOT)、航片、照片等栅格图象,也可以进行屏幕显示,根据实际需要还可以对其进行矢量化。此外,DXF格式(AutoCAD和其它CAD软件包的图形/数据交换格式)的数据文件,也可以直接运用于MapInfo当中。在图形处理方面,它提供了功能强大的编图工具箱,用户可以对各种图形元素任意进行增加、删除、修改等基本编辑操作。
MapInfo所处理的电子地图与一般地图不同。一般的地图,各类要素、信息集中在一起,不利于不同用户对不同的地理信息的查询使用。MapInfo对地图是分层处理,用户可以通过图形分层技术,根据自己的不同需求或一定的标准对各种图形元素进行分层组合,将一张地图分成不同图层。例如对于某个城市图,可分为区划、道路、河流、建筑物、标注等若干层。对于每一个图层又可以针对其信息数据的不同内容要求,运用不同的数据格式和不同的数据库类型如(dBase、FoxBase、Lotus1-2-3、Oracle、Sybase等)。
而在用户对图形或数据库进行显示、编辑、查询等操作时,又可以对任意图层实现自动标注。对标注的大小、字
体、位置、内容、颜色还可随时根据需要进行修改。为提高做图效率,
MapInfo设有装饰层,用户可将所画的图形在装饰层里编辑,认可后再存入相应层。利用MapInfo提供的视图工具(Zoom
tool),
用户可对矢量图形和光栅图象进行任意比例的无级缩放,可纵览全局,亦可细观局部。为了满足某些用户对于地理坐标系统的特殊需求,MapInfo不仅提供有几百种地理投影模式可供选择,用户还可以通过编辑投影参数,定义自己的地图投影模式。
二、实用的关系型数据库功能
MapInfo具有动态联接的关系型数据库的功能。MapInfo可以直接读取dBase、FoxBase、Clipper、Lotus1-2-3、Microsoft
Excel及ASCII文件。在客户\服务器(Client\
server)的网格环境中
,通过SQL
DATALINK数据联接软件包提供的QELIB、ODBC接口,可以同远程服务器联接,直接读取Sybase、Oracle、INGRES、DB/2
DataBase
Manager
、
SQLBase
、Netware
SQL
、
XDB等十几种大型数据库中的数据信息。MapInfo还可以将数据文件及图形目标的图形属性转换成mif、mid格式的AsCII文件,供其它用户使用。
MapInfo可以运用地理编码(GeoCode)的功能,根据各数据点的地理坐标或空间地址(如省市、街区、楼层、房间等),将数据库的数据与其在地图上相对应的图形元素一一对应。通过完成数据库与图形的有机结合,实现在图形的基础上对数据库进行操作。
MapInfo引进了靶区(Target)的概念。通过设定靶区,不仅可以实现各图形对象之间的数据项的合并和分离,而且可以完成对靶区局部图形对象及数据库内容的清除(Erase)和迭加
(Overlay)处理。MapInfo自备内置关系数据库,用户可以自由定义。每个库可有255个字段(fi
查看原帖>> 参考技术C MapInfo Professional 是一套业界中领先的Windows平台的地图化解决方案。
使用MapInfo Professional,提供地图绘制、编辑、地理分析、网格影像等功能。
利用MapInfo提供的最佳决策支持系统,商业分析专家和GIS专家可以方便的将数据和地理信息的关系直观的展现。它复杂而深层次的可视化地理分析功能可以帮助用户在数据库中不同的数据之间建立关联,在同一个环境下显示,并迅速揭示数据之间的关系以及易被忽视的数据模式,从而作出快速有效的决策,提高运作效率,加强竞争能力。
功能特色
MapInfo Professional提供一整套功能强大的工具来进行复杂的商业地图化、数据可视化和GIS功能。通过MapInfo Professional可连接本地及服务器端的数据库,创建地图和图表以揭示数据行列背后的真正含义。也可以定制MapInfo Professional以满足用户的特定需要。事实上,电讯、民用、零售和政府等几乎所有领域都将MapInfo Professional应用到市场分析、选址、客户服务、应急等各方面。MapInfo Professional功能强大、简单易用、物超所值、是世界上领先的地图化解决方案。
数据分析
数据管理和访问
数据
.....
下载地址:
http://lib.verycd.com/2005/04/07/0000045369.html
http://find.verycd.com/folders/mapinfo
以上是关于怎么用C#和mapinfo开发车辆定位系统?的主要内容,如果未能解决你的问题,请参考以下文章