百度地图PAI:查询自己的数据库在页面显示,点击其中任一行在地图标注 .net

来源:互联网 发布:gps定位追踪软件 编辑:程序博客网 时间:2024/06/06 04:10

今天做一个小功能需要标注地图,用的数据库是ORacle,用asp.net写的代码,记录一下。需要的朋友只需要修改一下数据库连接字符串就可以了,绑定用的是Gridview。
下载地址:http://download.csdn.net/detail/drr789/4559240
前台

[html] view plaincopy
  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.   
  7. <head id="Head1" runat="server">  
  8. <title>测试程序</title>  
  9. <style type="text/css">  
  10. html{height:100%}  
  11. body{height:100%;margin:0px;padding:0px}  
  12. #container{height:300px;width:600px;border:1px solid blue;}  
  13. </style>  
  14. <script language="javascript" type="text/javascript">  
  15.     if (!objbeforeItem)  
  16.     {  
  17.     var objbeforeItem=null;  
  18.     var objbeforeItembackgroundColor=null;  
  19.     }  
  20.     function ItemOver(obj)  
  21.     {  
  22.     if(objbeforeItem)  
  23.     {  
  24.     objbeforeItem.style.backgroundColor = objbeforeItembackgroundColor;  
  25.     }  
  26.     objbeforeItembackgroundColor = obj.style.backgroundColor;  
  27.     objbeforeItem = obj;  
  28.     obj.style.backgroundColor = "#FF8000";  
  29.     }  
  30.        
  31. </script>  
  32. <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.3"></script>  
  33. </head>  
  34. <body>  
  35.     <div id="container"></div>  
  36.     <input type="button" id="startBtn"onclick="maker()" value="标注"/>  
  37.     <form id="form1" runat="server">  
  38.       <div>  
  39.             
  40.         <asp:GridView ID="GridView1" runat="server" AllowPaging="True" DataKeyNames="pt"  
  41.             AutoGenerateColumns="False" CellPadding="3" BackColor="White"   
  42.             BorderColor="#CCCCCC" BorderStyle="None" BorderWidth="1px"   
  43.             onrowdatabound="GridView1_RowDataBound"   
  44.             onrowcommand="GridView1_RowCommand">  
  45.             <PagerStyle BackColor="White" ForeColor="#000066" HorizontalAlign="Left" />  
  46.             <SelectedRowStyle BackColor="#669999" Font-Bold="True" ForeColor="White" />  
  47.             <HeaderStyle BackColor="#006699" Font-Bold="True" ForeColor="White" />  
  48.             <PagerSettings Visible="False" />  
  49.             <FooterStyle BackColor="White" ForeColor="#000066" />  
  50.             <RowStyle ForeColor="#000066" />  
  51.             <Columns>               
  52.                 <asp:TemplateField HeaderText="ID">  
  53.                 <ItemTemplate>  
  54.                 <%# Eval("id")%>  
  55.                 </ItemTemplate>  
  56.                 </asp:TemplateField>  
  57.                 <asp:TemplateField HeaderText="地名">  
  58.                 <ItemTemplate>  
  59.                 <%# Eval("pt")%>  
  60.                 </ItemTemplate>  
  61.                 </asp:TemplateField>   
  62.                 <asp:TemplateField HeaderText="标注">  
  63.                     <ItemTemplate>  
  64.                         <asp:Button ID="Button1" runat="server" CausesValidation="false"   
  65.                             CommandName="biaozhu" Text="标注" CommandArgument='<%#Eval("id")%>'/>  
  66.                     </ItemTemplate>  
  67.                 </asp:TemplateField>  
  68. <%--                <asp:ButtonField ButtonType="Button" HeaderText="标注" Text="标注"  CommandName="biaozhu"/>  
  69. --%>            </Columns>  
  70.         </asp:GridView>  
  71.         <asp:LinkButton ID="lnkbtnFirst" runat="server" OnClick="PagerButtonClick">首页</asp:LinkButton><asp:LinkButton ID="lnkbtnPre" runat="server" OnClick="PagerButtonClick">上一页</asp:LinkButton>  
  72.         <asp:LinkButton ID="lnkbtnNext" runat="server" OnClick="PagerButtonClick">下一页</asp:LinkButton>  
  73.         <asp:LinkButton ID="lnkbtnLast" runat="server" OnClick="PagerButtonClick">尾页</asp:LinkButton>  
  74.      <p><asp:Label ID="lblCurrentIndex" runat="server" Text="第1页"></asp:Label>  
  75.         <asp:Label ID="lblPageCount" runat="server" Text="共1页"></asp:Label>  
  76.         <asp:Label ID="lblRecordCount" runat="server" Text="记录数"></asp:Label>  
  77.         <asp:TextBox ID="txtJumpPage" runat="server" Width="24px">1</asp:TextBox>  
  78.         <asp:LinkButton ID="lnkbtnJumpPage" runat="server" OnClick="lnkbtnJumpPage_Click" >跳转</asp:LinkButton>  
  79.       </p>    
  80.         </div>  
  81.     </form>  
  82. </body>  
  83. <script type="text/javascript">  
  84. function initMap(){  
  85.     createMap();//创建地图  
  86.     setMapEvent();//设置地图事件  
  87.     addMapControl();//向地图添加控件  
  88.     }  
  89.     //创建地图函数:  
  90. function createMap(){  
  91.     var map = new BMap.Map("container");//在百度地图容器中创建一个地图  
  92.     map.centerAndZoom(new BMap.Point(118.517679,31.706102),12); //设定地图的中心点和坐标并将地图显示在地图容器中  
  93.     window.map = map;//将map变量存储在全局  
  94.     map.addControl(new BMap.NavigationControl());  //添加鱼骨控件  
  95.     map.addControl(new BMap.MapTypeControl());          //添加地图类型控件  
  96.     map.enableScrollWheelZoom();  
  97.     map.enableAutoResize();  
  98.     }        
  99.     //地图事件设置函数:  
  100. function setMapEvent(){  
  101.     map.enableDragging();//启用地图拖拽事件,默认启用(可不写)  
  102.     map.enableScrollWheelZoom();//启用地图滚轮放大缩小  
  103.     map.enableDoubleClickZoom();//启用鼠标双击放大,默认启用(可不写)  
  104.     map.enableKeyboard();//启用键盘上下左右键移动地图  
  105.     }  
  106.     //地图控件添加函数:  
  107. function addMapControl(){  
  108.         //向地图中添加缩放控件  
  109.      var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE});  
  110.      map.addControl(ctrl_nav);  
  111.             //向地图中添加缩略图控件  
  112.      var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1});  
  113.      map.addControl(ctrl_ove);  
  114.             //向地图中添加比例尺控件  
  115.      var ctrl_sca = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT});  
  116.      map.addControl(ctrl_sca);  
  117.      }  
  118.  initMap();//创建和初始化地图  
  119.    
  120. function maker(the){  
  121.      map.clearOverlays();  
  122.      var point=the;   
  123.      var pointX=point.split(',');  
  124.    var marker = new BMap.Marker(new BMap.Point(pointX[0],pointX[1])); // 创建标注  
  125.    map.addOverlay(marker); // 将标注添加到地图中  
  126.      var infoWindow = new BMap.InfoWindow("欢迎光临"); // 创建信息窗口对象  
  127.      marker.addEventListener("click", function(){ this.openInfoWindow(infoWindow);});  
  128. }  
  129. </script>  
  130. </html>  

