【问题标题】:Map google maps results jquery地图 google maps 结果 jquery
【发布时间】:2012-09-05 11:52:42
【问题描述】:

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

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

【问题讨论】:

    标签: jquery maps


    【解决方案1】:

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

    【讨论】:

    • 是的,我正在尝试一个回调函数,例如:me.googleSearchCache[ location ] = data; me.processLocation(数据);
    • 是的,但是当数据尚不可用时,您会尝试在方法调用之后直接访问该值。
    猜你喜欢
    • 2012-02-16
    • 1970-01-01
    • 2014-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多