对MapXtreme2004摸索也有了一段时间,渐渐的有了一点感受,所以记录下来。
1. 基于dotnet,不是dotnet封装,这是它易用性,扩展行,一致性的原因。
这个问题我提得很多,所以这里不详细叙述。
2. 完全面向的数据模型(MIAdo.net Provider)
个人认为这是MapXtreme2004设计的最好的地方。
Ado.net不愧一个最优秀的数据模型,微软声称Ado.net可以文件和数据库事项同样的对象模型,而MapInfo则是不仅完全做到这一点,而且做到面向对象的扩充,对于空间数据,样式,键,table.obj, table.MI_style,,table.key9可以,直接支持读写。
3. 数据库(这一部分不怎么熟悉,纯粹个人观点)。
(1)直接完全支持oracle spatial的读,好像也支持其他odbc数据库(但我是没有用起来),但是句programmer’s 好像不支持写数据库,这可是个大问题,如果开发国土资源,用自己的代买写空间数据,不经过大量的研究,不敢保证其正确性,而且mapinfo根oracle spatial对空间数据的定义,肯定也有写细微的差异,这叫我们如何是好?
(2)oracle
4.文件。
MapXtrem2004对各种文件的支持,做的很好(可能对数据库的部分支持,是mapinfo的战略,把文件做好,让大家继续大量使用mapinfo的数据格式)
对于tab, shapefile(arcgis), gst, mws, gml格式支持都很好,读写恨方便。
5. 体系结构(个人观点)。
这也是MapXtreme2004的第二大优点:采用三层结构:
物理数据(文件,数据库)->adonet(内存对象数据模型)->查询,分析,显示
这也是我期待很久的技术:形式根内容分开,数据跟操作分开,分析跟显示分开。
在这里,你不用加载数据,直接读取数据(文件,数据库),然后可以进行各种查询分析,大大节省了内存资源,(在mapx中,好像要加载数据,然后处理layers中的数据)
6. 设计时支持
这是dotnet的功能。在设计时,就可以操作数据(display, zoom, pan and so on)
7. 空间查询语分析
a) 我所知道的MXT的空间分析功能包括:(1)Catalog提供的Search,(2)
Geometry提供的简单处里,(3)Feature提供的FeatureProcessor(4)MI_SQL
b) Catalog提供的Search功能比较强,可以使用MI_SQL;Geometry,Feature提供的空间处里功能比较弱;如果要进行复杂的空间查询分析,要用MI_SQL;MI_SQL的功能应该是比较强的。
8. 网络分析
a) MXT提供了Geocoding,Routing,具有地理编码,路进规划(I guess使用的是WebService功能),由于这些都是一种服务,要使用MapInfo相关的再现服务,可能难以应用了,因为不知道数据格式(应该是xml,具体…?),这两个功能其实是一种很实用而且利润化的只能位置定位服务(如驾驶导航),正是我们急需(MapInfo提供了trial数据,所以还是有一点机会去摸索其中的规范)如果明年进行lbs开发,这种服务应该一什么形式提供,应该是最重要的。那这种服务,自己进行开发的话,需要多少的投资,开发难度多大,还没有一个的
b) Oracle
9. 至于其他的改进,由于没有自己不怎么干兴趣,98怎么提了(ObjectTheme单独建层,ModifierTheme不建层;MapControl仅仅是一个容器,给map,tools提供支持;tools功能增强…)
10. 总之,mxt是一个设计非常优秀的产品,主要体现在architicture,和table-centric这两方面上(Mapinfo能作出如此优秀的设计,应该是Microsoft给了很大的帮助,很多大公司的产品设计上很ugly)。个人认为需要增+的functionality:
a) 直接更新数据库的支持(most important)
b) 对网络分析的支持,基于oracle spatial或增+adonet空间数据结构
c) 对webService可扩展性设计(不知道geocoding,routing的扩展性)