后台
[csharp] view plaincopy
  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. using System.Data.OracleClient;  
  11.   
  12. public partial class _Default : System.Web.UI.Page  
  13. {  
  14.     private double[] Longitudes = new double[1024];  
  15.     private double[] Latitudes = new double[1024];  
  16.     public string longitude = string.Empty;  
  17.     public string latitude = string.Empty;  
  18.     public string sqlid = string.Empty;  
  19.     public static int SumCount;  
  20.     private SQLHelper sqlHelper;  
  21.     protected void Page_Load(object sender, EventArgs e)  
  22.     {  
  23.         sqlHelper = new SQLHelper();  
  24.         if (!IsPostBack)  
  25.         {  
  26.             fillGridView();  
  27.         }  
  28.   
  29.     }   
  30.     //填充GridView  
  31.     protected void fillGridView()  
  32.     {  
  33.         DataSet ds = new DataSet();  
  34.         ds = GetData();  
  35.         GridView1.DataSource = ds;  
  36.         GridView1.DataKeyNames = new string[] { "pt" };  
  37.         GridView1.DataBind();  
  38.         getRefSet(ds);  
  39.   
  40.     }  
  41.     //分页  
  42.     protected void getRefSet(DataSet ds)  
  43.     {  
  44.         lblCurrentIndex.Text = "第 " + (GridView1.PageIndex + 1).ToString() + " 页";  
  45.         lblPageCount.Text = "共 " + GridView1.PageCount.ToString() + " 页";  
  46.         lblRecordCount.Text = "总共 " + ds.Tables[0].Rows.Count.ToString() + " 条";  
  47.   
  48.         if (ds.Tables[0].Rows.Count == 0)  
  49.         {  
  50.             lnkbtnFirst.Visible = false;  
  51.             lnkbtnPre.Visible = false;  
  52.             lnkbtnNext.Visible = false;  
  53.             lnkbtnLast.Visible = false;  
  54.   
  55.             lblCurrentIndex.Visible = false;  
  56.             lblPageCount.Visible = false;  
  57.             lblRecordCount.Visible = false;  
  58.         }  
  59.         else if (GridView1.PageCount == 1)  
  60.         {  
  61.             lnkbtnFirst.Visible = false;  
  62.             lnkbtnPre.Visible = false;  
  63.             lnkbtnNext.Visible = false;  
  64.             lnkbtnLast.Visible = false;  
  65.         }  
  66.         lnkbtnFirst.CommandArgument = "1";  
  67.         lnkbtnPre.CommandArgument = (GridView1.PageIndex == 0 ? "1" : GridView1.PageIndex.ToString());  
  68.         lnkbtnNext.CommandArgument = (GridView1.PageCount == 1 ? GridView1.PageCount.ToString() : (GridView1.PageIndex + 2).ToString());  
  69.         lnkbtnLast.CommandArgument = GridView1.PageCount.ToString();  
  70.     }  
  71.     //第几页  
  72.     protected void lnkbtnJumpPage_Click(object sender, EventArgs e)  
  73.     {  
  74.         GridView1.PageIndex = int.Parse(txtJumpPage.Text) - 1;  
  75.         lblCurrentIndex.Text = "第 " + (GridView1.PageIndex + 1).ToString() + " 页";  
  76.         fillGridView();  
  77.         GridView1.DataBind();  
  78.   
  79.     }  
  80.     protected void PagerButtonClick(object sender, EventArgs e)  
  81.     {  
  82.         GridView1.PageIndex = Convert.ToInt32(((LinkButton)sender).CommandArgument) - 1;  
  83.         fillGridView();  
  84.         GridView1.DataBind();  
  85.   
  86.     }    
  87.     // 转换SQL查询结果为DataSet  
  88.     private DataSet GetData()  
  89.     {  
  90.   
  91.         OracleConnection conn = new OracleConnection("Data Source=wgyx;user=wgyx;password=wgyx;");  
  92.         OracleCommand cmd = new OracleCommand();  
  93.         cmd.Connection = conn;  
  94.         String strSql = "select id,fuid,pt from sys_organ";  
  95.         cmd.CommandText = strSql;  
  96.         cmd.CommandType = CommandType.Text;  
  97.         DataSet ds = new DataSet();  
  98.         try  
  99.         {  
  100.             conn.Open();  
  101.             OracleDataAdapter ad = new OracleDataAdapter();  
  102.             ad.SelectCommand = cmd;  
  103.             ad.Fill(ds);  
  104.   
  105.         }  
  106.         catch (Exception ex)  
  107.         {  
  108.             Response.Write("数据库错误,错误原因:" + ex.Message);  
  109.             Response.End();  
  110.         }  
  111.         finally  
  112.         {  
  113.             conn.Close();  
  114.         }  
  115.         return ds;  
  116.     }  
  117.     protected void GridView1_RowCommand(object sender, GridViewCommandEventArgs e)  
  118.     {  
  119.         if (e.CommandName == "biaozhu")  
  120.         {  
  121.             string sqlid = e.CommandArgument.ToString();//获取id    
  122.             try  
  123.             {  
  124.                 string sql = "select longitude,latitude from SYS_LL where id=" + sqlid;  
  125.                 DataSet ds = sqlHelper.getDataSet(sql);  
  126.                 int count = 0;  
  127.                 foreach (DataRow dr in ds.Tables[0].Rows)  
  128.                 {  
  129.                     Longitudes[count] = System.Double.Parse(dr["Longitude"].ToString());  
  130.                     longitude += Longitudes[count];//将读取的经纬度存储为字符串形式  
  131.   
  132.                     Latitudes[count] = System.Double.Parse(dr["Latitude"].ToString());  
  133.                     latitude += Latitudes[count];//将读取经纬度存储为字符串形式  
  134.                     count = count + 1;  
  135.                 }  
  136.             }  
  137.             catch (Exception ee)  
  138.             {  
  139.                 Response.Write(ee.Message);  
  140.             }  
  141.              ClientScript.RegisterStartupScript(ClientScript.GetType(), "myscript""<script>maker();</script>");  
  142.         }  
  143.     }  
  144.   
  145.   
  146.   
  147.     protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)  
  148.     {  
  149.         if (e.Row.RowType == DataControlRowType.DataRow)  
  150.         {  
  151.             e.Row.Attributes["onmouseover"] = "ItemOver(this)";  
  152.             int count = GridView1.Rows.Count;  
  153.             for (int i = -1; i < count; i++)  
  154.             {  
  155.                 string the = GridView1.DataKeys[e.Row.RowIndex].Value.ToString();  
  156.                 e.Row.Attributes.Add("onclick""maker('" + the + "');");  
  157.                 e.Row.Attributes.Add("style""cursor:hand");  
  158.             }  
  159.         }  
  160.     }  
  161.       
  162. }  

