b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

arcengine_mapxtreme_基于mapxtreme的vs编程

电脑杂谈  发布时间:2017-01-24 07:19:42  来源:网络整理
mapxtrememapxtreme

上一个项目使用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();

rectQueryAction = new SuperMap.IS.RectQueryAction(layersInfo, null,whereClause,onQueryComplete,onQueryError);

MapControl1.SetAction(rectQueryAction);

}

实际起作用的就是SuperMap.IS.RectQueryAction这个函数看到有哪些参数了吗?显然单从这个函数无法介入查表的过程whereClause只能设置查询条件.这样你就只能得到返回的id.当然可以绕个弯子.前台得到id后又写个请求去后台查房间.但是这样太没有效率了吧?明明一次就可以在后台做完的事情为什么要做两次?如果数据量大怎么办?平白无故的增加了不需要的流量.

换到mapxtreme.由于可以后台自定义响应函数,所以可以一步到位,相当方便

我感觉supermap应该可以通过重写前台的查询和后台的响应来达到同样的效果.但是即使能行,相对mapxtreme来说也过于繁琐.

最后来个结论吧.supermap很华丽.预设的功能很全很强大.但是自定义不方便.mapxtreme相对界面有点土,但是自定义很方便.supermap就像GridView控件,封装了很,但是自定义点东西很麻烦.mapxtrme就像普通的html table,你可以很方便的改很多东西,但是相应的界面功能要自己去定制


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-28449-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 钱缪
        钱缪

        正愁没理由进驻军事部署的

        • 刘广源
          刘广源

          小米的质量还是不错的

      • 紫华菫
        紫华菫

        立马就会改变东亚的海上平衡

      • 曹叔姬振铎
        曹叔姬振铎

        我们加紧建设我们的

      热点图片
      拼命载入中...