自定义工具的客户端代码

使用自定义工具后,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本身就有,所以可以直接用,有数值传回时,只能写代码获取了。

猜你喜欢

转载自blog.csdn.net/fuao/article/details/2399988
今日推荐