如何从数据库中填充谷歌地图信息框

How to populate google maps info boxes from database?

本文关键字:谷歌地图 信息 填充 数据库      更新时间:2024-04-19

我正在尝试用几个地理点和相关的信息窗口填充谷歌地图,所有这些都存储在数据库中。我的代码编译时没有出现错误,但信息窗口的内容运行不正常。我正在使用c#和javascript。

这段代码用字符串"some words"填充每个信息窗口。我也可以用@row.Lat和/或@row.Lng替换"some words",并用数据库中的正确数字填充信息窗口。然而,当我输入@row.Description(当我想要的内容是行的名称时)时,映射不会加载,但我没有收到任何错误消息。如果我放了@row.randomStuff(一个不存在的行),那么我会得到一个错误,所以我知道@row.Description正在被读取,但没有被理解。

    @{
    var db = Database.Open("ClownDB");
    var query = "SELECT * FROM Point";
foreach (var row in db.Query(query)) {
    <text>
    var markerPosition = new google.maps.LatLng(@row.Lat, @row.Lng);
    var marker = new google.maps.Marker({
        position: markerPosition, 
        map: ClownMap, 
        clickable:true});
    marker.content = "some words";
    var InfoWindow = new google.maps.InfoWindow();
        google.maps.event.addListener(marker, 'click', function({
            InfoWindow.setContent(this.content);
            InfoWindow.open(ClownMap, this);
            });
            </text>
        }
  }        

更改行:

marker.content = "some words";

带有:

marker.content = "@row.Description";

尝试放置@在本.NET教程中指定的foreach (var row in db.Query(query)) {代码之前。应该是:

@foreach(var row in db.Query(selectQueryString)){

这里提到了将.NET数据传递给javascript的其他方法。