Использовать Auto Fit с тегами для Gmap3? - PullRequest
0 голосов
/ 27 февраля 2012

Я пытаюсь объединить 2 функции для Gmap3 ниже (хотя демонстрация Auto Fit в ссылке кажется не работает, когда я добавляю параметр в локальную демонстрацию, она работает нормально):

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

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

Поэтому я хочу иметь флажки для регионов, которые делают маркеры видимыми и невидимыми, и я хочу, чтобы карта автоматически увеличивала и уменьшала масштаб после этого выбора, чтобы показать все контакты настраница.

Возможно ли это и как мне добиться этого?Спасибо

1 Ответ

1 голос
/ 27 февраля 2012

Кажется, что автофит не заботится об удаленных элементах.

Но вы можете реализовать это самостоятельно.

Для данного примера это сделают следующие модификации:


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

Для каждого региона будут храниться границы LatLng и статус (проверено)


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/

...