【问题标题】:show jSON data in google maps marker在谷歌地图标记中显示 JSON 数据
【发布时间】:2014-01-25 12:00:18
【问题描述】:

我想在我的谷歌地图中显示几个标记。每个标记都有一个包含一些信息的弹出窗口。我通过数据库获取信息。但我没有在弹出窗口中得到信息:

<div id="map-canvas"></div>

JavaScript/jQuery:

var info = "";
$(function() {
    $.getJSON("http://server:8080/getInfo", function(data) {
        $.each(data, function(i, f) {
            info = "<tr>" + "<td> Info: " + f.address + " / " + f.date + "</td>" + "</tr>";
            $(info).appendTo("#info");
        });
    });
});

var contentString2 = 
    '<div id="content">'+
        '<h2>Barcelona</h2>'+
        '<div>' +info+ '</div>'+
        '<p><a href="#contact" data-role="button" data-mini="true">Contact</a></a> '+
        '</p>'+
    '</div>';               


// marker
var parkingList = [
    ['Spain', contentString1, 41.469326, 1.489334, 1],
    ['Barcelona', contentString2, 41.353812, 2.157440, 2]
],...

现在,我有问题:

  1. 如何将 json 中的数据插入到 contentString 中?
  2. 如何创建一个变量,它包含 json 数据并且可以在整个 JavaScript 中使用,而不仅仅是在 getJSON 函数中?

【问题讨论】:

    标签: javascript jquery json google-maps google-maps-api-3


    【解决方案1】:

    1) 您可以在调用函数之前声明一个变量来提取 json 并在脚本中的任何位置使用它。请注意,只有在调用getJson 后才会赋值。

    2) 我已经展示了如何将 json 中的数据插入到 contentString 中的示例。

    var alldata,contentString = "";
    $(function() {
        $.getJSON("http://server:8080/getInfo", function(data) {
            alldata = data; //stores json
            $.each(data, function(i, f) {
                contentString += "<tr>" + "<td> Info: " + f.address + " / " + f.date + "</td>" + "</tr>";
                $(contentString).appendTo("#info");
            });
        });
    });
    

    【讨论】:

    • 我已经更改了我的代码,但它不起作用。可以看看吗?
    • @Struct 我已经在回答“请注意,只有在调用 getJson 后才会赋值。”语句var contentString2 = '&lt;div id="content"&gt;........ 在 json 返回值之前执行。如果你在getjson完成它的执行后执行它,它就会工作。
    • 我不确定如何在 getJSON 之后执行语句。我用回调试过了,但是不行。
    猜你喜欢
    • 1970-01-01
    • 2019-01-20
    • 2020-06-08
    • 1970-01-01
    • 2013-06-08
    • 1970-01-01
    • 2014-10-08
    • 2014-05-17
    相关资源
    最近更新 更多