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