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

时间:2016-04-10 17:05:22

标签: javascript c# google-maps

我正在尝试使用几个地理位置和相关信息窗口填充谷歌地图,所有这些都存储在数据库中。我的代码编译没有错误,但infowindow内容不能正常工作。我在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>
        }
  }        

2 个答案:

答案 0 :(得分:0)

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

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

提到将.NET数据传递给javascript的其他方法here

答案 1 :(得分:0)

更改行:

marker.content = "some words";

使用:

marker.content = "@row.Description";