2012-02-27 2 views
0

Im пытается объединить 2 функции для Gmap3 ниже (хотя демо-Auto Fit в ссылке появляется не работать, когда я добавить параметр в моей локальной демо-он отлично работает):Использовать Auto Fit с тегами для Gmap3?

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

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

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

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

ответ

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/

+0

Чтобы остановить масштаб по умолчанию на странице загрузки закомментируйте эти строки: // центр: [46.578498,2.457275], // zoom: 5 – Evans

Смежные вопросы