网上很多都是通过百度地图API调用JS的例子,并没有真正的数据库交互哦~所以我做了一个与sql server数据库交互的例子。数据库用的是sql server,大家看着自行建立数据库哦~~
首先,我们建立一个default.aspx
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %> 2 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4 5 <html xmlns="http://www.w3.org/1999/xhtml" > 6 <head runat="server"> 7 <title></title> 8 <style type ="text/css" > 9 table { 10 border: solid 1px #999; 11 } 12 13 </style> 14 <style type="text/css"> 15 html,body{margin:0;padding:0;} 16 .iw_poi_title {color:#CC5522;font-size:14px;font-weight:bold;overflow:hidden;padding-right:13px;white-space:nowrap} 17 .iw_poi_content {font:12px arial,sans-serif;overflow:visible;padding-top:4px;white-space:-moz-pre-wrap;word-wrap:break-word} 18 .auto-style1 { 19 width: 87px; 20 height: 27px; 21 } 22 .auto-style2 { 23 width: 417px; 24 height: 27px; 25 } 26 </style> 27 <script type="text/javascript" src="http://api.map.baidu.com/api?key=46ce9d0614bf7aefe0ba562f8cf8719&v=1.1&services=true"></script> 28 29 <script type ="text/javascript" > 30 function getAddr() 31 { 32 var map=document.getElementById ("dituContent"); 33 if(map.style.display=="none") 34 { 35 map.style.display="block"; 36 initMap(); 37 } 38 if(map.style.display!="none") 39 { 40 initMap(); 41 } 42 43 } 44 </script> 45 </head> 46 <body style ="font-size :12px"> 47 <form id="form1" runat="server"> 48 <div> 49 经:<asp:TextBox ID="lng" runat="server" style="" Width="108px" ></asp:TextBox> 50 纬:<asp:TextBox ID="lat" runat="server" Width="102px" ></asp:TextBox> 51 <div style =" float :left "> 52 <table style="width: 600px; height: 327px; "> 53 <tr> 54 <td style="width: 87px"> 55 名称:</td> 56 <td style="width: 417px"> 57 <asp:TextBox ID="name" runat="server"></asp:TextBox> 58 <asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="name" 59 ErrorMessage="公司名称不能为空!" Font-Size="Small"></asp:RequiredFieldValidator></td> 60 61 </tr> 62 <tr> 63 <td class="auto-style1"> 64 城市:</td> 65 <td class="auto-style2"> 66 <asp:DropDownList ID="city" runat="server"> 67 <asp:ListItem Value ="北京">北京</asp:ListItem> 68 <asp:ListItem Value ="郑州">郑州</asp:ListItem> 69 <asp:ListItem Value ="洛阳">洛阳</asp:ListItem> 70 <asp:ListItem Value ="安阳">安阳</asp:ListItem> 71 </asp:DropDownList> 72 </td> 73 </tr> 74 <tr> 75 <td style="width: 87px"> 76 详细地址:</td> 77 <td style="width: 417px"> 78 <asp:TextBox ID="address" runat="server" Width="299px"></asp:TextBox> 79 <input id="Button2" type="button" value="在地图上标注地址" onclick ="getAddr()" /></td> 80 </tr> 81 82 <tr> 83 <td style="width: 87px; height: 30px;"> 84 电话:</td> 85 <td style="width: 417px; height: 30px;"> 86 <asp:TextBox ID="phone" runat="server"></asp:TextBox> 87 <asp:RequiredFieldValidator ID="RequiredFieldValidator4" runat="server" ControlToValidate="phone" 88 ErrorMessage="电话不能为空!" Font-Size="Small"></asp:RequiredFieldValidator> 89 </td> 90 </tr> 91 <tr><td colspan ="2" style="height: 38px"> 92 93 <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="提交" Width="113px" /> 94 <asp:Button ID="Button3" runat="server" OnClick="Button3_Click" Text="清空" Width="118px" /></td></tr> 95 </table> 96 97 <br /> 98 <br /> 99 100 <table > 101 <%for (int i = 0; i < tb.Rows.Count; i++) 102 { %> 103 <tr> 104 <td><%=tb.Rows[i][1].ToString() %></td> 105 <td><a href ="map.aspx?id=<%=tb.Rows[i][0].ToString() %>" >查看地图</a></td> 106 </tr> 107 <%} %> 108 </table> 109 </div> 110 <div style="width:559px;height:448px;border:#ccc solid 1px; margin-left :20px; float :left ; display :none " id="dituContent"></div> 111 </div> 112 </form> 113 </body> 114 <script type="text/javascript"> 115 //创建和初始化地图函数: 116 function initMap(){ 117 createMap();//创建地图 118 setMapEvent();//设置地图事件 119 120 121 122 var gc = new BMap.Geocoder(); 123 map.addEventListener("click", function(e){ 124 var pt = e.point; 125 gc.getLocation(pt, function(rs){ 126 var addComp = rs.addressComponents; 127 var addr; 128 addr=addComp.city + addComp.district + addComp.street + addComp.streetNumber; 129 map.addOverlay(new BMap.Marker(pt)); 130 document.getElementById ("address").value=addr; 131 document.getElementById ("lng").value=pt.lng; 132 document.getElementById ("lat").value=pt.lat; 133 134 }); 135 }); 136 137 } 138 139 //创建地图函数: 140 function createMap(){ 141 var map = new BMap.Map("dituContent");//在百度地图容器中创建一个地图 142 // 创建地址解析器实例 143 var myGeo = new BMap.Geocoder(); 144 // 将地址解析结果显示在地图上,并调整地图视野 145 myGeo.getPoint(document.getElementById("city").value, function(point){ 146 if (point) { 147 map.centerAndZoom(point, 14); 148 149 } 150 }, document.getElementById ("city").value); 151 window.map = map;//将map变量存储在全局 152 } 153 154 //地图事件设置函数: 155 function setMapEvent(){ 156 map.enableDragging();//启用地图拖拽事件,默认启用(可不写) 157 map.enableScrollWheelZoom();//启用地图滚轮放大缩小 158 map.enableDoubleClickZoom();//启用鼠标双击放大,默认启用(可不写) 159 map.enableKeyboard();//启用键盘上下左右键移动地图 160 161 } 162 163 164 initMap();//创建和初始化地图 165 </script> 166 </html>
View Code
default.aspx.cs我们在里面这样写:
1 using System; 2 using System.Data; 3 using System.Configuration; 4 using System.Web; 5 using System.Web.Security; 6 using System.Web.UI; 7 using System.Web.UI.WebControls; 8 using System.Web.UI.WebControls.WebParts; 9 using System.Web.UI.HtmlControls; 10 public partial class _Default : System.Web.UI.Page 11 { 12 public DataTable tb = new DataTable(); 13 protected void Page_Load(object sender, EventArgs e) 14 { 15 if (!IsPostBack) 16 { 17 Bind(); 18 } 19 20 } 21 /// <summary> 22 /// 插入 23 /// </summary> 24 /// <param name="sender"></param> 25 /// <param name="e"></param> 26 protected void Button1_Click(object sender, EventArgs e) 27 { 28 29 string strSql = "insert into Company values('" + Guid.NewGuid().ToString() + "','" + this.name.Text.Trim() + "','" + this.address.Text.Trim() + "','"+this.phone .Text .Trim ()+"','" + city.SelectedValue.ToString() +"','"+lng.Text .Trim ()+"','"+lat.Text .Trim ()+"')"; 30 try 31 { 32 DBHelper.ExecuteSql(strSql); 33 RegisterStartupScript("", "<script>alert('提交成功')</script>"); 34 } 35 catch (Exception ex) 36 { 37 Response.Write(ex.Message ); 38 } 39 Bind(); 40 } 41 public void Bind() 42 { 43 string strSql = "select * from Company"; 44 45 tb=DBHelper.Query(strSql).Tables[0]; 46 } 47 protected void Button3_Click(object sender, EventArgs e) 48 { 49 this.name.Text = ""; 50 this.address.Text = ""; 51 this.phone.Text = ""; 52 Bind(); 53 } 54 55 56 }
View Code
可以看到,我们在default.aspx中调用了map.aspx,因此以下代码如下:
1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="map.aspx.cs" Inherits="map" %>
2
3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
4
5 <html xmlns="http://www.w3.org/1999/xhtml">
6 <head>
7 <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
8 <meta name="keywords" content="百度地图,百度地图API,百度地图自定义工具,百度地图所见即所得工具" />
9 <meta name="description" content="百度地图API自定义地图,帮助用户在可视化操作下生成百度地图" />
10 <title>百度地图API自定义地图</title>
11 <!--引用百度地图API-->
12 <style type="text/css">
13 html,body{margin:0;padding:0;}
14 .iw_poi_title {color:#CC5522;font-size