javascript - 在来自 C# 对象的 Web 应用程序中的 Google map 上创建多个标记点

标签 javascript c# asp.net google-maps webforms

我有一个带有 C# 代码的 Web 应用程序,它创建了一个对象列表及其经度和纬度。然后我想使用 Javascript 在 Google map 上为他们创建标记点。我目前有这段代码:

  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
       });
  }

这是行不通的,我认为错误在于我引用“i”来说明要使用列表中的哪个对象。

如果我在没有 for 循环的情况下手动设置标记点并将 ['i'] 更改为 [0],它将很好地放置标记。但是,由于项目数量不断变化并达到 100,我需要使用 for 循环。我尝试删除 i 周围的 '' ,这会生成一条错误消息

"i does not exist in the current context."

我看过这些帖子: Add two marker points in google maps

Google Maps JS API v3 - Simple Multiple Marker Example

Google Maps JS API v3 - Simple Multiple Marker Example

但是,所有这些都使用 JavaScript 内部的位置。我的对象作为自定义对象包含在 C# 代码中,定义为:

public static List<Bus> Buses = new List<Bus>();

这是我的完整 C# 代码: https://pastebin.com/2M1hWjnM

最佳答案

您在代码隐藏/C# 中将 javascript 与数据混合在一起。它不起作用。 首先,您必须将标记数据放在 javascript 数组中。然后让你的 for 没有 webforms 标签 <%%>

把这样的东西放在你的页面代码后面(C#)

public static string getBusesJson()
    {
        var buses = new List<Bus>();

        buses.Add(new Bus() {latitude = 10, longitude = 20 });
        buses.Add(new Bus() { latitude = 15, longitude = 30 });
        buses.Add(new Bus() { latitude = 5, longitude = 40 });

        return JsonConvert.SerializeObject(buses);

    }

把它放在你的 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>

关于javascript - 在来自 C# 对象的 Web 应用程序中的 Google map 上创建多个标记点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47855660/

相关文章:

javascript - 用 DOMSubtreeModified 代替 MutationObserver 问题

javascript - 如何在 Angular2 应用程序中使用 MediaRecorder 对象?

javascript - 谷歌地图3重绘折线闪烁

c# - 如何将多个项目存储在一个 XML 文件中以便于解析?

c# - WCF - 设计参数决策

c# - TreeView 拖放效果不起作用

c# - grid selectedindexchange问​​题

javascript - 当另一个输入更改时强制 ngPattern 验证

asp.net - 关于 ASP.NET 中的 "runat"属性的问题?

c# - 在 Thread Local Storage/HttpContext Current Items 中存储数据