0

我正在尝试将谷歌地图结果映射到缓存。问题在于数据变量在第一次搜索时始终未定义。它只会在第二次搜索后才有结果(使用相同的术语)。任何人都可以检查什么问题?

 if (!(me.data = me.googleSearchCache[ location ])) {
                var geocoderRequest = {
                    address: location
                }
                geocoder.geocode(geocoderRequest, function(results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        me.googleSearchCache[ location ]  = $.map(results, function(loc) {
                            return {
                                value : loc.formatted_address,
                                //bounds : loc.geometry.bounds,
                                lat : loc.geometry.location.lat(),
                                lng : loc.geometry.location.lng()
                            };
                        });
                    }
                 });
            }
            data = me.googleSearchCache[ location ];
            debug(data);
4

1 回答 1

0

谷歌地图地理编码请求是异步的,因此在您设置数据变量时结果不可用。它只会在地理编码请求的回调中立即可用。要查看,请在回调中执行 console.log。

于 2012-09-05T12:26:35.173 回答