1

这是我的第一个问题。我个人觉得这个网站很棒,帮了我很多次:)

现在我有一个未解决的问题:P

我正在使用谷歌地图 API 开发一个网站。预计将来我的标记会太多,所以我想了2种方法来解决它:

  1. 每次有人点击地图时添加一个事件,更新通过 PHP 文件显示的标记(从 Javascript 异步调用文件)
  2. 添加文件集群(按照此步骤http://www.svennerberg.com/2009/01/handling-large-amounts-of-markers-in-google-maps/

我试着做他们两个,我都有问题

  1. 我不知道如何从 Javascript 调用 PHP 文件来更新我地图上的标记
  2. 如果我使用markerclusterer,它可以正常工作,但是当我按下单个标记时我无法打开html窗口

      for(var i = 0; i < 50; i += 0.1) {
           var marker = new GMarker(new GLatLng(59.0 + i, 13.80 + i));
           markers.push(marker);
        }
    

这是我用于将标记推入数组的代码,因此我无法添加事件,好吧,我可以但仅适用于最后一个。

任何想法?

提前致谢!!!

4

1 回答 1

0

尝试这样的方法来获取单击时单个标记的内容。您只需要将标记添加到集群中就可以了。

function load_content(marker, id){
    $.ajax({
        url: '/map/getMarkerWindow/' + id,
        success: function(data){
            infowindow.setContent(data);
            infowindow.open(map, marker);
        }
    });
}

for(var i = 0; i < 50; i += 0.1) {
       var marker = new GMarker(new GLatLng(59.0 + i, 13.80 + i));

        marker = new google.maps.Marker({
            position: new google.maps.LatLng(59.0 + i, 13.80 + i),
            clickable: true,
            id:i
        });

        google.maps.event.addListener(marker, "click", function() {
            infowindow.close();
            load_content(this, this.id);
        });

       markers.push(marker);
    }
于 2012-07-11T07:20:35.267 回答