您的位置:首页 > 其它

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

2015-12-09 15:25 441 查看
每个业务子系统都要加载flexviewer搭建的gis系统,我们可以共用同一个系统,把要交互的逻辑封装出去,首先把加载flash那段js代码封装起来放到一个自己定义的控制类,这个类暂时叫MapControl,把初始化flash的一个方法定义到里面。

/**
* Created with JetBrains WebStorm.
* User: haibalai
* Date: 15-12-9
* Time: 下午3:51
* To change this template use File | Settings | File Templates.
*/

var MapControl = function () {
/**
* 地图初始化parameter  具体参考Parameter类
* @type {Parameter}
*/
this.parameter = new Parameter();
/**
* 地图初始化
*/
this.inlitialize = function () {

swfobjhash[this.parameter.div] = this;
var swfVersionStr = "11.4.0";
var xiSwfUrlStr = "";
var flashvars = {};

var params = {};
params.wmode = "opaque";
params.quality = "high";
params.bgcolor = "#ffffff";
params.allowscriptaccess = "always";
params.allowfullscreen = "true";
var attributes = {};
attributes.id = this.parameter.div;
attributes.name = this.parameter.div;
attributes.align = "middle";
swfobject.embedSWF(
"http://localhost/mymap/index.swf"  + this.parameter.getUrlString() , this.parameter.div,
this.parameter.width, this.parameter.height,
swfVersionStr, xiSwfUrlStr,
flashvars, params, attributes);
swfobject.createCSS("#" + this.parameter.div, "display:block;text-align:left;");
}
}


其中Parameter类是我们自定义某些属性的东西,比如地图的长宽,放置div的id,还有系统的别名,flexviewer默认的是config.xml,如果你定制另外一个系统你可以改为config-aaa.xml

之类的。

/**
* Created with JetBrains WebStorm.
* User: haibalai
* Date: 15-12-9
* Time: 下午3:51
* To change this template use File | Settings | File Templates.
*/

var Parameter = function (){

/**
*图层配置xml
* @type {string}
*/
this.config = "";

/**
* 嵌入flash的div配置
* @type {string}
*/
this.div = "";
/**
*图形组件的宽
* @type {string}
*/
this.width = "";
/**
*图形组件的高
* @type {string}
*/
this.height = "";

this.getUrlString =   function()
{
var a =  "?config=" + this.config;
return a;
}

}


我们在测试页面html可以这样子

<html>
<head>
<title>mymap</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<script type="text/javascript" src="http://locahost/mymap/libary/MapTool.js"></script>

</head>

<script type="text/javascript">

var a = new MapControl();
a.parameter.config = "config.xml";
a.parameter.div= "flashContent";
a.parameter.width = "800";
a.parameter.height = "800";
a.inlitialize();

</script>

<body>

<div id="flashContent">

</div>

</body>
</html>


其中MapTool.js是压缩了MacControl.js 和Parameter.js。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: