在Google地图上创建多个标记点在C#对象的Web应用程序中

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Google地图上创建多个标记点在C#对象的Web应用程序中相关的知识,希望对你有一定的参考价值。

我有一个带有C#代码的Web应用程序,它使用long和lat创建一个对象列表。我想在Google地图上使用javascript为他们创建标记点。我目前有这个代码:

  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循环。我试过删除''周围的',这会产生一个错误说

“在目前的情况下,我不存在。”

我看过这些帖子: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

答案

你正在混淆javascript for code in behind / C#中的数据。它不起作用。首先,您要将标记数据放在javascript数组上。然后在没有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>

以上是关于在Google地图上创建多个标记点在C#对象的Web应用程序中的主要内容,如果未能解决你的问题,请参考以下文章

如何循环这个 PL/SQL 语句,以便它在我的 Google 地图上绘制多个标记?

使用Google地图地理位置标记多个位置

如何像优步一样在 Google 地图上添加 3d 对象作为标记

由于标记对象,Google 地图无法加载

如何在 Android 上的 Google 地图上的标记旁边显示标签?

google maps js v3 api教程 -- 在地图上添加标记