Javascript 从C#对象在Web应用程序中的Google Maps上创建多个标记点
我有一个带有C#代码的Web应用程序,它可以创建一个对象列表,其中包含long和lat。然后我想使用Javascript在Google地图上为它们创建标记点。我目前有以下代码:Javascript 从C#对象在Web应用程序中的Google Maps上创建多个标记点,javascript,c#,asp.net,google-maps,webforms,Javascript,C#,Asp.net,Google Maps,Webforms,我有一个带有C#代码的Web应用程序,它可以创建一个对象列表,其中包含long和lat。然后我想使用Javascript在Google地图上为它们创建标记点。我目前有以下代码: var marker; for (var i = 0; i < ('<%= Buses.Count %>' - 1); i++) { marker = new google.maps.Marker({ position: new google.maps.LatLng(
var marker;
for (var i = 0; i < ('<%= Buses.Count %>' - 1); i++) {
marker = new google.maps.Marker({
position: new google.maps.LatLng('<%= Buses['i'].latitude %>', '<%= Buses['i'].longitude %>'),
map: map
});
}
var标记;
对于(变量i=0;i<(''-1);i++){
marker=新的google.maps.marker({
位置:新的google.maps.LatLng('',''),
地图:地图
});
}
这不起作用,我相信错误在于我引用“I”来表示要使用列表中的哪个对象
如果我在没有for循环的情况下手动设置标记点,并将['I']更改为[0],则将放置标记。但是,由于项目数量不断变化,达到100个,我需要使用for循环。我已尝试删除我周围的“”,这将生成一个错误
“我在当前上下文中不存在。”
我看过这些帖子:
然而,所有这些都使用JavaScript内部的位置。我的对象作为自定义对象包含在C#代码中,定义如下:
public static List<Bus> Buses = new List<Bus>();
公共静态列表总线=新列表();
这是我的C#代码全文:
您将javascript与代码隐藏/C#中的数据混合在一起。它不起作用。 首先,必须将标记数据放在javascript数组中。然后在不使用webforms标记的情况下创建for 将类似的内容放在页面代码后面(C#)
公共静态字符串getBusesJson()
{
var总线=新列表();
添加(新总线(){纬度=10,经度=20});
添加(新总线(){纬度=15,经度=30});
添加(新总线(){纬度=5,经度=40});
返回JsonConvert.SerializeObject(总线);
}
将此内容放在您的aspx标题上:
<script type="text/javascript">
var points = <%= WebApplication3.WebForm1.getBusesJson()%>;
for (var i = 0; i < points.length; i++) {
//pass points[i].latitude and points[i].longitude to google maps
}
</script>
var点=;
对于(变量i=0;i
您能告诉我这是什么意思吗?如果需要的话,我可以提供C代码。好的,再看一遍。我不得不调整你发布的内容,但主要的概念仍然存在,现在正在发挥作用。非常感谢你。
<script type="text/javascript">
var points = <%= WebApplication3.WebForm1.getBusesJson()%>;
for (var i = 0; i < points.length; i++) {
//pass points[i].latitude and points[i].longitude to google maps
}
</script>