【问题标题】:Google Map, Clicking on a marker using cluster谷歌地图,点击使用集群的标记
【发布时间】:2012-06-11 08:41:58
【问题描述】:

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

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

我正在使用 Google 地图 API 开发一个网站。预计以后我的marker会太多,所以想了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);
        }
    

这是我用来将标记推入数组的代码,所以我不能添加事件,好吧,我可以但只适用于最后一个。

有什么想法吗?

提前致谢!!!

【问题讨论】:

    标签: php javascript google-maps google-maps-markers markerclusterer


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2013-03-24
      • 2023-03-20
      • 1970-01-01
      • 2016-04-03
      • 2013-01-13
      • 2012-09-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多