【问题标题】:Dynamic Actions for InfoBoxes with Bing Maps带有 Bing 地图的信息框的动态操作
【发布时间】:2013-04-04 15:56:14
【问题描述】:

我正在创建一个实现 Bing 地图控件的站点。 我已经放置了图钉,当用户点击图钉时它们会显示信息框。

我现在需要做的是向信息框添加操作。我可以使用 action: 选项静态地做到这一点。我想动态地执行此操作,因为每个站点都可以有一组不同的我想呈现给用户的操作。

我已经构建了包含操作的字符串,不幸的是信息框想要一个对象,而不是字符串,我不知道它想要哪个对象,也不知道如何将字符串变成正确的对象。

任何帮助都将不胜感激。

谢谢!

【问题讨论】:

    标签: maps bing-maps


    【解决方案1】:

    虽然您没有“setActions”,但您可以使用 Infobox 上的“setOptions”。

    infobox.setOptions(infoboxOptions);
    

    参考:http://msdn.microsoft.com/en-us/library/gg675208.aspx

    选项本身可以像这样创建,只需要操作:

    var infoboxOptions = {
        actions:[
            {label: 'test1', eventHandler: testEvent1}, 
            {label: 'test2', eventHandler: testEvent2}]};
    

    参考:http://msdn.microsoft.com/en-us/library/gg675210.aspx

    您可以随时调用它,从而向信息框添加例如更多操作。

    现在,你提到你有一个字符串?我猜你在谈论“infoboxOptions”等的JSON表示。您可以使用类似

    jQuery.parseJSON(jsonString); //if using jQuery
    

    您也可以通过编程方式执行此操作,因此可能需要一些条件逻辑:

    var myActions = [];
    
    if(A) {
        myActions.push( {label: 'test1', eventHandler: testEvent1});
    }
    if(B) {
        myActions.push( {label: 'test2', eventHandler: testEvent2});
    }
    if(C) {
        myActions.push( {label: 'test3', eventHandler: testEvent3});
    }
    infobox.setOptions({ actions: myActions});
    

    【讨论】:

    • 我实现了条件逻辑方法,效果很好。非常感谢您的帮助。
    猜你喜欢
    • 2012-09-24
    • 1970-01-01
    • 1970-01-01
    • 2016-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多