C# Google Map API V3:如何在CS页面中向标记添加或显示InfoWindow()
这是我的第一个问题,希望格式正确: 我试图在ASP.NET,C中构建应用程序,从SQL中检索坐标Lat,Lon并将其显示为标记,但当我尝试向这些标记添加infowindow时,地图不会显示 我需要向每个标记显示infowindw这是我在CS页面中的代码: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
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: " + (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,如果您喜欢,我将不胜感激