发表用户:讨论贴
收集整理:James.Liu
相关讨论:http://www.mygis.com.cn/forum/dispbbs.asp?boardID=11&ID=5790
信息原始来源:James MapInfo技术论坛

文章标题:MapXtreme for Java中怎样在jsp页面上进行矩形选择?

songqian

我在jsp页面上显示了一幅地图,现在需要从地图上画一个矩形区域,把该区域内的图元集合得到,从而进行分析。但没有思路,不知道怎样在jsp页面上把鼠标划过的参数得到,谁能帮忙指点一下。谢谢了

wtusmchen

用Applet或者javascript捕获鼠标事件

Marsblade

能否提供一个JS实现的例子??

songqian

我还是没整出来,反编译了自带的工具条上selection那个按钮类,发现它的标签逻辑挺乱的,到底也没看出参数是怎么传到后台的,请高手帮忙啊

wtusmchen

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<SCRIPT LANGUAGE="javascript">
<!--
/*记录鼠标位置*/
var m_mouseDownX , m_mouseDownY;
/*记录鼠标是否按下*/
var m_blMouseDown = false;

function CaptureMouseEvent()
{
 document.onmousemove = _mouseMove;
 document.onmousedown = _mouseDown;
 document.onmouseup  = _mouseUp;
}

//鼠标按下
function _mouseDown()
{
 var divStyleObj = document.all.BoxDIV.style;
 divStyleObj.left = event.x;
 divStyleObj.top = event.y;
 divStyleObj.width = 0;
 divStyleObj.height =0;
 divStyleObj.visibility = "visible";
 m_mouseDownX = event.x;
 m_mouseDownY = event.y;
 m_blMouseDown = true;
}
//鼠标移动
function _mouseMove()
{
 var x = event.x;
 var y = event.y;
 var divStyleObj = document.all.BoxDIV.style;
 if(m_blMouseDown)
 {
  if (x > m_mouseDownX)
   divStyleObj.left = m_mouseDownX;
  else
   divStyleObj.left = x;
  if (y > m_mouseDownY)
   divStyleObj.top  = m_mouseDownY;
  else
   divStyleObj.top  = y;
  divStyleObj.width = Math.abs(x - m_mouseDownX);
  divStyleObj.height= Math.abs(y - m_mouseDownY);
 }
}
//鼠标弹起
function _mouseUp()
{
 m_blMouseDown = false;
 alert("自己处理吧");
 var divStyleObj = document.all.BoxDIV.style;
 divStyleObj.visibility = "hidden";
}
//-->
</SCRIPT>

<BODY>
<input type="button" value="试试看" onclick="CaptureMouseEvent()">
<div id="BoxDIV" style="position:absolute;left:0;top:0;width:0;height:0;visibility:hidden;">
<table bordercolor='red' border=1 width="100%" height="100%"  cellspacing="0" style="border-collapse: collapse" cellpadding="0"><tr><td></td></tr></table>
</div>
</BODY>
</HTML>