我有一个在asp.net中隐藏代码的脚本。它工作正常,但只显示了200个地图上的前11个标记。它引发错误,说'0'为空或不是对象为第12个地址。即使我删除了第12个地址,它仍然表现相同。数据库中的所有物理地址也是有效的。我有200个这样的地址。我正在使用google map api v3。预先感谢您的帮助。下面是我用来构建脚本的方法:谷歌地图标记不显示
private void MapScript(DataSet ds)
{
StringBuilder sb = new StringBuilder();
string itemList = string.Empty;
foreach (DataRow r in ds.Tables[0].Rows)
{
// bypass empty rows
if (r["Address"].ToString().Trim().Length == 0)
continue;
sb = sb.Append("'" + r["Address"].ToString().Trim() + "',");
}
if (sb.Length > 0)
{
itemList = sb.ToString().Substring(0, sb.ToString().Length - 1);
itemList = itemList.Replace("\n", " ");
}
//script
script.Text = @"<script type='text/javascript'>
window.onload = function() {
var temp = [" + itemList + @"];
var latlng = new google.maps.LatLng(32.802955, -96.769923);
var options = {
zoom: 10,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'), options);
var geocoder = new google.maps.Geocoder();
for (var i = 0; i < temp.length; i++) {
(function(address) {
geocoder.geocode({
'address': address
}, function(results) {
var marker = new google.maps.Marker({
map: map,
position: results[0].geometry.location,
title: address
});
});
})(temp[i]);
}
}
</script> ";
}
做任何一个地址有'''在其中?例如,“奥黑尔机场”或类似的? – AakashM 2012-03-06 17:22:52
我没有任何地址中的任何单引号。 – antar 2012-03-06 17:40:40
我们需要看到'temp'来回答这个问题。 – 2012-03-06 20:10:25