物探论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 492|回复: 0

MapInfo MapXtreme 2005新增特性评述

[复制链接]
发表于 2013-3-13 20:42:49 | 显示全部楼层 |阅读模式
MapInfo MapXtreme 2005新增特性评述
2007年06月07日 星期四 22:23
MapInfo 已经发布了MapXtreme 2005,内部版本6.5。这是一个基于.net的产品,无论从对象模型到底层开发、对象命名,完全都是.net架构的内容。而且这次将MapInfo的技术纯洁主义发挥到了极致,以至于仅仅支持vb.net和C#,宝蓝公司的框架一概不予支持。不过尽管如此,他还是在新版本中增加了不少吸引人的特性。当然这些增加都是相对于MapXtreme2004所讲的,如果你根本没有看过MapXtreme2004的话,下面的内容恐怕没有那么吸引人了。下面部分的内容是摘自MapXtreme 2005 《开发人员指南》,我针对这些新增的特性做了些评论。本想谦虚一下,但是想到用狗尾续貂来形容我的评论,恐怕有些真的不合适哦。呵呵
学习资源页面
学习资源与MapXtreme一起安装,基于浏览器的工具会将MapXtreme中所有文档和MapXtreme 2005学习资源集中到同一位置。您可以在安装过程结束时运行学习资源,或通过MapXtreme程序组下的“开始”菜单随时运行。
通过学习资源,可以获得对整个产品的简单印象、浏览“如何实现”代码片断表、到示例应用程序的链接,以及连接到MapInfo网站上的关键位置等。可从“学习资源”访问本《开发人员指南》的PDF版本。
所谓的学习资源不过是把所有的内容都放到一个集中的地方作一个目录式的索引功能罢了,但是对我们有些开发人员来说却也有一定的用处。与其到处寻找培训和资料不如认认真真的阅读产品自身带着的文档。经常有人问我要例子程序,却从来没有认真看过产品自带的示例代码,连最起码的,每个例子的readme文档也没有注意到,唉,不知道这样的学习资源能不能让开发人员对自带的资源重视起来那?用心良苦啊
最佳实践:规划应用程序
新的MapXtreme文档包括在构建应用程序前必须考虑的关键因素。信息包括可伸缩性、对象池、状态管理和性能。请参阅第5章:应用程序的规划。此外,还提供了使用一个运输web示例应用程序的案例研究,用于说明这些最佳实践的概念。请参阅附录E:案例研究:在Web应用程序中管理会话状态。
事实上,GIS应用最重要的并不是程序中的模型如何使用,函数参数如何、甚至以何种接口访问数据库都不是问题,关键在于如何让系统的各个部分有机组合起来,完成我们的任务。一个合理的架构加上先进的技术,才可能成就一个成功的项目。(特别是Web上的应用)所以,应用程序规划这个章节增加得非常的好,建议大家仔细阅读这部分文档。
对象模型文档
对象模型的概述,全新的彩色文档,显示主要接口和类以及彼此间的关系。该信息对新用户尤为有用,它提供了需要了解的有关对象模型中命名空间的术语和要点,用户可从中获得详细信息。可通过学习资源>文档>对象模型文档下的“学习资源”
浏览器访问产品模型概述的 PDF版本。要直接访问该 PDF(及本《开发人员指南》),请转到..\MapInfo\MapXtreme\6.5\Documentation\PDF。
这种资源一般都应该提供的,以宏观的方式展现编码级别的内容,虽然不能指明具体的调用细节,却能给人一种总体上的印象,因为一种模型结构实际上就是一种思维方式。GIS产品多如牛毛,模型对象的结构差异算是一大区别。
控件的体系结构
Web
为了更容易使用,我们已重新设计了MapXtreme 2005中的Web 控件。另外,现在所有的Web 控件均可在框架中运行。
增加了新的NavigationTool和ZoomBarTool。所有Web 控件都提供了源码,这样就可以对其进行定制,以适应应用程序业务需要。此外也可以分布修改的Web控件。源码见..\MapInfo\MapXtreme\6.5\Samples\Web。
其它重要更改包括在错误管理方面的改进和对状态管理和事件处理的更改。
有关使用和管理Web控件以及从MapXtreme 2004迁移到Web控件的详细信息,请参阅第6章:运用MapXtreme 2005 Web控件。
新的Web控件采用了类似Ajax的技术,不需要像以前的工具还要整个刷新页面。并且新的Web控件都提供了源代码,这比上一个版本更有利于学习和扩展了(其实说实话,Web的基本内容就是向服务器请求图片,采用何种方式请求图片都是蛋糕上的奶油花--虽然内容不多但是吸引眼球、而且是卖家要钱的地方)