SDLhelper.cs

[csharp] view plaincopy
  1. using System;  
  2. using System.Data;  
  3. using System.Configuration;  
  4. using System.Linq;  
  5. using System.Web;  
  6. using System.Web.Security;  
  7. using System.Web.UI;  
  8. using System.Web.UI.HtmlControls;  
  9. using System.Web.UI.WebControls;  
  10. using System.Web.UI.WebControls.WebParts;  
  11. using System.Xml.Linq;  
  12. using System.Data.OracleClient;  
  13.   
  14. /// <summary>  
  15. ///Class1 的摘要说明  
  16. /// </summary>  
  17. public class SQLHelper  
  18. {  
  19.     public SQLHelper()  
  20.     {  
  21.         //  
  22.         //TODO: 在此处添加构造函数逻辑  
  23.         //  
  24.     }  
  25.     private static string GetConnectionString()  
  26.     {  
  27.         return "Data Source=wgyx;user=wgyx;password=wgyx;";  
  28.     }  
  29.     /// <summary>  
  30.     /// 返回查询的数据集  
  31.     /// </summary>  
  32.     /// <param name="sql"></param>  
  33.     /// <returns></returns>  
  34.     public DataSet getDataSet(String sql)  
  35.     {  
  36.         DataSet ds = new DataSet();  
  37.         OracleConnection oraConn = null;  
  38.         try  
  39.         {  
  40.             oraConn = new OracleConnection(GetConnectionString());  
  41.             oraConn.Open();  
  42.             OracleDataAdapter oraDa = new OracleDataAdapter(sql, oraConn);  
  43.             oraDa.Fill(ds);  
  44.         }  
  45.         catch  
  46.         {  
  47.             return null;  
  48.         }  
  49.         finally  
  50.         {  
  51.             oraConn.Close();  
  52.         }  
  53.         return ds;  
  54.     }  
  55.     /// <summary>  
  56.     /// OracleDataReader  
  57.     /// </summary>  
  58.     /// <param name="sql"></param>  
  59.     /// <returns></returns>  
  60.     public OracleDataReader getDataReader(String sql)  
  61.     {  
  62.   
  63.         OracleDataReader oraDr;  
  64.         OracleConnection oraConn = null;  
  65.          OracleCommand oraCmd=null;  
  66.         try  
  67.         {  
  68.             oraConn = new OracleConnection(GetConnectionString());  
  69.             oraConn.Open();  
  70.             oraCmd= new OracleCommand(sql, oraConn);  
  71.             oraDr = oraCmd.ExecuteReader();  
  72.   
  73.   
  74.         }  
  75.         catch  
  76.         {  
  77.             return null;  
  78.         }  
  79.         finally  
  80.         {  
  81.               
  82.             oraConn.Close();  
  83.               
  84.         }  
  85.         return oraDr;  
  86.     }  
  87.       
  88. }  
效果图
0 0