Grupowanie ikon
Jeśli chcemy żeby warstwa ikon dodawanych do mapy była grupowana, używamy
funkcji addClusteredIconsToMap.
Funkcja ma następujące argumenty:
- object_list - lista obiektów MapgoIcon
- layer_name - nazwa warstwy
- positionmap - true - pozycjonuj mapę na warstwę, false - nie zmieniaj widoku mapy
- scale_from - numer skali od której warstwa ma być widoczna
- scale_to - numer skali do której warstwa ma być widoczna
- cluster_icon - obiekt MapgoIcon reprezentujący na mapie ikonę zgrupowanych obiektów
- hide_when_move - true - chowaj warstwę przy przesuwaniu mapy, false - nie chowaj warstwy przy przesuwaniu mapy
Podobnie jak pozostałe funkcje dodające obiekty do mapy funkcja addClusteredIconsToMap zwraca obiekt utworzonej warstwy (MapgoLayer).
Tak dodana warstwa ikon jest grupowana przy każdej zmiane skali lub przesunięciu mapy (grupowane i pokazywane są tylko te ikony które są widoczne w bieżącym oknie mapy).
W tooltipie ("dymku") każdej grupującej ikony znajduje suię lista ikon zgrupowanych. Każdy
wiersz w tej liście jest tekstem pobieranym ze zmiennej cluster_descr (krótki,
do 30 znaków, opis) zdefiniowany dla każdej ikony.
Jeśli dla danej ikony nie zdefiniujemy
cluster_descr to w liście w "dymku" znajdą się współrzędne ikony.
Po kliknięciu na dany element w liście w "dymku" mapa jest centrowana na
daną ikonę a skala ustawiana na najniższą czyli 3.
//tworzymy tablicę w którą będziemy wstawiać kolejne obiekty do wyświetlenia na mapie var icons = new Array(); var icon = new MapgoIcon(); icon.lon=21.011696; icon.lat=52.23328; var icon1 = new MapgoIcon(); icon1.lon=21.015968; icon1.lat=52.231616; var icon2 = new MapgoIcon(); icon2.lon=21.011984; icon2.lat=52.23088; var icon3 = new MapgoIcon(); icon3.lon=21.00896; icon3.lat=52.232768; var icon4 = new MapgoIcon(); icon4.lon=21.010736; icon4.lat=52.235616; var icon5 = new MapgoIcon(); icon5.lon=21.019424; icon5.lat=52.23024; //podajemy krótki opis ikony w grupie icon5.cluster_descr="Szósta ikona" //dodajemy ikony do odpowiedniej tablicy icons.push(icon,icon1,icon2,icon3,icon4,icon5); //tworzymy obiekt ikony reprezentującej daną grupę var marker = new MapgoIcon(); marker.image='http://www.mapgo.pl/portal/gfx/pointer_red.png'; //dodajemy listę obiektów "icons" do mapy jako podlegające grupowaniu do warstwy "punkty", //na którą nie będziemy pozycjonować mapy //warstwa będzie widoczna w skalach 0d 3 do 20 a grupa będzie oznaczona obiektem "marker" //warstwa nie będzie ukrywana podczas przesuwania mapobject.addClusteredIconsToMap(icons,"punkty",false,3,20,marker,false);
W sytuacji gdy dodaliśmy do warstwy zgrupowanej nowe ikony (przy użyciu addIconToLayer lub addIconsToLayer) nie będą one domyślnie grupowane. Aby wymusić grupowanie używamy funkcji clusterIcons obiektu warstwy np.:
//dodajemy nowe ikony i przechowujemy tak stworzony obiekt w zmiennej "new_icons" var new_icons = mapobject.addIconsToLayer(new_object_list,"punkty",true); //wymuszamy grupowanie dodanych ikon new_icons.clusterIcons();

