2010-05-14 39 views
0

我正在将bing地图整合到网页中。我打电话给我的VEMap选项的GetDirections()方法。并在调用VEMap.GetDirections()时将VERouteOptions.ShowDisambiguation属性设置为true。所以有时我得到下面的对话框:如何通过API调用删除Bing消歧对话框?

'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(); 

它似乎有效,但它感觉像是次优方法。有没有更好的方法来做到这一点?

更新:本来我正在删除对话框。这造成了问题,所以我现在就把它隐藏起来,解决了它造成的问题。由于我还没有接受我自己的回答,所以我改变了我改变问题的问题以反映它。

回答

0

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

2

而是然后用CSS隐藏的div,你可以进行下面的调用来禁用该对话框:

map.ShowDisambiguationDialog(假);

这应该解决您的问题。

也可以修改map.Find参数禁用对话框:

map.Find(什么,在哪里,类型[VEFindType.Business],层[底图],则startIndex [0],numberOfResults [10],showResults [true],createResults [true],useDefaultDisambiguation [true],setBestMapView [true],callback)

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

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

+0

我会核实的,如果正确的投票和标记答案。这是一个新的API调用?我错过了吗? – 2011-02-01 02:14:43