使用supermap做二次开发的一点感想

本文分享了作者在使用SuperMap和MapXtreme进行GIS二次开发时的经验。SuperMap的Ajax版封装过于严格,QueryCompleted事件不易触发,而.NET版虽可触发QueryCompleted,但Postback导致的页面刷新影响用户体验。相比之下,MapXtreme在自定义功能和后台处理上更加灵活,允许程序员直接介入查询过程,提高了开发效率。作者认为SuperMap的预设功能强大,但自定义功能不够友好,而MapXtreme虽然界面朴素,但提供了更高的灵活性。
摘要由CSDN通过智能技术生成

上一个项目使用mapXtreme开发的,这次的预研试了试supermap.两者都不算精通.最大的感觉就是mapXtreme的自定义功能开发方便.程序员可以很方便的介入后台处理.如点图后根据图元id,在其他属性表中查与此图元相关的属性.mapXtreme很方便可以直接查.而supermap分成了ajax和普通.net版本.处理各有不同.ajax版封装太死.我现在还没法干预.mapcontrol控件说明是有QueryCompleted事件,但是实际上根本不会触发. .net版本QueryCompleted事件可以触发,但是由于随便做个postback就要刷新整个网页,结果也很是不便.

来个具体的例子吧:

用户点地图上的一栋楼房,然后出个表显示这栋楼每个个房间的属性

mapxtreme的处理方法

1自定义一个工具,注册这个工具课通过javascript函数向后台请求(我要查1栋的房间属性)

2后台可以自定义响应函数.处理发回来的请求,然后返回处理结果(得到1栋的数据库id,然后查与这个id相关联的房间,xml返回房间集合)

3前台页面接收到处理结果后显示(通过xsl得到表单)

 

supermap(以ajaxDemo中的拉框选择为例吧)

1调用SetRectQueryAction();

2后台响应(Querying事件可以响应,但是你在其中自定义的东西会给覆盖.而QueryCompleted根本不响应)

3返回结果

 

第一步调用的SetRectQueryAction()在pages.js中

function SetRectQueryAction() {
 //var layersInfo=GetQueryableFromLegend();
 //var whereClause= GetWhereClause();
 var layersInfo="ARCAREA";
 var whereClause= GetWhereClause();

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值