VS2010,ASP.NET,在页面中添加javascript已经能成功显示地图,并且可以显示图标。但是,我想实现自动从数据库(sql2008)的经纬度表(动态,隔段时间有经纬度数值插入)中读取最新的经纬度,并在地图上显示。请问,如何实现呢?(马上要过年了,早点完成,回家也能安心啊!)

解决方案 »

  1.   

    以下是我的后台代码,我在地图边添加了文本框和按钮,输入订单号,查找数据库,并在地图上显示出来。但是输入订单号后没反应,空白。不知道怎么回事。
    using System;
    using System.Collections.Generic;
    using System.Data;
    using System.Data.SqlClient;
    using System.Configuration;
    using System.Linq;
    using System.Web;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Text;
    public partial class Googlemap : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {    }
        protected void Button1_Click(object sender, EventArgs e)
        {
            SqlConnection sqlcon = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServices"].ConnectionString);
            sqlcon.Open();
            //查询货物位置
            string str_addr = "";
            if (TextBox1.Text == "")
            {
                Response.Write("<script language=javascript >alert('请输入订单号!');window.navigate('./GoogleMap.aspx');</Script>");
                Response.End();
            }        else
            {
                str_addr = "SELECT Coordinate_X,Coordinate_Y FROM GPSinfo WHERE 订单号=" + TextBox1.Text;        }        SqlDataAdapter sqlda = new SqlDataAdapter(str_addr, sqlcon);
            DataSet ds = new DataSet();          //声明一个dataset对象
            sqlda.Fill(ds,"GPSinfo");
             
            StringBuilder sMark = new System.Text.StringBuilder();        Response.Clear();
            Response.Charset = "utf-8";
            Response.ContentType = "text/xml";        sMark.AppendLine(@"<?xml version='1.0' encoding='UTF-8' ?>");
            if (ds != null)
            {
                sMark.Append("<ers>");
                for (int i = 0; i < ds.Tables["GPSinfo"].Rows.Count; i++)
                {
                    string lat = "\"" + ds.Tables["GPSinfo"].Rows[i]["Coordinate_X"].ToString() + "\"";
                    string lng = "\"" + ds.Tables["GPSinfo"].Rows[i]["Coordinate_Y"].ToString() + "\"";                sMark.Append("<er lat=" + lat + " lng=" + lng + " />");
                }
                sMark.Append("</ers>");
            }
              
            Response.Write(sMark.ToString());
            HttpContext.Current.ApplicationInstance.CompleteRequest();
       
            sqlcon.Close();  
        }
    }下面是前台代码:
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Googlemap.aspx.cs" Inherits="Googlemap" %><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml">
    <head id="Head1" runat="server">
           <title>运输车辆位置图</title>  
        <%-- 加载 Google 地图 API JavaScript--%>  
      
        <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=zh-CN"></script>  
      
        <script type="text/javascript">
            var map;
            function initialize() {
                var myLatlng = new google.maps.LatLng(39.917, 116.397);
                //var myLatlng = new google.maps.LatLng(-34.397, 150.644);
                var myOptions = {
                    zoom: 12,
                    center: myLatlng,
                    mapTypeId: google.maps.MapTypeId.ROADMAP
                }
                var map = new google.maps.Map(document.getElementById("map"), myOptions);            //downloadUrl("1.xml", function (data) {
                downloadUrl("ShowMap.aspx", function (data) {
                    //alert(data);
                    var ers = data.documentElement.getElementsByTagName("er");
                    for (var i = 0; i < ers.length; i++) {
                        var latlng = new google.maps.LatLng(parseFloat(ers[i].getAttribute("lat")),
                                        parseFloat(ers[i].getAttribute("lng")));
                        var er = new google.maps.Marker({ position: latlng, map: map });
                    }
                });        function createXmlHttpRequest() {
                try {
                    if (typeof ActiveXObject != 'undefined') {
                        return new ActiveXObject('Microsoft.XMLHTTP');
                    } else if (window["XMLHttpRequest"]) {
                        return new XMLHttpRequest();
                    }
                } catch (e) {
                    changeStatus(e);
                }
                return null;
            };        function downloadUrl(url, callback) {
                var status = -1;
                var request = createXmlHttpRequest();
                if (!request) {
                    return false;
                }
                request.onreadystatechange = function () {
                    if (request.readyState == 4) {
                        try {
                            status = request.status;
                        } catch (e) {
                            // Usually indicates request timed out in FF.
                        }
                        if (status == 200) {
                            callback(request.responseXML, request.status);
                            //callback(request.responseText, request.status);
                            request.onreadystatechange = function () { };
                        }
                    }
                }
                request.open('GET', url, true);
                try {
                    request.send(null);
                } catch (e) {
                    changeStatus(e);
                }
            };
            }
       </script>  </head>
    <body onload="initialize()">
        <form id="form1" runat="server">
        <div id="map" style="width:1024px;height:600px">
        
        </div>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<asp:Label 
            ID="Label1" runat="server" Text="请输入订单号:"></asp:Label>
        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
        <asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Find" />
        </form>
    </body>
    </html>