当前位置:  编程技术>java/j2ee

点击地图div上的按钮实现对地图数据的入库操作

    来源: 互联网  发布时间:2014-10-19

    本文导语:  在地图div上添加一个按钮,单击按钮后弹出一个弹出层,在弹出层的输入框内输入数据后点击提交按钮将数据提交至数据库。 mytest_map.jsp的代码如下: 代码如下: My OpenLayers Map #map { clear: both; position: relative; width: 1000px; heig...

在地图div上添加一个按钮,单击按钮后弹出一个弹出层,在弹出层的输入框内输入数据后点击提交按钮将数据提交至数据库。
mytest_map.jsp的代码如下:
代码如下:





My OpenLayers Map


#map {
clear: both;
position: relative;
width: 1000px;
height: 600px;
border: 1px solid black;
}

#operator {
position: absolute;
top:10px;
left:40px;
z-index: 3000;
}

#popDiv {
position: absolute;
visibility: hidden;
overflow: hidden;
border: 2px solid #AEBBCA;
background-color: #EEF1F8;
cursor: move;
padding: 1px;
z-index:4000;
}

#popTitle {
background: #9DACBF;
height: 20px;
line-height: 20px;
padding: 1px;
}

#popForm {
padding: 2px;
padding-left: 15px;
}

.title_left {
font-weight: bold;
padding-left: 5px;
float: left;
}

.title_right {
float: right;
}

#popTitle .title_right a {
color: #000;
text-decoration: none;
}

#popTitle .title_right a:hover {
text-decoration: underline;
color: #FF0000;
}




function init() {
format = 'image/png';
var bounds = new OpenLayers.Bounds(
121.120606, 28.169589,
121.871688, 28.525587
);
var options = {
controls: [],
maxExtent: bounds,
maxResolution: 0.0013726171875,
projection: "EPSG:4326",
units: 'degrees'
};
map = new OpenLayers.Map('map', options);
//基础图层,可以用一个图层组做基础图层
var baselayer = new OpenLayers.Layer.WMS(
"底图",
"http://localhost:8080/geoserver/WenLing/wms",
{
layers:'WenLing:xianjie_region',
format:format,
},
{
isBaseLayer:true,//设置本层为基底图层
yx : {'EPSG:4326' : true}
}
);

//县界
var xianjie = new OpenLayers.Layer.WMS(
"县界",
"http://localhost:8080/geoserver/WenLing/wms",
{
layers: 'WenLing:xianjie_region',
transparent:true, //设置从服务器返回的地图图像是透明的
format: format
},
{
displayInLayerSwitcher:false, //使该图层不显示在switcher中
//minScale:xxx , //只有达到一定缩放比例该图层时才显示
opacity:0.5 //设置客户端图层半透明
}
);

//水系
var waters = new OpenLayers.Layer.WMS(
"水系", "http://localhost:8080/geoserver/WenLing/wms",
{
layers: 'WenLing:shuixi_region',
transparent:true,
format: format
},
{
opacity:1 //设置客户端图层不透明
}
);

//岛屿
var islands = new OpenLayers.Layer.WMS(
"岛", "http://localhost:8080/geoserver/WenLing/wms",
{
layers: 'WenLing:dao_region',
transparent:true,
format: format
},
{
opacity:0.5
}
);

//铁路
var tielu = new OpenLayers.Layer.WMS(
"铁路", "http://localhost:8080/geoserver/WenLing/wms",
{
layers: 'WenLing:tielu_polyline',
transparent:true,
format: format
},
{
transitionEffect:"resize", //使该图层放大或缩小时产生调整大小的动画
opacity:0.5
}
);

//县
var xian = new OpenLayers.Layer.WMS(
"县", "http://localhost:8080/geoserver/WenLing/wms",
{
layers: 'WenLing:xian_point',
transparent:true,
format: format
},
{
//minScale:xxx , //只有达到一定缩放比例该图层时才显示
opacity:0.5
}
);

//变电站
biandianzhan = new OpenLayers.Layer.WMS(
"变电站", "http://localhost:8080/geoserver/WenLing/wms",
{
layers: 'WenLing:biandianzhan_point',
transparent:true,
format: format
},
{
opacity:0.5
}
);

guangxianwang = new OpenLayers.Layer.WMS(
"光纤网", "http://localhost:8080/geoserver/WenLing/wms",
{
layers: 'WenLing:guangxianwang_polyline',
transparent:true,
format: format
},
{
transitionEffect:"resize", //使该图层放大或缩小时产生调整大小的动画
opacity:0.5
}
);

map.addLayers([baselayer, xianjie, waters, islands, tielu, xian, biandianzhan, guangxianwang]);

map.setCenter(map.getCenter());//设置地图中心点
map.addControl(new OpenLayers.Control.PanZoomBar({
position: new OpenLayers.Pixel(2, 15)
}));
map.addControl(new OpenLayers.Control.Navigation());
map.addControl(new OpenLayers.Control.LayerSwitcher());
map.addControl(new OpenLayers.Control.Scale($('scale')));
map.addControl(new OpenLayers.Control.MousePosition());
map.zoomToExtent(bounds);

if (!map.getCenter()) {
map.zoomToMaxExtent();
}

}

function showPopup() {//弹出层
var objDiv = document.getElementById("popDiv");
objDiv.style.top = "50px";//设置弹出层距离上边界的距离
objDiv.style.left = "200px";//设置弹出层距离左边界的距离
objDiv.style.width = "300px";//设置弹出层的宽度
objDiv.style.height = "220px";//设置弹出层的高度
//objDiv.style.display = "block";
objDiv.style.visibility = "visible";
}
function hidePopup() {//关闭层
var objDiv = document.getElementById("popDiv");
objDiv.style.visibility = "hidden";
}










修改操作
关闭




      ID :

名    称 :

电压等级 :

经    度 :

纬    度 :


     
     
  






/*-------------------------鼠标左键拖动---------------------*/
/*--------当不需要实现此功能时,可以将这一部分代码删除------------*/
var objDiv = document.getElementById("popDiv");
var isIE = document.all ? true : false;//判断浏览器类型
document.onmousedown = function(evnt) {//当鼠标左键按下后执行此函数
var evnt = evnt ? evnt : event;
if (evnt.button == (document.all ? 1 : 0)) {
mouseD = true;//mouseD为鼠标左键状态标志,为true时表示左键被按下
}
}

objDiv.onmousedown = function(evnt) {
objDrag = this;//objDrag为拖动的对象
var evnt = evnt ? evnt : event;
if (evnt.button == (document.all ? 1 : 0)) {
mx = evnt.clientX;
my = evnt.clientY;
objDiv.style.left = objDiv.offsetLeft + "px";
objDiv.style.top = objDiv.offsetTop + "px";
if (isIE) {
objDiv.setCapture();
//objDiv.filters.alpha.opacity = 50;//当鼠标按下后透明度改变
} else {
window.captureEvents(Event.MOUSEMOVE);//捕获鼠标拖动事件
//objDiv.style.opacity = 0.5;//当鼠标按下后透明度改变
}
}
}
document.onmouseup = function() {
mouseD = false;//左键松开
objDrag = "";
if (isIE) {
objDiv.releaseCapture();
//objDiv.filters.alpha.opacity = 100;//当鼠标左键松开后透明度改变
} else {
window.releaseEvents(objDiv.MOUSEMOVE);//释放鼠标拖动事件
//objDiv.style.opacity = 1;//当鼠标左键松开后透明度改变
}
}

document.onmousemove = function(evnt) {
var evnt = evnt ? evnt : event;
if (mouseD == true && objDrag) {
var mrx = evnt.clientX - mx;
var mry = evnt.clientY - my;
objDiv.style.left = parseInt(objDiv.style.left) + mrx + "px";
objDiv.style.top = parseInt(objDiv.style.top) + mry + "px";
mx = evnt.clientX;
my = evnt.clientY;
}
}





在浏览器输入:http://localhost:8080/myapp/mytestMap.html
访问到mytestMap.jsp页面,单击左上角的“操作”按钮,结果如下:
 
在输入框中输入测试数据,点击提交,将会提交至insert_map.jsp页面,并在insert_map.jsp页面上显示出数据库中所有的点(包括刚刚添加的这个点),效果如下图:
 
再次在浏览器中访问地图页面,可以看到地图上已经多出了刚刚添加的那个点,如下图:
 
至此,基本操作算是完成。

后续需要做的工作有:
1,使点击提交后仍然显示在当前页面,且对地图进行刷新。
2,完善delete功能、修改功能
3,点击“操作”按钮后可以选择添加、删除或修改。

    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 点击按钮 倒计时60秒方可再次点击发送的Js代码
  • jQuery点击按钮后用禁用按钮并显示[正在处理...]的实现代码
  • 在java applet中如何关闭IE窗口呢?比如说在上面放个按钮,点击按钮就可以把IE窗口关闭掉。如何实现呢?
  • 请告知winamp中:系统如何知道鼠标点击的部位为播放按钮(消息机制)?
  • jsp中如何捕捉用户点击停止按钮
  • jquery 点击按钮弹出层 点击空白处隐藏层的实现代码
  • 如何实现点击一个按钮,在文本框中显示?
  • JSP for循环中判断点击的是哪个按钮
  • 问一个CSDN发送留言点击浏览器后退按钮出现的问题!
  • Repeater中添加按钮实现点击按钮获取某一行数据的方法
  • 我用asp.net做一个聊天室,要求在一个帧里点击按钮,立即刷新另外一帧,怎么做?
  • C#键盘输入回车键实现点击按钮效果的方法
  • JQuery实现动态表格点击按钮表格增加一行
  • 在 tab widget中,点击add按钮新增数据后,如何将反选光标定位在该选项上?????
  • jsp 如何实现 IE文件菜单中‘另存为’的功能。简单的说就是在网页中加个按钮,点击之后可以把本页的页面另存为txt/html文件。在线等待,
  • Jquery 点击按钮自动高亮实现原理及代码
  • (很急)谢谢!我想问一下调用一个对话框的命令语句,比方说我已建立了一个Applet2,接下来该如何在Applet中能点击一个按钮来打开这个Apple
  • 我写的程序有点问题,谁能帮我看看?(点击applet按钮,弹出一个窗口)
  • 我在JSP页面中调用一段显示打印对话框的Java程序,可是点击“打印”按钮后什么都不显示,请大伙帮忙指点一下!
  • 如何判断点击了哪个按钮?
  • 如何实现点击JDialog右上方的X时,出现YESNO选择对话框,当点击YES时关闭JDialog,点击NO时不关闭
  • jQuery如何实现点击页面获得当前点击元素的id或其他信息
  • 关于session(我停了一会儿没动网页,再在点击网页链接时,session丢失,然后点击IE的刷新,session又有了)这是怎么回事。
  • 对用户点击某个链接进行计数,如何实现?
  • 为什么QPushButton需要点击两次才响应?
  • 点击一链接。。。。。。
  • 如何响应JTREE中的节点点击事件??
  • 在QT中怎样能够让窗体关闭当鼠标在窗体外点击
  • HTML教程 iis7站长之家
  • 使用JS或jQuery模拟鼠标点击a标签事件代码
  • 点击表单提交时出现jQuery没有权限的解决方法


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3