1

我使用 V3 js API 创建了一个谷歌地图,在地图内我显示了多个标记。当我单击标记时,它会执行 ajax 调用并在信息窗口中显示结果。我在地图外添加了一个外部链接,点击它会在地图旁边显示相应的标记结果。我已经使用下面的代码来完成功能..

$('#marker_link').click(function () {
    var longitude = $(this).find("#longitude").val();
    var latitude = $(this).find("#latitude").val();
    var index = $(this).find("#index").val();

    google.maps.event.trigger(gmarkers[index], "click", {
        latLng: new google.maps.LatLng(latitude, longitude)
    });
});

此代码正确提取标记数据并显示在窗口中。但当时地图一片空白。我们怎样才能解决它。我们如何将地图与商店结果保持一致。

这里 gmarkers[ ] 是一个全局数组,我在其中保存在渲染地图期间创建的所有标记。

我第一次在地图中显示标记时使用了以下代码。

var marker = new google.maps.Marker({
                                    map: map,
                                    position: new google.maps.LatLng(pLat, pLong),
                                });
                                gmarkers.push(marker);

                                google.maps.event.addListener(marker, 'click', function (event) {


                                    var dataString = 'store_id=' + {{ store.store_id }}
                                    $.ajax({  
                                        type: "GET",  
                                        url: GET_STORE_DATA,  
                                        data: dataString, 
                                        success: function(res) { 
                                            if(res != '') {
                                                var contentString = res;
                                                var infoWindow = new google.maps.InfoWindow({ content: contentString });

                                                infoWindow.setPosition(event.latLng);
                                                infoWindow.open(map);
                                                google.maps.event.addListener(map, 'click', function() {
                                                    infoWindow.close();
                                                });
                                            } else {
                                                alert('No data found')
                                            }
                                        }  
                                    });
                                });
4

0 回答 0