自定义工具的客户端代码

使用自定义工具后,ClientCommand可以直接用MapCommand,即ClientCommand="MapCommand"。

也可以自己写客户端代码(js),如:

function CustomCommand(name, interaction)
{
 if (arguments.length > 0) {
  this.Init(name, interaction);
 }
}
CustomCommand.prototype = new MapCommand();
CustomCommand.prototype.constructor = CustomCommand;
CustomCommand.superclass = MapCommand.prototype;
CustomCommand.prototype.Execute = function()
{
 var mapImage = this.interaction.element;
 
 //This is hack because of the pan redraw problems
 mapImage.style.visibility = "hidden";
 var oldhandler = mapImage.onload;
 mapImage.onload = function (mapImage) {this.style.visibility = ""; this.onload = oldhandler;};
 
 this.CreateUrl();
 // Set the source of the image to url to just change the map

//如果操作是更新地图,例如看全图
 try {
 mapImage.src = this.url;
 } catch(e) { alert("error"); }
};

此时设置ClientCommand="CustomCommand";

如果自定义工具,对地图进行操作后有数值传回,那么只能自己写客户端代码,而不能直接用MapCommand

function CustomCommand(name, interaction)
{
 if (arguments.length > 0) {
  this.Init(name, interaction);
 }
}
CustomCommand.prototype = new MapCommand();
CustomCommand.prototype.constructor = CustomCommand;
CustomCommand.superclass = MapCommand.prototype;
CustomCommand.prototype.Execute = function()
{
 var mapImage = this.interaction.element;
 
 //This is hack because of the pan redraw problems
 mapImage.style.visibility = "hidden";
 var oldhandler = mapImage.onload;
 mapImage.onload = function (mapImage) {this.style.visibility = ""; this.onload = oldhandler;};
 
 this.CreateUrl();
 // Set the source of the image to url to just change the map

//如果操作有数值传回
 this.result = xmlHttp.responseText;
 alert(this.result);
};

比较两者可以得知,没有数值传回时,更新图像的方法,MapCommand本身就有,所以可以直接用,有数值传回时,只能写代码获取了。

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值