业务gis 怎么让别的开发人员不需要懂gis就可以搞开发? (四)

我们来想下业务系统用的做多选项是什么,他们要的很多是地块定位,业务系统要知道地块在哪,地块的样式,符号化,图层的展示,还有地块的属性显示,而业务开发人员并不关心你图层sde是啥,rest发布地址,所以你这些就没必要告诉他们,首先图层的管理是很重要的,每个业务系统(指定的config)有可能加载图层不一样,我们要把他们管理起来,至于怎么管理看大家爱好,我是写了一个工具去管理,把切面的图和动态图分开,权限顺序也放在这里,管理url发布。

图层工具做好了后,业务开发人员怎么去定位这个地块呢,arcgis for flex或者arcgis for javascript 都有querytask这个东西,业务开发人员不可能去用这个来调用,首先说明,图层sde名字是不能告诉他们的,因为往往发布服务时候会有definitioan操作,会有一对多的情况,rest服务地址也不能,有可能以后系统升级rest服务地址改了怎么办。所以就是flex 上显示图层名字为主,这里指的是我们写的flex widget的图层模块,挂载自己的业务图层。然后业务系统和图层有关联键值对传给我们,我们在自己做好的图层工具找到url querytask去查找地块。

我们定义一个Map类,专门对接flex那边注册的函数。

 1 var Map = function () {
 2
 3     this.emap = new Object();
 4
 5 }
 6
 7 Map.prototype = {
 8     constructor: Map,
 9     /**
10      * 地图恢复到全图
11      */
12
13
14
15     /** 有回调这个需要调服务
16      * 根据图层名和主键 和值定位到一个指定地块 自带(高亮)
17      * @param layerName 图层名 暂定为中文名
18      * @param key  图层主键
19      * @param value  图层主键值
20      * @param callback  回调函数默认可以不传
21      */
22     zoomByKeyValue: function (layerName, key, value, callback) {
23         this.emap.zoomByKeyValue(layerName, key, value,callback);
24     }
25
26
27 }

回调服务告诉是否定位成功,在MapControl 加入Map类

 1 var MapControl = function () {
 2     /**
 3      * 地图初始化parameter  具体参考Parameter类
 4      * @type {Parameter}
 5      */
 6     this.parameter = new Parameter();
 7     /**
 8      * 添加事件主体 具体参考EventBus类
 9      * @type {EventBus}
10      */
11     this.eventBus = new EventBus();
12     /**
13      * Map提供的地图函数 参考Map类 调用Map类的函数必须等待地图初始化完毕,建议监听Initialized事件
14      * @type {Map}
15      */
16     this.map = new Map();
17     /**
18      * 地图初始化
19      */
20     this.inlitialize = function () {
21
22
23         swfobjhash[this.parameter.div] = this;
24         var swfVersionStr = "11.4.0";
25         var xiSwfUrlStr = "";
26         var flashvars = {};
27
28         var params = {};
29         params.wmode = "opaque";
30         params.quality = "high";
31         params.bgcolor = "#ffffff";
32         params.allowscriptaccess = "always";
33         params.allowfullscreen = "true";
34         var attributes = {};
35         attributes.id = this.parameter.div;
36         attributes.name = this.parameter.div;
37         attributes.align = "middle";
38         swfobject.embedSWF(
39             "http://localhost/mymap/index.swf"   +
40             this.parameter.getswfid() , this.parameter.div,
41             this.parameter.width, this.parameter.height,
42             swfVersionStr, xiSwfUrlStr,
43             flashvars, params, attributes);
44         swfobject.createCSS("#" + this.parameter.div, "display:block;text-align:left;");
45     }
46 }
47
48
49
50 var swfobjhash = new Object();
51
52
53 //flex图形组件加载完毕回调 swfid是区分嵌入swf的标识码
54 function emapComplete(swfid) {
55     swfobjhash[swfid].map.emap = document.getElementById(swfid);
56     swfobjhash[swfid].eventBus.dispatchEvent({type: "Initialized"});
57 }

在html调用

 1 <script type="text/javascript">
 2
 3         var a = new MapControl();
 4         a.parameter.config = "config-checkview.xml";
 5         a.parameter.div= "flashContent";
 6         a.parameter.width = "800";
 7         a.parameter.height = "800";
 8         a.eventBus.addEventListener(MapControlEvent.Initialized,initHandle);
 9         a.initialise();
10
11         function initHandle()
12         {
13
14             a.map.zoomByKeyValue("地下管线","P_NO","55555")
15         }
16
17 </script>
时间: 2024-09-29 01:16:12

业务gis 怎么让别的开发人员不需要懂gis就可以搞开发? (四)的相关文章

BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 跨开发者角色的SharePoint开发

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 跨开发者角色的SharePoint开发 第1章节讨论了SharePoint开发人员分类范围和他们使用SharePoint的不同方法.作为提醒,你可将这个范围分成: 终端用户--将平台作为应用程序平台: 高级用户--创建并管理(也可能品牌化)站点: 设计人员--品牌化站点,并构建用户体验: 开发人员--构建并部署Apps. 考虑一些每个角色的生命周期,你可以想象到

开发人员程序猿10大聚集地

1.csdn CSDN是中国软件开发联盟(Chinese software develop net)的缩写,是中国最大的开发人员技术社区.它是集新闻.论坛.群组.Blog.文档.下载.读书.Tag.网摘.搜索..NET.Java.游戏.视频.人才.外包.第二书店.<程序猿>等多种项目于一体的大型综合性IT门户站点,有非常强的专业性,其会员囊括了中国地区百分之九十以上的优秀程序猿,在IT技术交流及其周边国内中是第一位的站点. 2.DevStore DevStore全称Developer serv

每个Java开发人员都应该知道的4个Spring注释

这是每个Java开发人员都应该知道的最重要的Spring注解.感谢优锐课老师对本文提供的一些帮助. 随着越来越多的功能被打包到单个应用程序或一组应用程序中,现代应用程序的复杂性从未停止增长.尽管这种增长带来了一些惊人的好处,例如丰富的功能和令人印象深刻的多功能性,但它要求开发人员使用越来越多的范例和库.为了减少开发人员的工作量以及开发人员必须记住的信息量,许多Java框架都转向了注解. 特别是Spring,它以注解的使用而闻名,它使开发人员仅用少数几个注解就可以创建完整的表示状态转移(REST)

来聊一聊开发人员与非技术同事沟通时最崩溃的11件事

客户需要这个产品在IE6上面运行 在工作场所,开发人员在非开发人员的眼中就魔术师一样,他们想要的产品经过开发人员的变魔术一般的代码就实现了.作为开发人员,你可能整天都在构建复杂的API集成,或者只需在Steam上点击West of Loathing玩耍,而99%的同事根本无法区分差异这两者的差异. 如果你试图了解如何更好地与开发团队进行沟通,那么你应该知道有些事情是他们喜欢从非开发人员口中听到的.例如,开发人员”喜欢“听到你如何通过在不咨询他们的情况下进行艰难且无变化的技术决策,最终帮助他们“节

Web前端开发人员和设计师必读文章推荐【系列十】

<Web前端开发人员和设计师必读文章推荐系列十>给大家带来最近两个月发布在<梦想天空>的优秀文章,特别推荐给 Web 开发人员和设计师阅读.梦天空博客关注 前端开发 技术,展示最新 HTML5 和 CSS3 技术应用,分享实用的 jQuery 插件,推荐优秀的 网页设计 案例,共享精美的设计素材和优秀的 Web 开发工具.希望这些文章能帮助到您. HTML5 & CSS3 应用 2012五大主流浏览器 HTML5 和 CSS3 兼容性大比拼 不可思议!23个纯 CSS3 打

Web开发人员必读的12个网站

The more you actually create, the more you’ll learn.(创造的越多,学习的越多),世界上有无数个开发人员会在网上分享他们的开发经验,我们无法向所有人学习,因此本文搜集了全球Web开发人员最值得浏览的十二个网站,帮开发人员节省时间,快速找到有价值的信息!个个都是精品! 1. sixrevisions.com Six Revisions 现在不是以Web开发经验分享为主的博客网站,但是访问该网站可以第一时间获取Web最新消息,Six Revision

【玩转微信公众平台之五】 进军开发人员模式!冲啊!

最终要进军高大上的开发人员模式了,想想都有点小激动~~ ----------------点击 功能--高级功能 出现例如以下界面. 先进入编辑模式,将该模式关掉,然后再进入开发人员模式,会出现例如以下界面:.            这时候会提示我们还不是开发人员.接下来点击 成为开发人员 button,会出现接口配置信息: 我们须要在配置信息填入URL和Token.看到这里有些小伙伴可能就懵了.什么是URL和Token?假设你不知道他们是什么.那是正常的!假设随便一个人都知道,那我们这些真正的开

BEGINNING SHAREPOINT&#174; 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 用SPD开发SharePoint应用程序

BEGINNING SHAREPOINT? 2013 DEVELOPMENT 第3章节--SharePoint 2013 开发人员工具 用SPD开发SharePoint应用程序 很多开发人员说他们宁愿不用SPD作为开发SharePoint的工具.然而,如果你没有在工具集中包括它你可能进度放缓.因为你将发现SPD可以让一些开发任务变得更容易. SPD从FrontPage(早起Web开发人员工具)进化而来到SPD(以SharePoint为中心的设计人员工具,随SharePoint 2010一起出现)

手游Apk破解疯狂,爱加密apk加固保护开发人员

2013年手游行业的规模与收入均实现了大幅增长,发展势头强劲.权威数据显示, 我国移动游戏市场实际销售收入从2012年的32.4亿猛增到2013年的112.4亿元,同比增长了246.9%,手游用户从2012年的8900万迅 速增长到2013年的3.1亿,增长幅度高达248.5%.来源!www.ijiami.cn 可是,在移动手游快速发展的同一时候,暴露出的手游破解问题也日益严重,手机游戏软件被破解后注入恶意代码.盗取用户財产.窃取用户设备信息的现象屡见不鲜.2014年1月,台湾易游网络有限公司旗