1

我有一堆地址(字符串数组),我将它们写入页面变量并准备好geocoder.geocode({'address': address}, callback)调用每个地址。我还绘制了最初加载的地址表。并非所有这些都是“有效” *地址,因此并非所有这些都会在地图上带有标记。

我想更新表格以仅显示映射的地址,并希望能够在单击标记时突出显示表格中的相应行。我需要的是,我最初拥有的地址和标记的地址之间存在某种联系。

我希望我能够传递一个自定义标识符值,我可以传递给geocoder.geocode()它会返回results我可以在callback函数中使用的值

有任何想法吗?

* * *valid 是一些商业条件的简化术语

4

1 回答 1

2

一种方法是使用Function Closure

function my_geocoder(address) {
    geocoder.geocode( { 'address': address}, function(results, status) {

       //do something with the geocoder responce here. 
       //you also still have access to the `address` variable to do what you will. 
    });
}

...

for(....) {
    my_geocoder(address);
}

它可以在没有函数闭包的情况下完成,但这种模式很容易。(其他方法很容易被绊倒)。(如果是迂腐的,它实际上不是启用此功能的函数闭包,它的变量范围,但再次与闭包结合,避免了一些陷阱)

于 2012-04-18T17:12:45.633 回答