如何通过API调用删除Bing消除歧义对话框?

时间:2010-05-14 23:22:05

标签: bing-maps bing bing-api

我正在将bing地图集成到网页中。我正在调用我的VEMap选项的GetDirections()方法。当我调用VEMap.GetDirections()时,将VERouteOptions.ShowDisambiguation属性设置为true。所以有时我会得到以下对话框:

'Select A Location' Dialog http://img249.imageshack.us/img249/6153/bingdisambiguationdialo.png

问题是有时用户会在我的表单中输入第二组方向,并且对话框仍然存在。我已完成以下操作来纠正它:

    // In case the disambiguation dialog a.k.a "" is present from a previous direction search
    $('#myMap_veplacelistpanel').hide();

它似乎有效,但感觉就像是次优的方法。有没有更好的方法呢?

更新:我原来是在删除对话框。这导致了问题所以我现在只是隐藏它,这解决了它产生的问题。由于我还没有接受我的自我回答,我正在改变我改变问题的问题以反映它。

2 个答案:

答案 0 :(得分:2)

而不是使用CSS隐藏div,您可以进行以下调用以禁用对话框:

map.ShowDisambiguationDialog(假);

这应该可以解决你的问题。

您还可以修改map.Find参数以禁用该对话框:

map.Find(what,where,type [VEFindType.Business],layer [base map],startIndex [0],numberOfResults [10],showResults [true],createResults [true],useDefaultDisambiguation [true],setBestMapView [true],回调)

例如:map.Find(null,searchstr,null,null,null,null,false,null,false,false,AddPin);

来源:http://msdn.microsoft.com/en-us/library/bb545005.aspx

答案 1 :(得分:0)

我之前的方法存在问题。您需要隐藏消歧对话框,而不是删除它,否则如果您第二次输入不完整的地址,则会出现javascript错误。显然,每次输入不完整的地址时都不会重新生成对话框,其内容只是替换。