地理编码和路径规划客户端
MapXtreme 2005 的地理编码和路径规划客户端具有新的强化功能,允许用户创建更强健的文本。现在,地理编码客户端支持MapInfo 世界地理编码程序,可以提供覆盖许多国家的城市、邮政编码和街道级别数据。已添加附加地理编码约束和地址级别选项(如地址范围),生成更加用户化、更加精确的候选地理编码。这些约束中包括新增的CASS认证,通过该过程可将邮寄地址表标准化,以满足 U.S. Postal Service   (USPS) 对大批邮寄折扣的要求。
现在,路径规划客户端包括计算驾驶时间和驾驶距离等值线的功能,还能够使用瞬态更新重新计算路径,取消或更改道路类型、点或线段的优先权。现在已支持矩阵路径规划,通过它可以查找任意数目起点和终点之间的最短或最快路径。此项功能通常用作分析工具,根据在合理时间长度内救护车、公共安全或消防人员可救助财产/个人的概率确定保险财产或个人的危险性。为支持运输系统类型路径规划,我们已添加了基于时间的路径规划,通过它可以指定开始、停止和结束时间。现在,路径规划客户端包括大量参数选择,通过它可以定制路径分析、驾驶指示和路径几何体。
我曾经使用MapInfo Routing J Server,使用加拿大的高速公路数据,速度是相当快速的,而且其功能也相对强大,能够满足几乎所有路径优化中遇到的问题,但最要命的是他所使用的数据并不能由用户自行生成,必须由MapInfo公司代为加工,这样的的策略在中国这个数据当前政策的特殊性的地方,恐怕是没有多大空间的。MapInfo也销售数据,并且在去年也推出了中国的非常详细的数据产品,但是,还没有拿到过,也就无从评论了,就算拿到,在中国销售的法律问题恐怕也不是一天两天能解决的,所以这些特性不过是空中楼阁罢了。
打印支持
MapXtreme 2005的新打印支持功能允许用户通过基于MapXtreme   Workspace的应用程序、管理器或打印API生成高质量的地图和图例打印输出。基于Microsoft .NET 1.1 Framework的MapInfo.Printing对象模型从System.Drawing.PrintDocument 类继承。地图和图例可以直接打印到设备或首先生成Enhanced Metafile (EMF)。此外,可在“打印预览”中查看地图和图例。可以通过MapPrinting.PrinterSettings (LegendPrinting.PrinterSettings)和MapPrinting.PageSettings (LegendPrinting.PageSettings)并使用MapInfo.Printing命名空间更改打印机和页面设置。
当前没有内置的GUI支持。MapPrinting.Print、MapPrinting.PrintPreview和MapPrinting.PageSetup使用默认的.NET打印对话框。更改为MapPrintMethod和LegendPrintMethod,则MapPrintSize 、Map/Legend.DrawingAttribute通过MapPrintDocument和LegendPrintDocument API完成。可控制的绘制属性包括抖动方法(半色调或误差扩散)、缩放位图填充图案、24 位彩色光栅打印以及对具有孔、透明矢量和光栅图层的多边形的特殊处理。注:MapXtreme 不支持半透明光栅图像的打印。
Workspace管理器已更新为可利用新的打印API。它使用默认设置,包括打印方法(EMF)、打印大小(适合于页面)和绘制属性(全部为true)。
有关MapXtreme打印支持的详细信息,请参阅附录H:从MapXtreme应用程序进行打印。
       打印功能的扩展提高了一大部分,但是还是非常有限的。以国人的习惯,最好是一个函数就给出弹出窗体来完成所有的打印功能。很不幸,这次升级还是没有提供GUI。其实这些完全是洋人希望获得更多的灵活性而采取的设计,不过国人不买帐而已。
