Использовать Auto Fit с тегами для Gmap3?

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

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

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

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

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

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/

Другие вопросы по тегам