Start > CONT-EVO MAP > CONT-EVO MAP - Instrukcja on-line > CONT-EVO MAP - Budowa aplikacji w VBA > Przykłady

Przykłady

Osadzanie grafiki na mapie

Niniejszy przykład obrazuje, w jaki sposób nasza wizualizacja może być wzbogacona o dodatkowe elementy graficzne.
Posłużymy się w tym przypadku plikami w formacie .png, które zapisane są w folderze marker, pobranego archiwum.
Aplikacja oznaczy automatycznie centralne punkty województw plikami graficznymi.

Przykładowe pliki do pobrania są w dwóch wersjach:

Pobierz plik zawierający omawiane przykłady,
który nie wymaga aplikacji CONT-EVO MAP dla działania, jednak kod jest zabezpieczony hasłem.

Pobierz plik zawierający omawiane przykłady,
który wymaga aplikacji CONT-EVO MAP w wersji komercyjnej i zdefiniowania referencji dla działania, jednak kod jest otwarty.

Rozpakuj archiwum, zanim rozpoczniesz pracę.
Wszystkie przykłady są omówione na bazie pliku, który potrzebuje referencji do komercyjnej wersji CONT-EVO MAP, w którym kod źródłowy jest dostępny i można z niego korzystać w dalszej pracy z tą wersją aplikacji.

Spójrzmy na arkusz nazwany "obrazy":

Na arkuszu mamy już przygotowaną mapę województw oraz wstawione formanty formularza, do których przypisane są odpowiednie makra.
Przejdźmy do środowiska VBA przy użyciu klawiszy Lewy Alt + F11 i wyświetlmy zawartość modułu "obrazy":

Widoczne są w nim nastęujące procedury:
  • wstaw_markery_obiektow - procedura dodaje grafikę do mapy
  • usun_markery_obiektow_1 - procedura usuwa grafikę z mapy wg pierwszej metody
  • usun_markery_obiektow_2 - procedura usuwa grafikę z mapy wg drugiej metody

Zastosowano oznaczenie, które przechowuje informację, czy markery graficzne są obecne na mapie, czy też nie. Jest to komórka "C19" omawianego arkusza.
Czynności kolejno wykonywane przez aplikację zostały odpowiednio skomentowane w kodzie (jest to zielony tekst poprzedzony apostrofem).
W kolejnych liniach kodu mamy zaprezentowane w działaniu standardowe polecenia języka VBA dla Excel oraz wybranych funkcji VBA dostępnych w komercyjnej wersji CONT-EVO MAP, które omówione są w tym miejscu.

Działanie aplikacji sprowadza się do pobrania z odpowiedniej lokalizacji (folder "marker") plików graficznych i osadzenia ich na mapie, z uwzględnieniem lokalizacji obiektów, do których są one przypisane.
Każda interakcja z aplikacją jest poprzedzona poleceniem CEM.cont_evo_map_before_edit_map
oraz zakończona poleceniem CEM.cont_evo_map_after_edit_map, które odpowiednio przygotowują mapę do edycji oraz kończą tryb edycji.

Wszelkie operacje na mapie powinny rozpoczynać i kończyć się użyciem tych właśnie poleceń.

Przejdźmy do sprawdzenia działania makra z osadzoną mapą. Po naciśnięciu przycisku "Naciśnij, aby dodać markery", mapa zostanie wzbogacona o elementy graficzne:

Naciśnięcie przycisku "Usuń markery..." powoduje usunięcie grafiki z wizualizacji.

Operacje na osadzonych w aplikacji obiektach są możliwe, jeśli znamy zasady nazewnictwa i okresleń typów obiektów. Poszczególne typy obiektów mają następujące zasady tworzenia swoich nazw:
  • obiekt (typ: taki sam jak w opisie typu obiektu, czyli np. "województwo") - id obiektu z arkusza i "_obj" - czyli np. województwo dolnośląskie ma id="terc_02" - obiekt je prezentujący będzie miał więc nazwę "terc_02_obj"
  • etykieta z nazwą regionu (typ: "name label") - id obiektu z arkusza i "_name_l" - obiekt ją prezentujący będzie miał więc nazwę "terc_02_name_l"
  • etykieta liczbowa (typ: "number label") - id obiektu z arkusza i "_nl" - obiekt ją prezentujący będzie miał więc nazwę "terc_02_nl"
  • etykieta opisowa (typ: "defined label") - id obiektu z arkusza i "_dl" - obiekt ją prezentujący będzie miał więc nazwę "terc_02_dl"
  • wykres przypisany do obiektu (typ: "chart") - id obiektu z arkusza i "_ch" - obiekt go prezentujący będzie miał więc nazwę "terc_02_ch"
  • pozycja legendy (typ: "colors legend item") - określenie "number_legend_" i kolejny numer
Proszę zwrócić uwagę, iż w naszym przykładzie, podczas rejestracji obiektów, grafika zyskała swój własny typ "marker graficzny obiektu", jak i nazwy obiektów zostały nadane na bazie nazw regionów, przy czym "_obj" zostało zamienione na "marker":

Dzięki temu możemy później łatwo je odnaleźć, aby dokonać np. ich usunięcia: