地图js
<script type="text/javascript">
$(document).ready(function(){
// 地图API功能
var map = new BMap.Map("map"); // 创建Map实例
var point = new BMap.Point(118.028431, 36.812302);
map.centerAndZoom(point, 13); // 初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
map.addControl(new BMap.NavigationControl()); //添加默认缩放平移控件
map.addControl(new BMap.ScaleControl()); //添加比例尺
$.post("allmap_JDBC.jsp",{},function(result,status){
if(status!='success'){
// alert(" !");
}else{
var marker=null;
var everypoint=null;
//var infoWindow = null;
var content = null;
var opts =null;
var temp;
var obj=jQuery.parseJSON(result);
var opts = {
width : 450, // 信息窗口宽度
height: 80, // 信息窗口高度
title : "", // 信息窗口标题
enableMessage:true//设置允许信息窗发送短息
};
for(var i=0;i<obj.length;i++){
var marker = new BMap.Marker(new BMap.Point(obj[i]['jd'],obj[i]['wd'])); // 创建标注
var content = "项目名称:"+obj[i]['xmmc']+"<br/>"+"项目建设单位:"+obj[i]['jsdw'];
map.addOverlay(marker); // 将标注添加到地图中
addClickHandler(content,marker);
}
function addClickHandler(content,marker){
marker.addEventListener("click",function(e){
openInfo(content,e)}
);
}
function openInfo(content,e){
var p = e.target;
var point = new BMap.Point(p.getPosition().lng, p.getPosition().lat);
var infoWindow = new BMap.InfoWindow(content,opts); // 创建信息窗口对象
map.openInfoWindow(infoWindow,point); //开启信息窗口
}
}
});
});
</script>
<%
ArrayList<AllMap> data=new ArrayList<AllMap>();
AllMap allmap=null;
//数据库连接
Connection conn = null;
PreparedStatement ps = null;
ResultSet rs = null;
String url = "jdbc:oracle:thin:@191.168.0.222:1521:orcl";
String name = "tiank";
String pwd = "apexsoft";
String classname = "oracle.jdbc.driver.OracleDriver";
try {
Class.forName(classname);
conn = DriverManager.getConnection(url, name, pwd);
String sql = "select xm.xmmc,dw.dwmc,xm.jd,xm.wd from t_xmjbxx xm left join T_JSDWJBXX dw on dw.id=xm.jsdw";
ps = conn.prepareStatement(sql);
rs = ps.executeQuery();
while (rs.next()) {
allmap=new AllMap();
allmap.setXmmc(rs.getString(1));
allmap.setJsdw(rs.getString(2));
allmap.setJd(rs.getDouble(3));
allmap.setWd(rs.getDouble(4));
data.add(allmap);
}
//将List转化为JSON
JSONArray json=JSONArray.fromObject(data);
//设置编码
response.setCharacterEncoding("utf-8");
//写入到前台
//json.toString();
response.getWriter().write(json.toString());
conn.close();
ps.close();
rs.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
%>
<script type="text/javascript">
window.οnlοad=function(){
// 百度地图API功能
var map = new BMap.Map("allmap"); // 创建Map实例
var point = new BMap.Point(document.getElementById("jd").value, document.getElementById("wd").value);
map.centerAndZoom(point, 13); // 初始化地图,设置中心点坐标和地图级别
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
map.addControl(new BMap.NavigationControl()); //添加默认缩放平移控件
map.addControl(new BMap.ScaleControl()); //添加比例尺
var marker = new BMap.Marker(point); // 创建标注
map.addOverlay(marker);
var opts = {
width : 550, // 信息窗口宽度
height: 70, // 信息窗口高度
title :document.getElementById('xmmc').value, // 信息窗口标题
}
var content = '<div style="margin:0;line-height:20px;padding:2px;">' +'项目名称:'+document.getElementById('xmmc').value+'<br/>'+
'地址:'+document.getElementById('jsdw').value+'</div>';
var infoWindow = new BMap.InfoWindow(content, opts); // 创建信息窗口对象
marker.addEventListener("click", function(){
map.openInfoWindow(infoWindow,point); //开启信息窗口
});
}
</script>
<%
/**
数据库操作
1.接收传过来的id;
2.根据id查询数据库获取 项目名称(XMMC)、项目单位(JSDW)、经度(JD)、纬度(WD)
3.在百度地图中根据经纬度添加标注,并在标注上显示内容
*/
//获取传过来的id
int mapid=Integer.parseInt(request.getParameter("id"));
//接收数据库查询出来的值
String xmmc= null;
String jsdw= null;
double jd=0.0,wd=0.0;
//数据库连接
Connection conn=null;
PreparedStatement ps=null;
ResultSet rs=null;
String url="jdbc:oracle:thin:@191.168.0.222:1521:orcl";
String name="tiank";
String pwd="apexsoft";
String classname = "oracle.jdbc.driver.OracleDriver";
String sql="select xm.xmmc,dw.dwmc,xm.jd,xm.wd from t_xmjbxx xm left join T_JSDWJBXX dw on dw.id=xm.jsdw where xm.id=?";
try{
Class.forName(classname);
conn=DriverManager.getConnection(url,name,pwd);
ps=conn.prepareStatement(sql);
ps.setDouble(1, mapid);
rs=ps.executeQuery();
while(rs.next()){
xmmc=rs.getString(1);
jsdw=rs.getString(2);
jd=rs.getDouble(3);
wd=rs.getDouble(4);
}
conn.close();
ps.close();
rs.close();
}catch(Exception e){
System.out.println(e.getMessage());
}
out.print("<input type='hidden' id='xmmc' value=" + xmmc + ">");
out.print("<input type='hidden' id='jsdw' value=" + jsdw + ">");
out.print("<input type='hidden' id='jd' value=" + jd + ">");
out.print("<input type='hidden' id='wd' value=" + wd + ">");
%>
<input type="text" id="xmmc" value=<%=xmmc %>>
<input type="text" id="jsdw" value=<%=jsdw %>>
<input type="text" id="jd" value=<%=jd %>>
<input type="text" id="wd" value=<%=wd %>>
<div id="allmap"></div>
</body>
<script type="text/javascript" charset="UTF-8">
window.οnlοad=function(){
var btn = document.getElementById("btn");
var div = document.getElementById("newContent");
btn.onclick = function() {
document.getElementById("all_content_table").style.display="none";
var content_text=document.getElementById("xmmc").value;
var content_get =encodeURI(encodeURI(content_text));
if(content_text!=""){
div.innerHTML="";
//往left_JDBC.jsp传值
var xmlhttp;
if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp = new XMLHttpRequest();
} else {// code for IE6, IE5
xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
var xmlDoc = xmlhttp.responseText;
var data = JSON.parse(xmlDoc);
for(var i=0;i<data.length;i++){
var data_utf=encodeURI(encodeURI(data[i]));
var ul=document.createElement("p");
var li=document.createElement("a");
li.setAttribute("href","search_map.jsp?content="+data_utf);
li.setAttribute("target","mainFrame");
div.appendChild(ul);
ul.appendChild(li);
li.innerHTML=data[i];
}
}
}
xmlhttp.open("Get", "left_JDBC.jsp?content="+content_get, true);
xmlhttp.send();
//向search_map.jsp页面传值
parent.document.getElementById("mainFrame").src="search_map.jsp?content="+content_get;
}
else{
window.location.reload()
document.getElementById("all_content_table").style.display="inline";
}
}
}
</script>