C# Google Map API V3:如何在CS页面中向标记添加或显示InfoWindow()

C# Google Map API V3:如何在CS页面中向标记添加或显示InfoWindow(),c#,javascript,asp.net,google-maps,google-maps-api-3,C#,Javascript,Asp.net,Google Maps,Google Maps Api 3,这是我的第一个问题,希望格式正确: 我试图在ASP.NET,C中构建应用程序,从SQL中检索坐标Lat,Lon并将其显示为标记,但当我尝试向这些标记添加infowindow时,地图不会显示 我需要向每个标记显示infowindw这是我在CS页面中的代码: protected void Page_Load(object sender, EventArgs e) { string markers = GetMarkers(); Literal1.Text = @"<script

这是我的第一个问题,希望格式正确: 我试图在ASP.NET,C中构建应用程序,从SQL中检索坐标Lat,Lon并将其显示为标记,但当我尝试向这些标记添加infowindow时,地图不会显示 我需要向每个标记显示infowindw这是我在CS页面中的代码:

protected void Page_Load(object sender, EventArgs e)
{
    string markers = GetMarkers();
    Literal1.Text = @"<script type='text/javascript'>
 function initialize() {
 var mapOptions = {
 center: new google.maps.LatLng(41.43242, -89.209343),
 zoom: 5,
 mapTypeId: google.maps.MapTypeId.ROADMAP
 };
 var image = new google.maps.MarkerImage('pic/marker.png', null, null, null, new google.maps.Size(30, 42));
 var myMap = new google.maps.Map(document.getElementById('mapArea'),
 mapOptions);"


+ markers + @"}
 </script>";
}

protected string GetMarkers()
{
    string markers = "";
    using (SqlConnection con = new SqlConnection("Data Source=localhost;Initial Catalog=web1;Integrated Security=True"))
    {
        SqlCommand cmd = new SqlCommand("SELECT Lat, Lan FROM Location", con);
        con.Open();
        SqlDataReader reader = cmd.ExecuteReader();
        int i = 0;

        while (reader.Read())
        {
            i++;
            markers +=
            @"var marker" + i.ToString() + @" = new google.maps.Marker({ icon: image,
            position: new google.maps.LatLng(" + reader["Lat"].ToString() + ", " +
            reader["Lan"].ToString() + ")," +
            @"map: myMap});";
        }
    }
    return markers;
}

你的想法是对的。我使用字符串生成器,然后将Literal.Text设置为输出。此特定示例使用位于此处的MarkerCluster:

<script type="text/javascript" src="http://google-maps-utility-library-v3.googlecode.com/svn/tags/markerclusterer/1.0/src/markerclusterer.js"></script>
祝你好运

        StringBuilder sb = new StringBuilder();

        sb.Append("<script type='text/javascript'>");

        sb.Append("var mapOpts = {mapTypeId: google.maps.MapTypeId.ROADMAP};");
        sb.Append("var map = new google.maps.Map(document.getElementById(\"map\"), mapOpts);");
        sb.Append("var infoWindow = new google.maps.InfoWindow();");
        sb.Append("var markerBounds = new google.maps.LatLngBounds();");
        sb.Append("var markerArray = [];");

        sb.Append("function makeMarker(options){var pushPin = new google.maps.Marker({map:map});");
        sb.Append("pushPin.setOptions(options);");
        sb.Append("google.maps.event.addListener(pushPin, \"click\", function(){");
        sb.Append("infoWindow.setOptions(options);infoWindow.open(map, pushPin);});");
        sb.Append("markerBounds.extend(options.position);markerArray.push(pushPin);");
        sb.Append("return pushPin;}");

        sb.Append("google.maps.event.addListener(map, \"click\", function(){infoWindow.close();});");

        foreach (DataRow dr in dt.Rows)
        {
            sb.Append("makeMarker({title: \"" + (string)dr["GEO_FORMATTED_NAME"].ToString());
            sb.Append("\",position: new google.maps.LatLng(");
            sb.Append((string)dr["GEO_LAT"].ToString() + ", " + (string)dr["GEO_LONG"].ToString() + "),");
            sb.Append("content:\"<table>");
            sb.Append("<tr><td class='fls'>Title:&nbsp;&nbsp;" + (string)dr["OBJ_TITLE"].ToString() + "</td></tr>");
            sb.Append("</table>\"});");
        }

        sb.Append("map.fitBounds(markerBounds);");

        sb.Append("var mc = new MarkerClusterer(map, markerArray);");

        sb.Append("</script>");

亲爱的SQLDBA感谢您的支持,但当我尝试添加DataTable时,您将其作为对象添加到代码中。不能正确地做这件事,这是给我的错误。我只想在while语句中添加infowindo,如果您喜欢,我将不胜感激