Shapefile中的M和Z值

MapXtreme 2005现在可读取包含M和Z值的ESRI Shapefile。这些值不能使用。
对shapefile没有研究,但这对软件的开放型而言显然是一个进步

ECW 光栅句柄
MapXtreme 2005在使用ECW光栅句柄时支持多线程。句柄的文件名已更改。现在的名称为ecw.rhy且位于C:\Program Files\Common Files\MapInfo\MapXtreme\6.5\RasterGridHandlers。(先前文件名为ecw.rhl。)光栅句柄的扩展名指示MapXtreme 2005使用该文件的顺序。
请参阅第17章:光栅句柄。
始终以为栅格影像在GIS中仅仅是个装饰的作用,无法自动获取数据的数据源又要占用太多的资源,实在是得不偿失,有人力推Google Earth不知道是出于什么样的目的,在照片上看到自己的家真的那么让人兴奋么? 这种增强的访问并没有太多吸引人的地方,当然,多线程之后效率会有较大提高。
瞬态图元支持
现在对象模型中支持瞬态FeatureGeometry对象。MapInfo.Geometry.FeatureGeometry.IsTransient可用于确定FeatureGeometry是否为瞬态的 Boolean 属性。   
通过某些数据访问方法获得的FeatureGeometry 对象可能为瞬态。它们是短时间存在于可能回收的内存中的对象,用于后续的获取操作。使用瞬态Geometry 对象可以提高性能。如果需要超越对象的短暂生存期,则应该生成对象副本。
新Transient图元功能的结果是更新SearchResultProcessor类使其支持此项功能。现在该基类返回瞬态图元(您可为该基类自定义搜索结果的后处理程序)。不过,请注意返回的任何瞬态图元只在当前图元上有效。一旦移至下一图元,则先前图元无效。
从临时图层到临时图元,这样可以优化数据的访问过程。对于不了解MapInfo的人来说,经常通过向图层增加图元来标识跟踪设备的位置,或者批量生成目标,然后抱怨MapInfo效率低下。瞬态图元应该是介于临时图层图元和用户绘制图层图元之间的这样一种对象,可以让以前有成见的开发者更容易接受这种概念
性能测试
MapXtreme 2005已执行了大量测试,已确定在应用程序中使用池对象时的性能效果。此外还包括了多层应用程序,这些应用程序访问远程服务并分配池对象以获得最高性能。详细讨论请参阅第74页第5章中的优化应用程序。
性能测试是个特别让人头大的问题,恐怕所有的GIS产品销售人员都会遇到用户要求出示产品性能的测试报告,甚至有人要求横向比较所有的GIS产品性能。其实这种比较往往没什么意义。一个应用系统的性能效率最大的决定因素取决于开发商的实力,再好的产品性能采用了不合理的架构或方法也不会有效率的,这一点开发商经常无意或有意的忽略。当然对本身使用的平台不了解也是其中的一个原因。

