Gmap第二次没有刷新形式

时间:2013-02-06 11:17:07

标签: jquery google-maps cordova jquery-mobile google-maps-markers

我正在使用Google gmap API在我的Phonegap应用中显示Google地图。 gmap工作正常。

但是,我的要求是根据用户选择更改标记,首先我显示所有标记。从第二次开始,我需要按用户选择显示。我正在使用Json数据

以下是Gmap代码:

function showMap(data) {
    $('#map_canvas').gmap(
                        { 'center' : initialLocation,
                          'zoom' : 12,
                          'mapTypeControl' : false,
                          'navigationControl' : false,
                          'streetViewControl' : false
                        })
                        .bind('init', function(evt, map) {
                            if (data.Response.ShopListInfo instanceof Array) {
                                 $.each( data.Response.ShopListInfo, function(i, marker) {
                                              latitude = marker.Latitude;
                                              longitude = marker.Longitude; 
                                              displayMarkers(latitude, longitude, marker);
                                 });
                            }else{
                                latitude = data.Response.ShopListInfo.Latitude;
                                longitude = data.Response.ShopListInfo.Longitude; 
                                displayMarkers(latitude, longitude, data.Response.ShopListInfo);
                            }
                }); 
}

问题来自第二次调用Onwards“bind”方法没有执行。

1 个答案:

答案 0 :(得分:0)

我们只需要从第二次开始清除标记,并单独调用addMarkers方法,如下所示。

$('#map_canvas').gmap('clear', 'markers');
                if (data.Response.ShopListInfo instanceof Array) {
                    $.each( data.Response.ShopListInfo, function(i, marker) {
                          latitude = marker.Latitude;
                             longitude = marker.Longitude; 
                             displayMarkers(latitude, longitude, marker);
                    });
                }else{
                    latitude = data.Response.ShopListInfo.Latitude;
                    longitude = data.Response.ShopListInfo.Longitude; 
                    displayMarkers(latitude, longitude, data.Response.ShopListInfo);
                }