对Gmap3使用自动适合标签?

时间:2012-02-27 14:08:18

标签: jquery google-maps-api-3 jquery-gmap3

我试图将下面的Gmap3的2个功能结合起来(尽管链接中的Auto Fit演示似乎不起作用,当我将参数添加到我的本地演示时,它工作正常):

http://gmap3.net/examples/tags.html

http://gmap3.net/api/auto-fit.html

所以我希望为标记可见和不可见的区域设置复选框,我希望地图在此选择后自动放大和缩小以显示页面上的所有图钉。

这是可能的,我该如何实现这一目标?谢谢

1 个答案:

答案 0 :(得分:1)

似乎自动调整不会处理已删除的项目。

但你可以自己实现这个。

对于给定的示例,此修改将执行此操作:


1

替换此行:

tmp[ ville.region ] = true;

由:

if( tmp[ ville.region ])
{
 tmp[ ville.region ].bounds.extend(new google.maps.LatLng(ville.lat,ville.lng))
}
else
{
 tmp[ ville.region ]=
  {
   bounds:new google.maps.LatLngBounds(new google.maps.LatLng(ville.lat,ville.lng)),
   checked:true
  }
}

它将为每个区域存储LatLngBounds和状态(已选中)


2

在此之后添加:

 $.each(markers, function(i, marker){
                marker.setMap( checked ? map : null);
            });

这些界限:

tmp[region].checked=checked;
var bounds=new google.maps.LatLngBounds();

$.each(tmp,function(i,o)
                      {
                        if(o.checked)
                        {
                          bounds.union(o.bounds);
                        }
                      }
                  );
map.fitBounds(bounds);

它将设置当前区域的检查状态,然后为所有可见区域计算LatLngBounds。结果将用作map.fitBounds()

的参数

演示:http://jsfiddle.net/doktormolle/nBtVB/