示例应用程序和代码示例
MapXtreme 2005 向产品中添加了更多的示例应用程序和代码片断,以帮助您了解并且最有效地利用对象模型。找到所有示例的最佳方式是使用“程序”菜单下的“学习资源”浏览器。在浏览器的“学习资源”部分单击“示例应用程序”链接。
在可导航的浏览器中会显示代码片断的“如何实现...”,用户可通过“学习资源”浏览器的“文档”页面打开该功能。这些片断是基本构建块,用户可在其基础上构建桌面或web应用程序。
新增加的代码片断文档部分是非常好的,起码减少了学习的难度和缩短了周期。不过再复制粘贴之后最好仔细阅读一下代码,那是很有益处的。另外通过这两天的学习,发现它在示例中自定义的很多类也是非常好非常方便的,但是这些没有在文档中描述。毕竟文档仅仅是针对GIS平台产品,编程技巧只有有心人才能学到了。
IN/ANY/ALL 运算符和子查询
下面是与数据访问相关的新的和增强的功能。
* 现在提供带有文字列表和子查询的IN 、ANY和ALL运算符。例如:
Select ... From T Where X IN (2, 6, 12)Select ... From T Where X IN (Select X From U Where B > 50)
* 现在提供相关联的子查询,其中子查询引用来自外部查询的列(或表达式)。例如:
Select ... From T Where X IN (Select X From U Where B = T.A)
* 空间OR 列表已进行优化。例如:
{Select ... From T Where Obj Within @Var1 OR Obj Within @Var2 OR Obj Within @Var3}
不想评论这个,我没有去认真的查SQL3本身支持不支持这几个算子,但是这样有用的内容不提供才是天理不容的,呵呵,好在现在已经给了。
StyleFactory 类
MapInfo.Styles.StyleFactory中包含了一个新的类,它允许用户将画笔、画刷和符号子句从MapBasic字符串转换到CompositeStyle。
MapBasic生存在MapInfo Professional中,作为被人接触最早的产品,Pro有着非常大的用户群(正版和盗版),虽然MapInfo已经计划推出基于.net架构的Pro但还是要顾忌以前产品的用户和他们的经验,否则动辄毁掉别人的经验,不被骂死就会被饿死。

ISession.Reload方法
ISession.Reload是一种新方法,可以清除Session 的状态并重新加载先前在应用程序配置文件中配置的工作空间。 ISession.Reload替换ISession.Reset 。   
要重置会话的状态而无需重新加载预装的 workspace,请使用ISession.Clear 方法。
明显的换汤不换药的升级方式,当然,这在某种程度上减小的系统的负担,优化了流程。不过……一般用户还是不用考虑这些了,用模板的开发过程中如果没有特殊需求还是不要自己管理会话比较好。

后面的内容没有太吸引人的,我就不逐一去评价了,如果有人感兴趣可以到MapInfo公司网站去下载试用版本,有六十天的试用期,开发个小项目足够了
永久性
名为CenterAndScale的新枚举值已增加到MapInfo.Persistence.AreaOfInterestPreference。该值更倾向于表示应如何在工作空间中表示每个地图的重点区域。ScaleAndZoom 值已很少使用。
自定义位图符号MSM
MapXtreme 2005 包括合并模块,使得可以更加容易地在部署项目中包括自定义符号。只需
在项目中包括MapInfoCustSymb.msm即可。这会将符号安装到Program Files\Common Files\MapInfo\MapXtreme\6.5\CustSymb 文件夹中。要为部署定位其他位置的自定义符号,请参阅第455页附录F中的应用程序数据文件的位置。

许可证文件工具
MapXtreme将许可证工具MILicenseNodeID.exe和该工具的库安装到Program Files\Common Files\MapInfo\MapXtreme\6.5\License Tool文件夹中。当您需要永久使用许可证用于开发和部署MapXtreme应用程序时,请运行此工具。将生成的节点ID文本文件提交给MapInfo Corporation以申请许可证。
如果正部署web应用程序或正使用软件防复制版本的MapXtreme 2005开发和部署web或桌面应用程序,则必须在项目中提供该工具。节点ID工具包括在合并模块MapInfoMXTConfig_6.5.msm中。“核心引擎”合并模块需要该msm ,因此许可证工具目前将随您的应用程序一同部署。请参阅第437 页附录D中的授权分布式应用程序

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|物探论坛 ( 鄂ICP备12002012号 微信号:iwutan )

GMT+8, 2024-5-13 20:55 , Processed in 0.062740 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表