Power BI i dane geograficzne: jak uniknąć błędów map (kody, centroidy, granice i poziomy admin)

Praktyczny przewodnik po mapach w Power BI: geokodowanie, kody ISO/TERYT, centroidy, granice i poziomy administracyjne. Naucz się unikać błędów lokalizacji oraz poprawnie modelować dane geo.
09 czerwca 2026
blog

1. Wprowadzenie: jak Power BI interpretuje dane geograficzne i skąd biorą się błędy na mapach

Mapy w Power BI potrafią wyglądać „magicznie”: wpisujesz nazwę miejsca, a wizualizacja sama układa punkty lub wypełnia obszary. Ta wygoda ma jednak cenę — Power BI musi zinterpretować Twoje dane jako lokalizacje, dopasować je do znanych encji geograficznych i dopiero wtedy narysować mapę. Jeśli w którymkolwiek kroku pojawi się niejednoznaczność, brak kontekstu lub niespójność, rezultatem będą przesunięte punkty, błędne kraje/miasta albo brak danych na mapie.

W praktyce Power BI pracuje z kilkoma typami informacji geograficznej, które zachowują się inaczej:

  • Nazwy tekstowe (np. miasto, powiat, region) — są wygodne, ale często niejednoznaczne i zależne od języka, pisowni oraz kontekstu kraju.
  • Adresy — mogą być bardzo dokładne, lecz wymagają spójnego formatu i kompletności (np. ulica + numer + kod + miejscowość).
  • Współrzędne (szer./dł. geograficzna) — zwykle dają największą kontrolę, ale wymagają poprawnych wartości i właściwego przypisania ról (które pole jest które).
  • Kody/identyfikatory (np. standardy krajowe i międzynarodowe) — pomagają jednoznacznie wskazać obszar, jeśli są poprawne i zgodne z poziomem administracyjnym, który chcesz mapować.

Źródła błędów na mapach wynikają najczęściej z tego, że Power BI musi „zgadnąć”, co dokładnie oznacza dana wartość w kolumnie oraz do jakiego obszaru ją przypisać. Typowe mechanizmy, które prowadzą do pomyłek, to:

  • Niejednoznaczność nazw — ta sama nazwa może istnieć w wielu krajach, regionach lub na różnych poziomach administracyjnych.
  • Brak kontekstu — samo „Nowa Wieś” bez kraju/województwa/powiatu może zostać przypisane losowo lub do najbardziej „popularnego” odpowiednika.
  • Mieszanie poziomów geograficznych — w jednej kolumnie mogą znaleźć się raz miasta, raz powiaty, a raz województwa, co utrudnia prawidłowe dopasowanie.
  • Różnice językowe i warianty zapisu — odmiany, znaki diakrytyczne, skróty oraz alternatywne nazwy potrafią zmienić wynik geokodowania.
  • Nieadekwatna granularność — dane punktowe (np. sklep) bywają prezentowane jak obszary albo odwrotnie, co prowadzi do błędnych interpretacji w odbiorze.
  • Ograniczenia danych referencyjnych map — nawet poprawne dane wejściowe mogą nie znaleźć idealnego odpowiednika w warstwie mapy (np. gdy granice administracyjne są aktualizowane w innym tempie niż Twoje dane).

Warto myśleć o mapie w Power BI jak o procesie dopasowania: dane źródłowe → rozpoznanie typu lokalizacji → przypisanie do encji geograficznej → renderowanie punktu lub obszaru. Im bardziej jednoznaczne i konsekwentne są Twoje pola geograficzne, tym mniej Power BI „domyśla się” za Ciebie, a ryzyko błędów spada.

2. Typowe problemy z geokodowaniem: niejednoznaczne nazwy, literówki, brak kontekstu kraju/regionu

Geokodowanie w mapach Power BI polega na tym, że wartości tekstowe (np. nazwa miasta) są dopasowywane do obiektów geograficznych w bazie usług mapowych. Brzmi prosto, ale w praktyce nawet drobne nieścisłości w danych powodują, że mapa pokaże inne miejsce, nie pokaże nic albo zinterpretuje wpis jako inny typ lokalizacji (np. region zamiast miasta). Podczas szkoleń Cognity ten temat wraca regularnie – dlatego zdecydowaliśmy się go omówić również tutaj. Poniżej najczęstsze źródła błędów, które pojawiają się jeszcze zanim przejdzie się do bardziej „twardych” identyfikatorów czy pracy na granicach.

Niejednoznaczne nazwy (ambiguous place names)

Najbardziej klasyczny problem: ta sama nazwa występuje w wielu krajach lub nawet w obrębie jednego kraju. Gdy podajesz wyłącznie nazwę, usługa geokodująca wybiera najbardziej „prawdopodobne” dopasowanie według własnych reguł (popularność, język interfejsu, kontekst pozostałych danych), co może nie mieć nic wspólnego z Twoim przypadkiem biznesowym.

  • Powtórzenia miast i miejscowości – wiele miejsc o tej samej nazwie w różnych regionach, powiatach czy stanach.
  • Nazwy wieloznaczne – słowo może oznaczać miasto, region, wyspę, a czasem nawet obiekt nieadministracyjny (np. pasmo, zatoka).
  • Różne warianty językowe – ta sama lokalizacja ma inne nazwy w różnych językach, a część z nich może wskazywać na inne miejsce o podobnym brzmieniu.

Skutek: punkty lądują w złym kraju lub „skaczą” do dużego ośrodka o tej samej nazwie, przez co rozkład danych na mapie jest mylący.

Literówki i niespójna pisownia

Geokodowanie jest wrażliwe na jakość tekstu. Czasem drobna literówka kończy się brakiem dopasowania, a czasem – co gorsza – dopasowaniem do innej lokalizacji o podobnej nazwie.

  • Literówki i skróty – różnice typu „St.” vs „Saint”, brak polskich znaków, losowe spacje, myślniki.
  • Odmiany i formaty – „Warszawa”, „m. Warszawa”, „Warszawa-Śródmieście” w jednej kolumnie bez jasnej intencji.
  • Różne standardy w różnych źródłach – dane z CRM, ERP i arkuszy mogą używać innych konwencji nazewniczych.

Skutek: część rekordów nie pojawia się na mapie (brak geokodu), a część zostaje przypisana nie tam, gdzie trzeba, co utrudnia zaufanie do wizualizacji.

Brak kontekstu kraju, regionu lub poziomu administracyjnego

Nawet poprawna nazwa miejscowości może być niewystarczająca, jeśli nie dostarczysz kontekstu. Usługi mapowe starają się „domyślić” brakujące informacje, ale te domysły nie są stabilne i mogą różnić się w zależności od zestawu danych, filtrów czy języka ustawień.

  • Brak kraju – sama nazwa miasta bez wskazania państwa to proszenie się o błędne dopasowanie.
  • Brak regionu/województwa/stanu – przy powtarzających się nazwach kontekst wyższego poziomu administracyjnego jest często konieczny.
  • Brak rozróżnienia typu obiektu – „Mazowieckie” (region) vs „Warszawa” (miasto) w jednej kolumnie „Lokalizacja” powoduje, że mapa miesza typy geograficzne.

Skutek: mapa wygląda „prawie dobrze”, ale ma pojedyncze punkty w nieoczekiwanych miejscach lub prezentuje agregacje na niewłaściwym poziomie (np. region zamiast miasta).

Niejednorodne dane w jednej kolumnie

Częstym źródłem problemów jest mieszanie w tej samej kolumnie różnych rodzajów lokalizacji: raz wpisy są miastami, raz powiatami, raz kodami pocztowymi, a czasem pełnym adresem. Z perspektywy geokodowania to zupełnie inne „pytania” do mapy.

  • Mix poziomów – miejscowość i województwo w jednym polu utrudniają jednoznaczne dopasowanie.
  • Mix formatów – część rekordów to „Miasto, kraj”, część to samo „Miasto”, część to kod pocztowy.
  • Adresy niepełne – brak numeru, ulicy, miasta albo kraju może prowadzić do losowych wyników.

Skutek: trudniej wykryć błędy, bo wizualnie wszystko „działa”, ale część danych jest geokodowana inną metodą niż reszta.

Jak rozpoznać, że geokodowanie poszło nie tak

Problemy z nazwami i kontekstem często ujawniają się dopiero na mapie. Warto zwracać uwagę na typowe symptomy:

  • Pojedyncze punkty „uciekające” daleko poza oczekiwany obszar (np. inny kontynent).
  • Nienaturalne skupiska w dużych miastach, gdy dane powinny być rozproszone.
  • Braki na mapie mimo obecności rekordów w tabeli (część wartości nie została dopasowana).
  • Zmiana wyników po filtracji – po odfiltrowaniu części danych geokodowanie potrafi inaczej interpretować pozostałe wartości.

Te problemy nie muszą oznaczać błędu w Power BI jako narzędziu – zazwyczaj wynikają z tego, że dane tekstowe nie są wystarczająco jednoznaczne, by konsekwentnie wskazać konkretną lokalizację.

3. Kody i identyfikatory jako remedium: ISO, TERYT, kody pocztowe oraz zasady ich doboru

Najczęstsze błędy na mapach biorą się z tego, że Power BI (a dokładniej usługi mapowe stojące za wizualizacjami) próbuje zgadywać lokalizację na podstawie tekstu. Im bardziej opis jest „ludzki” (np. sama nazwa miasta), tym więcej miejsca na niejednoznaczność. Dlatego w danych geograficznych warto opierać się na kodach i stabilnych identyfikatorach, które jednoznacznie wskazują obiekt (kraj, region, jednostkę administracyjną), zamiast polegać wyłącznie na nazwach.

Kody nie rozwiązują wszystkiego, ale znacząco ograniczają klasę problemów typu: „dwie miejscowości o tej samej nazwie”, „różne warianty pisowni”, „brak kontekstu kraju”, czy „mapa wskazała niewłaściwy punkt”.

ISO: kiedy potrzebujesz jednoznaczności na poziomie państw i (czasem) regionów

ISO 3166 to najprostszy i najbardziej przenośny sposób identyfikowania krajów. W praktyce w analizach międzynarodowych ISO działa lepiej niż nazwy państw w różnych językach (np. „Germany”, „Deutschland”, „Niemcy”).

  • ISO 3166-1 alpha-2 (np. PL) i alpha-3 (np. POL) – typowe do raportów i integracji.
  • ISO 3166-2 – kody jednostek podziału terytorialnego (np. regiony), przydatne, gdy pracujesz na poziomach administracyjnych, ale ich dopasowanie zależy od tego, czy dany poziom jest wspierany przez używaną mapę i źródło granic.

Wskazówka: konsekwentnie wybierz jeden wariant (alpha-2 lub alpha-3) i trzymaj go w całym modelu danych, w tym w tabelach wymiarów.

TERYT: gdy pracujesz na polskich jednostkach administracyjnych

Dla danych z Polski często najbardziej niezawodne są identyfikatory z systemu TERYT (GUS), bo są projektowane właśnie do jednoznacznego opisu jednostek administracyjnych. W przeciwieństwie do nazw, kod rozróżnia obiekty o tych samych etykietach oraz „przeżywa” typowe problemy z odmianą, skrótami czy literówkami.

TERYT jest szczególnie przydatny, gdy:

  • łączysz dane z różnych źródeł (np. sprzedaż, demografia, sieć placówek) i potrzebujesz stabilnego klucza do relacji,
  • raportujesz na poziomie gmina/powiat/województwo i chcesz uniknąć duplikatów nazw,
  • chcesz mieć kontrolę nad zmianami administracyjnymi (scalenia, wydzielenia, zmiany nazw), bo identyfikator pozwala je śledzić w sposób bardziej uporządkowany niż tekst.

Uwaga praktyczna: TERYT świetnie sprawdza się jako klucz w modelu, ale samo jego użycie nie gwarantuje, że domyślna wizualizacja mapy w Power BI „zrozumie” ten kod. Wtedy TERYT pełni rolę identyfikatora w danych i relacjach, a do wyświetlenia na mapie potrzebujesz dodatkowego mechanizmu (np. tłumaczenia na nazwę + kontekst lub współrzędnych/granic).

Kody pocztowe: szybkie, ale ryzykowne jako „geo-id”

Kod pocztowy bywa wygodny, bo często jest dostępny w danych operacyjnych (CRM, zamówienia, dostawy). Jednak jako identyfikator geograficzny ma ograniczenia:

  • kod pocztowy opisuje obszar doręczeń, a nie zawsze precyzyjny obiekt administracyjny,
  • w wielu krajach nie mapuje się 1:1 do miasta/gminy, a jego granice mogą być „nielogiczne” analitycznie,
  • formaty są różne (spacje, myślniki, wiodące zera), co utrudnia łączenie danych,
  • ten sam kod może obejmować wiele miejscowości, a duże miasta mają wiele kodów.

Jeśli używasz kodów pocztowych, traktuj je jako klucz do słownika (np. tabela: kod pocztowy → miasto/gmina → województwo lub kod pocztowy → współrzędne centroidu), a nie jako uniwersalny odpowiednik „miasta”.

Porównanie: co wybrać i kiedy

IdentyfikatorNajlepsze zastosowaniePlusyTypowe ryzyka
ISO 3166-1 (kraj)Raporty międzynarodowe, filtry i agregacje po krajachJednoznaczny, przenośny między systemami, prostyRóżne warianty (alpha-2/alpha-3), czasem nazwy zależne od źródła danych
ISO 3166-2 (region)Analizy na poziomie regionów/stanów/prowincjiStandaryzacja międzynarodowaNie zawsze pokrywa się z oczekiwanym poziomem administracyjnym lub wsparciem map
TERYT (PL)Gmina/powiat/województwo w Polsce, spójne relacje w modeluWysoka jednoznaczność, odporność na duplikaty nazwNie zawsze bezpośrednio „rozpoznawany” przez domyślne mapy jako lokalizacja
Kod pocztowyDane adresowe, logistyka, analizy zasięgów doręczeńCzęsto dostępny w danych, szybki do pozyskaniaNie jest jednostką administracyjną; formatowanie; niejednoznaczne pokrycie obszarów

Zasady doboru kodów: jak uniknąć „fałszywej pewności”

  • Najpierw określ poziom analizy (kraj/region/miasto/jednostka admin) i dobierz identyfikator, który jest dla niego naturalny. Nie „wciskaj” kodu pocztowego tam, gdzie potrzebujesz gminy lub powiatu.
  • Traktuj kod jako klucz, a nazwę jako etykietę: kod powinien budować relacje i jednoznaczność, nazwa ma służyć do czytelnej prezentacji w raporcie.
  • Standaryzuj format (wiodące zera, wielkość liter, spacje). Nawet najlepszy kod nie zadziała, jeśli w danych pojawią się warianty zapisu.
  • Przechowuj słownik (tabela wymiaru) z mapowaniem: identyfikator → nazwa, nadrzędny poziom, ewentualnie atrybuty pomocnicze. To ogranicza ręczne „łatki” w wielu miejscach.
  • Unikaj mieszania poziomów w jednej kolumnie (np. raz nazwa miasta, raz województwa). Jeśli musisz, rozdziel dane na osobne pola i jednoznacznie je opisuj.

Minimalny przykład standaryzacji kodu (formatowanie)

Poniżej prosty przykład w DAX, który pomaga ujednolicić zapis kodu kraju i kodu pocztowego (zależnie od potrzeb w modelu):

CountryISO2 = UPPER(TRIM([CountryISO2_Raw]))

PostalCode_PL = SUBSTITUTE(TRIM([PostalCode_Raw]), " ", "")

Kluczowe jest nie samo wyrażenie, ale konsekwencja: jeden standard zapisu w całym modelu i w każdym źródle, z którego zasilasz raport.

4. Poprawne modelowanie kolumn geograficznych w Power BI: Data Category, relacje i hierarchie geo

Nawet najlepsze dane „tekstowe” (np. nazwy miast) potrafią dać błędny wynik na mapie, jeśli w modelu nie są jednoznacznie opisane i powiązane. W Power BI kluczowe są trzy elementy: kategoryzacja danych (Data Category), spójne relacje w modelu oraz hierarchie geograficzne. Dobrze ustawiony model nie tylko poprawia trafność map, ale też stabilizuje działanie filtrów i agregacji. Doświadczenie Cognity pokazuje, że uporządkowanie tego obszaru przynosi szybkie i zauważalne efekty w codziennej pracy z raportami.

Data Category: jak Power BI „rozumie” kolumnę

W widoku modelu możesz przypisać kolumnie Data Category, czyli informację, że dana kolumna reprezentuje konkretny typ geograficzny (np. kraj, region, miasto, kod pocztowy, szerokość/długość geograficzną). To podpowiedź dla wizualizacji map, jak interpretować wartości oraz jak łączyć je z usługą geokodowania.

  • Stosuj Data Category do kolumn lokalizacji (np. Country/Region, State or Province, County, City, Postal Code) oraz do współrzędnych (Latitude, Longitude).
  • Unikaj oznaczania „prawie-geografii” (np. nazwy oddziałów, nazwy stref sprzedaży) jako City/Region tylko po to, by „zadziałała mapa”. To zwykle kończy się błędnymi punktami.
  • Ustawiaj kategorie na kolumnach bazowych, a nie na miarach. Mapy pracują na wartościach kolumn.
Kolumna w danych Przykład wartości Rekomendowana Data Category Po co?
Kraj Poland Country/Region Ustala kontekst i ogranicza dwuznaczności
Województwo / Region Mazowieckie State or Province Wspiera poprawne dopasowanie poziomu administracyjnego
Miasto Warszawa City Ułatwia geokodowanie punktów
Kod pocztowy 00-001 Postal Code Precyzuje lokalizację w obrębie miast/ulic
Szerokość 52.2297 Latitude Omija niejednoznaczne nazwy (punkt na mapie)
Długość 21.0122 Longitude Omija niejednoznaczne nazwy (punkt na mapie)

Typ danych i format: drobiazgi, które psują mapy

  • Współrzędne jako liczby dziesiętne: Latitude/Longitude powinny mieć typ liczbowy (Decimal Number). Tekstowe współrzędne często nie są rozpoznawane poprawnie lub prowadzą do pustych map.
  • Kody jako tekst: identyfikatory typu kod pocztowy lub kod jednostki administracyjnej lepiej trzymać jako tekst (żeby nie zgubić zer wiodących i nie wymusić niechcianych formatów).
  • Spójna kultura zapisu: upewnij się, że separator dziesiętny i format importu nie zamieniają 52.2297 na 522297 lub 52,2297 w sposób, który zmienia typ kolumny.

Relacje w modelu: jedna „tabela lokalizacji” zamiast wielu niespójnych kolumn

Najstabilniejszym podejściem jest wydzielenie spójnego wymiaru geograficznego (np. DimGeography) i powiązanie go relacjami z tabelami faktów. Dzięki temu filtrowanie po regionie/miastu działa przewidywalnie, a mapa korzysta z jednego źródła atrybutów.

  • Star schema: fakty (sprzedaż, zdarzenia) łączą się do jednego wymiaru geograficznego, zamiast duplikować nazwy miast w wielu tabelach.
  • Unikaj relacji wiele-do-wielu dla geografii (chyba że jest to świadomy wybór). W mapach często kończy się to „rozmyciem” wyników i zaskakującą agregacją.
  • Jednoznaczny klucz: relacje opieraj o stabilny klucz (ID/kod), a nie o nazwę. Nazwy bywają nieunikalne i zmienne.

Hierarchie geograficzne: kontrola poziomu drążenia (drill-down)

Hierarchie pozwalają użytkownikowi przechodzić od ogółu do szczegółu (np. kraj → region → miasto) w jednym wizualu. Kluczowe jest, aby hierarchia odzwierciedlała faktyczną strukturę danych i była spójna z kolumnami, którym przypisano Data Category.

  • Buduj hierarchię z kolumn o rosnącej szczegółowości (najpierw kraj, potem region, później miasto).
  • Nie mieszaj poziomów (np. miasto obok powiatu) w jednej ścieżce drill-down, jeśli nie tworzą spójnego drzewa.
  • Trzymaj hierarchię w wymiarze (np. w tabeli DimGeography), aby była współdzielona między raportami i wizualami.

Minimalny wzorzec kolumn w DimGeography

Na potrzeby map i filtrów zwykle wystarcza prosty zestaw pól: stabilny klucz, nazwy poziomów oraz (opcjonalnie) współrzędne. Poniżej schemat „szkieletu” wymiaru:

DimGeography
- GeoID (klucz)
- Country
- Region
- City
- PostalCode (opcjonalnie)
- Latitude (opcjonalnie)
- Longitude (opcjonalnie)

Po ustawieniu Data Category na odpowiednich kolumnach, poprawnym typie danych oraz relacjach do tabel faktów, mapy w Power BI stają się przewidywalne: użytkownik filtruje po jednym wymiarze, a wizualizacje dostają spójny, jednoznaczny kontekst geograficzny.

5. Pułapki poziomów administracyjnych: mylenie gmina/powiat/województwo, duplikaty nazw i rozjazdy granic

W mapach Power BI problemem często nie są same wizualizacje, tylko niejednoznaczność poziomu administracyjnego w danych. Gdy raz pokazujesz wyniki dla gmin, a innym razem dla powiatów, łatwo o sytuację, w której ta sama kolumna „Jednostka” trafia na mapę, ale Power BI (lub źródłowa geometria) interpretuje ją inaczej niż oczekujesz. Skutek: błędne przypisania, „skoki” punktów w inne miejsce, zduplikowane obszary albo niepełne pokrycie kraju.

Poziomy administracyjne w praktyce: czym się różnią i kiedy mają znaczenie

W analizach przestrzennych najczęściej operuje się trzema poziomami: gmina, powiat, województwo. Każdy z nich ma inną granularność i inny sens biznesowy (np. sieć sprzedaży, demografia, planowanie zasobów). Błąd zaczyna się wtedy, gdy:

  • mieszamy poziomy w jednej kolumnie (np. raz „Warszawa” jako miasto/gmina, raz jako powiat/miasto na prawach powiatu),
  • agregujemy dane na jeden poziom, ale mapujemy na inny,
  • stosujemy nazwy bez jednoznacznego „kontekstu” (jaki to poziom?),
  • łączymy dane z różnych źródeł, gdzie poziomy są nazwane inaczej lub mają inne reguły identyfikacji.
Poziom Typowe użycie Najczęstsza pułapka
Województwo Raporty zarządcze, podział regionalny, duże agregacje Kolizje nazw z innymi regionami/państwami, brak wskazania kraju
Powiat Analizy średniej szczegółowości, logistyka, „obszary operacyjne” Mylenie z miastami na prawach powiatu; nazwa powiatu ≠ nazwa miasta
Gmina Najbardziej operacyjne analizy: zasięg usług, planowanie lokalne Duplikaty nazw gmin w kraju; niezgodność nazw między rejestrami

Mylenie gmina/powiat/województwo: jak to „psuje” mapę

Power BI (oraz usługi geokodujące, z których korzystają mapy) potrzebują jasnej informacji: co oznacza tekst i jaki to typ jednostki. Jeśli w polu lokalizacji wpiszesz „Zamość”, to bez kontekstu nie jest oczywiste, czy chodzi o gminę miejską, gminę wiejską, miasto, powiat, czy nawet nazwę w innym kraju. W efekcie:

  • Agregacje trafiają w złą geometrię (np. dane powiatowe wizualizowane jak gminy lub odwrotnie).
  • Niektóre rekordy „znikają”, bo nie znajdują dopasowania na oczekiwanym poziomie.
  • Powstają podwójne obszary, gdy w danych występują jednostki o podobnej nazwie, ale innym typie.

Duplikaty nazw: ten sam tekst, różne miejsca

Duplikaty nazw to klasyczny problem w Polsce: wiele gmin (i miejscowości) może mieć taką samą nazwę, a w dodatku nazwa „powiat X” bywa mylona z miastem „X”. Jeśli w danych masz tylko nazwę bez identyfikatora, mapowanie staje się loterią, a wyniki mogą być niepowtarzalne (zależnie od kontekstu, ustawień modelu i jakości dopasowania).

Najczęstsze scenariusze błędów:

  • Identyczna nazwa gminy w różnych województwach – bez województwa/powiatu nie da się tego jednoznacznie rozstrzygnąć.
  • Miasto vs gmina wiejska o tej samej nazwie – dane sprzedażowe dla „gminy” trafiają na obszar miasta (albo odwrotnie).
  • Powiat grodzki (miasto na prawach powiatu) vs powiat ziemski – nazwa zbliżona, ale obszar i rola administracyjna inna.

Rozjazdy granic: kiedy geometria nie zgadza się z danymi

Nawet przy poprawnych nazwach mogą wystąpić rozbieżności wynikające z tego, że granice administracyjne potrafią się zmieniać, a różne źródła danych mogą używać różnych „wersji” podziału terytorialnego. To prowadzi do sytuacji, w których:

  • jednostka istnieje w danych, ale brak jej w warstwie granic (albo ma inną nazwę),
  • zmienił się przebieg granicy, a porównujesz dane w czasie bez spójnego podziału,
  • łączenia (joiny) nie trafiają, bo identyfikatory/nazwy są z innego stanu administracyjnego.

W praktyce objawia się to „dziurami” na mapie, niespójnymi sumami (część danych nie została zwizualizowana) lub przesunięciami w analizie trendów, gdy granice zmieniły się między okresami.

Minimalne zasady bezpieczeństwa przy poziomach administracyjnych (bez wchodzenia w implementację)

  • Trzymaj osobne pola dla gminy/powiatu/województwa zamiast jednej kolumny „Region”.
  • Nie polegaj wyłącznie na nazwie; traktuj ją jako etykietę, a nie klucz.
  • Dodawaj kontekst nadrzędny (np. gmina + powiat + województwo) w danych wejściowych, by uniknąć kolizji.
  • Ustal jeden „stan granic” dla porównań w czasie i pilnuj spójności źródeł.
  • Waliduj liczbę dopasowań: ile rekordów z danych faktycznie wylądowało na mapie (braki to sygnał problemu z poziomem, nazwą lub granicą).

Jeśli na tym etapie zadbasz o jednoznaczność poziomu administracyjnego, unikniesz większości sytuacji, w których mapa „wygląda dobrze”, ale pokazuje nie te jednostki, które faktycznie analizujesz.

6. Zaawansowane podejścia do map: centroidy, współrzędne, warstwy granic (Shapefile/TopoJSON) i mapy niestandardowe

Gdy proste mapy oparte o nazwy miejsc zawodzą (albo gdy potrzebujesz pełnej kontroli nad tym, co i jak jest rysowane), warto przejść na podejścia „deterministyczne”: pracę na współrzędnych, centroidach oraz warstwach granic. To pozwala ograniczyć niejednoznaczności geokodowania, uspójnić wyniki między użytkownikami i zadbać o zgodność z realnymi granicami administracyjnymi.

Centroidy vs współrzędne punktów: kiedy i po co

Współrzędne (Latitude/Longitude) to najprostszy sposób, by wskazać konkretną lokalizację jako punkt. Centroid to szczególny przypadek: punkt reprezentujący obszar (np. gminę czy powiat), zwykle „środek” geometrii, używany gdy dane są agregowane do regionów, ale chcesz je pokazać jako punkty.

  • Współrzędne punktów sprawdzają się dla adresów, placówek, zdarzeń, pomiarów, dostaw, stacji itp.
  • Centroidy są użyteczne, gdy masz wyniki na poziomie obszarów (np. jednostek administracyjnych), ale nie rysujesz granic – zamiast tego pokazujesz „znacznik” reprezentujący region.
  • Ograniczenie centroidów: punkt może wypaść w miejscu słabo reprezentatywnym (np. na wodzie, poza „zamieszkaną” częścią, w przypadku wydłużonych obszarów) i może sugerować precyzję, której w danych nie ma.

Warstwy granic: kiedy punkt to za mało

Jeśli kluczowe jest „wypełnienie” obszaru (choropleth) albo zgodność z oficjalnymi podziałami, potrzebujesz geometrii granic. W Power BI realizuje się to przez użycie plików granic lub wizualizacji obsługujących własne warstwy.

  • Mapa punktowa: pokazuje lokalizacje, ale nie pokaże rzeczywistego zasięgu regionu.
  • Mapa obszarowa (z granicami): pozwala kolorować i porównywać jednostki terytorialne w ich faktycznych kształtach.
  • Najczęstszy cel: uniknięcie błędów interpretacji nazw (duplikaty nazw miejsc) i zapewnienie, że „powiat X” to zawsze ten sam obszar.

Shapefile vs TopoJSON: różnice w praktyce

Warstwy granic najczęściej spotkasz w formatach Shapefile oraz TopoJSON. Oba przechowują geometrię, ale różnią się wygodą dystrybucji, rozmiarem i typowym użyciem w wizualizacjach.

Format Co to jest Zalety Ograniczenia / ryzyka
Shapefile Zestaw plików (np. .shp, .shx, .dbf, .prj) opisujących geometrię i atrybuty Standard GIS, szeroka dostępność danych urzędowych i branżowych Wiele plików do utrzymania, ryzyko problemów z kodowaniem atrybutów i układem współrzędnych (CRS)
TopoJSON JSON z topologią (współdzielone krawędzie), zwykle lżejszy od GeoJSON Mniejszy rozmiar, lepsza wydajność przy renderowaniu granic w raportach Wymaga przygotowania/konwersji z GIS; kluczowe jest stabilne pole ID do łączenia z danymi

Klucz do sukcesu: jednoznaczne łączenie danych z geometrią

Nawet najlepsza warstwa granic nie pomoże, jeśli nie masz pewnego klucza łączenia. W podejściach z granicami krytyczne jest, by w geometrii i w tabeli faktów/dimension był ten sam, stabilny identyfikator (np. kod jednostki), a nie „ładna nazwa” wyświetlana użytkownikowi.

  • Łącz po identyfikatorze, a nazwy traktuj jako opis do wyświetlania.
  • Sprawdź unikalność: identyfikator musi być jednoznaczny na danym poziomie administracyjnym.
  • Zadbaj o spójność typów: tekst vs liczba, wiodące zera, długość kodu.

Mapy niestandardowe: kiedy wbudowane wizualizacje to za mało

Wbudowane mapy są wygodne, ale mają ograniczenia w kontroli stylu, źródła kafelków, działania geokodowania czy obsługi własnych warstw. Mapy niestandardowe przydają się, gdy potrzebujesz:

  • pełnej kontroli nad granicami (własna warstwa administracyjna, granice sprzedażowe, strefy usług),
  • spójnego wyglądu i skali niezależnie od interpretacji dostawcy map,
  • wydajności przy dużej liczbie obiektów (generalizacja geometrii, lżejszy format),
  • warstwowania (granice + punkty + etykiety) i precyzyjnego sterowania interakcją.

Minimalny przykład danych dla podejścia „punktowego”

Jeśli decydujesz się na mapowanie po współrzędnych, dane wejściowe powinny zawierać przynajmniej stabilny identyfikator obiektu oraz parę: szerokość i długość geograficzną. To ogranicza zależność od rozpoznawania nazw.

Id,Name,Latitude,Longitude,Value
101,"Lokalizacja A",52.2297,21.0122,120
102,"Lokalizacja B",50.0647,19.9450,85

Wskazówka praktyczna: jeśli Twoje dane opisują obszary, a nie punkty, rozważ granice (choropleth) zamiast centroidów – centroid jest skrótem, a nie wiernym odwzorowaniem zasięgu.

💡 Pro tip: Jeśli zależy Ci na powtarzalności i braku „zgadywania” przez geokoder, mapuj po współrzędnych lub łącz dane z warstwą granic przez stabilny identyfikator (kod), a nie po nazwie. Centroid traktuj jako skrót dla danych obszarowych — gdy liczy się realny zasięg i porównania, lepsza będzie mapa z granicami (Shapefile/TopoJSON).

7. Checklist: przygotowanie danych, walidacja wyników i testy kontrolne poprawności map

Mapa w Power BI potrafi wyglądać „poprawnie”, a mimo to wskazywać złe miejsca, scalać różne obszary pod jedną etykietą lub przesuwać punkty o setki kilometrów. Poniższa checklist pomaga szybko wychwycić typowe źródła błędów: od jakości danych wejściowych, przez jednoznaczność identyfikacji lokalizacji, po kontrolę wyników na gotowej wizualizacji.

Przygotowanie danych (zanim zbudujesz mapę)

  • Ustal docelowy poziom geografii: zdecyduj, czy raport ma pokazywać kraj/województwo/powiat/gminę/miasto, czy punkty (adresy, placówki). Mieszanie poziomów w jednej kolumnie to częsta przyczyna błędów.
  • Rozdziel pola na osobne kolumny: trzymaj osobno np. kraj, region, miasto, kod pocztowy; nie sklejaj ich w jeden tekst, jeśli później chcesz filtrować lub budować hierarchie.
  • Standaryzuj zapisy: ujednolić wielkość liter, usunąć nadmiarowe spacje, znaki niewidoczne, nietypowe skróty i „warianty” nazw (np. różne formy diakrytyków), żeby uniknąć sztucznych duplikatów.
  • Sprawdź kompletność: zidentyfikuj rekordy bez kluczowych pól (np. brak kraju lub brak miejscowości) i podejmij decyzję, czy je uzupełniasz, czy wykluczasz z mapy.
  • Ustal jedną zasadę identyfikacji lokalizacji: preferuj stabilny identyfikator (kod/ID) albo współrzędne; nazwy miejscowości traktuj jako warstwę opisową, a nie jedyny „klucz”.
  • Wykryj niejednoznaczności nazw: przygotuj listę nazw powtarzających się (np. wiele miejscowości o tej samej nazwie) i ustal, jak będą rozróżniane kontekstem (kraj/region) lub identyfikatorem.
  • Sprawdź format i zakres współrzędnych (jeśli używasz lat/long): zweryfikuj, czy nie są zamienione miejscami, czy nie mają błędnych separatorów i czy mieszczą się w sensownych zakresach.
  • Kontrola spójności słowników: jeżeli masz wymiar geograficzny (lista jednostek) i fakt (transakcje), upewnij się, że nazwy/kody mają identyczne standardy i nie różnią się drobnymi wariantami.

Walidacja w modelu i na wizualizacji (czy Power BI „rozumie” dane)

  • Sprawdź kategoryzację pól geograficznych: upewnij się, że kolumny są rozpoznawane zgodnie z ich rolą (kraj/region/miasto/kod pocztowy/współrzędne), a nie jako zwykły tekst.
  • Oceń jednoznaczność wyników: jeśli widzisz punkty w złych krajach albo „skoki” między kontynentami, potraktuj to jako sygnał braku kontekstu (np. same miasto bez kraju) lub konfliktu nazw.
  • Wykryj przypadki łączenia wielu lokalizacji w jedną: gdy różne jednostki mają tę samą etykietę, mapa może je agregować. Porównaj liczbę unikalnych lokalizacji w danych z liczbą elementów na mapie.
  • Sprawdź zachowanie filtrów: filtr na kraj/region powinien zawężać punkty/obszary w sposób intuicyjny. Jeśli filtr „psuje” geolokalizację, zwykle oznacza to niespójne poziomy lub błędne relacje.
  • Zweryfikuj granice i poziomy admin: jeśli używasz map wypełnionych (obszarowych), upewnij się, że „region” w danych odpowiada temu, co wizualizacja uważa za region (np. województwo vs powiat).
  • Oceń wpływ agregacji: przy miarach sumujących (sprzedaż, liczba zdarzeń) sprawdź, czy agregacja nie maskuje błędów (np. jedna błędnie przypisana lokalizacja nie ginie w dużej sumie).

Testy kontrolne (szybkie sanity-checki przed publikacją)

  • Test próbki ręcznej: wybierz kilkanaście rekordów (różne regiony, w tym skrajne geograficznie) i porównaj, gdzie wylądowały na mapie względem oczekiwań.
  • Test skrajnych wartości: sprawdź rekordy z najbardziej „podejrzanymi” danymi: najkrótsze nazwy, nazwy z myślnikami, znaki diakrytyczne, puste pola, nietypowe kody.
  • Test duplikatów: dla nazw powtarzających się w wielu miejscach sprawdź, czy wszystkie są rozróżnione i czy nie zostały błędnie sklejone w jedną lokalizację.
  • Test porównawczy na innej warstwie: jeżeli masz zarówno identyfikator (kod), jak i nazwę, porównaj wyniki mapy przy użyciu jednego i drugiego pola; rozjazdy to sygnał problemu z jednoznacznością.
  • Test zgodności liczników: porównaj sumy i liczbę rekordów „na mapie” z tym samym zestawem filtrów w zwykłej wizualizacji (np. wykresie lub karcie). Różnice często oznaczają brak dopasowania lokalizacji lub odfiltrowanie przez geokodowanie.
  • Test „braków geokodowania”: wyszukaj elementy, które nie pojawiają się na mapie lub trafiają do nieoczekiwanych lokalizacji; przygotuj listę wyjątków do korekty danych.
  • Test powtarzalności po odświeżeniu: po refreshu danych sprawdź, czy pozycje nie „migrują”. Jeśli tak, to znak, że system opiera się na niejednoznacznych nazwach zamiast stabilnych identyfikatorów.

Minimalne kryteria „gotowe do publikacji”

  • Jednoznaczna identyfikacja: każda lokalizacja ma kontekst (co najmniej kraj) lub stabilny identyfikator/współrzędne.
  • Spójny poziom administracyjny: w danym polu nie mieszasz różnych poziomów (np. miasto i powiat razem).
  • Znane wyjątki są opisane: masz listę rekordów problematycznych i świadomą decyzję, co z nimi robisz.
  • Wyniki przechodzą testy kontrolne: próbka ręczna i testy duplikatów nie ujawniają błędnych przypisań ani agregacji.

Taka procedura nie eliminuje wszystkich problemów „z definicji”, ale znacząco zmniejsza ryzyko publikacji mapy, która wprowadza odbiorców w błąd. Najważniejsze jest konsekwentne podejście: najpierw jednoznaczne dane, potem weryfikowalny wynik na wizualizacji.

8. Zaawansowane techniki: regex (jeśli dostępne), słowniki zamian, funkcje pomocnicze i składanie wzorców w pipeline

Nawet przy poprawnych kolumnach i dobrze dobranych identyfikatorach zdarzają się przypadki, w których dane geograficzne wymagają warstwy „higieny”: ujednolicenia zapisu, usunięcia szumu, dopisania kontekstu i dopiero potem geokodowania lub łączenia z granicami. Zaawansowane techniki nie zastępują dobrych źródeł danych, ale pozwalają systematycznie redukować błędy wynikające z rozjazdów w nazewnictwie i formatach.

Regex: szybkie wyłapywanie wzorców i czyszczenie (gdy jest dostępny)

Wyrażenia regularne przydają się, gdy w danych pojawiają się powtarzalne artefakty: dopiski w nawiasach, skróty typu „gm.”, różne separatory, wtrącone kody pocztowe, zbędne spacje czy niekonsekwentne znaki interpunkcyjne. Ich rola jest zwykle pomocnicza: mają wydobyć właściwą nazwę lub usunąć elementy utrudniające dopasowanie, a nie „zgadywać” lokalizację.

W praktyce regex jest szczególnie użyteczny do:

  • Normalizacji zapisu (np. usuwanie wielokrotnych spacji, standaryzacja myślników i separatorów).
  • Rozdzielania złożonych pól na składniki (np. „miejscowość, powiat, województwo” w jednym stringu).
  • Wykrywania anomalii (np. nietypowe znaki, liczby w nazwie, brakujące człony).

Jeżeli regex nie jest dostępny w danym miejscu procesu, podobne efekty uzyskuje się kombinacją prostszych operacji tekstowych, kosztem większej liczby kroków i mniejszej elastyczności.

Słowniki zamian: kontrolowana korekta nazw i wariantów

Słownik zamian to celowo utrzymywana lista reguł, która zamienia warianty na jedną formę kanoniczną. To podejście jest bezpieczniejsze niż „inteligentne” dopasowywanie podobieństwem tekstu, bo działa deterministycznie i jest audytowalne. Dobrze sprawdza się dla:

  • Literówek i odmian (różne formy tego samego miejsca, historyczne nazwy, popularne skróty).
  • Kolizji nazw (gdy ta sama nazwa istnieje w wielu regionach — słownik może wymuszać doprecyzowanie).
  • Transliteracji i diakrytyków (różnice typu „Lodz” vs „Łódź”, jeśli systemy źródłowe są niespójne).

Kluczową zasadą jest to, by słownik był minimalny i celowany: poprawiać tylko to, co faktycznie występuje w danych i powoduje błędy, a nie „porządkować świat” na zapas. Dzięki temu utrzymanie jest proste, a ryzyko niechcianych zamian maleje.

Funkcje pomocnicze: reużywalna normalizacja i walidacja

Gdy te same problemy pojawiają się w wielu raportach lub źródłach, warto je zamknąć w funkcjach pomocniczych (logika wielokrotnego użytku). Ich zadaniem jest ujednolicenie wejścia do map: tak, aby każdy rekord przechodził identyczne kroki czyszczenia i sprawdzania.

Typowe funkcje pomocnicze dotyczą:

  • Normalizacji tekstu (trim, casing, diakrytyki, standaryzacja separatorów).
  • Budowy kluczy geograficznych z kilku pól (np. „nazwa + poziom admin + region/kraj” jako stabilny identyfikator dopasowania).
  • Walidacji (oznaczanie rekordów podejrzanych, brakujących, niespójnych).

Efektem jest mniejsza liczba „ręcznych wyjątków” w modelu oraz przewidywalne zachowanie map przy odświeżeniach danych.

Składanie wzorców w pipeline: od surowego tekstu do stabilnego dopasowania

Najlepsze rezultaty daje podejście potokowe (pipeline), w którym każdy krok ma jasny cel: oczyszczanie → normalizacja → wzbogacenie kontekstu → dopasowanie → kontrola jakości. Dzięki temu łatwiej zlokalizować, na którym etapie powstaje błąd, i poprawić go bez naruszania reszty procesu.

W dobrze zaprojektowanym pipeline istotne są dwie praktyki:

  • Rozdzielenie transformacji od reguł: reguły (słowniki zamian, wyjątki) żyją w danych/konfiguracji, a transformacje w logice, co ułatwia utrzymanie i przegląd zmian.
  • Ślad pochodzenia: warto zachować obok siebie formę surową, formę kanoniczną i informację, jaką ścieżką rekord został naprawiony (np. czy zadziałał słownik, czy wymagał doprecyzowania).

Takie podejście ogranicza „znikające” błędy map, w których wynik wygląda dobrze dziś, ale psuje się po kolejnej aktualizacji danych. Pipeline tworzy warstwę stabilizacji, która przygotowuje dane geograficzne do dalszych działań: geokodowania, łączenia z granicami i budowy spójnych hierarchii.

Jeśli chcesz poznać więcej takich przykładów, zapraszamy na szkolenia Cognity, gdzie rozwijamy ten temat w praktyce.

💡 Pro tip: Zbuduj pipeline: oczyszczanie → normalizacja → dopisanie kontekstu → dopasowanie → kontrola jakości, a reguły trzymaj w słownikach zamian zamiast w „magicznych” dopasowaniach tekstu. Zostaw ślad: przechowuj obok siebie wartość surową, kanoniczną i informację, czy zadziałał regex/słownik — dzięki temu błędy map da się szybko namierzyć po odświeżeniu danych.

Majczęściej zadawane pytania i odpowiedzi odnośnie Power BI i dane geograficzne: jak uniknąć błędów map (kody, centroidy, granice i poziomy admin)

Dlaczego Power BI pokazuje miasta lub regiony w złym miejscu na mapie?

Najczęściej dzieje się tak przez niejednoznaczne nazwy, brak kontekstu albo źle opisane kolumny geograficzne. Jeśli w danych masz samą nazwę miejscowości bez kraju, regionu lub poziomu administracyjnego, Power BI i usługa mapowa próbują ją zinterpretować samodzielnie. Błędy pojawiają się też przy literówkach, mieszaniu miast z regionami oraz przy niespójnych formatach danych.

Czy lepiej mapować dane po nazwach miejscowości czy po kodach i identyfikatorach?

Bezpieczniej jest mapować po kodach i stabilnych identyfikatorach niż po samych nazwach. Nazwy są wygodne dla użytkownika, ale łatwo o duplikaty, różne warianty zapisu i brak jednoznaczności. Kody lepiej sprawdzają się jako klucz w modelu danych, a nazwy warto zostawić jako etykiety widoczne w raporcie i filtrach.

Kiedy w Power BI używać współrzędnych zamiast geokodowania nazw?

Współrzędnych warto używać wtedy, gdy chcesz ograniczyć zgadywanie lokalizacji przez geokoder. To szczególnie przydatne dla punktów takich jak placówki, zdarzenia czy adresy. Współrzędne dają większą kontrolę nad położeniem, ale wymagają poprawnego typu danych, właściwego przypisania Latitude i Longitude oraz sprawdzenia, czy wartości nie zostały zamienione miejscami.

Czym różni się centroid od zwykłych współrzędnych punktu na mapie?

Centroid to punkt reprezentujący cały obszar, a nie faktyczną lokalizację konkretnego obiektu. Zwykłe współrzędne wskazują realny punkt, na przykład sklep lub zdarzenie. Centroid stosuje się raczej dla danych zagregowanych do gminy, powiatu lub regionu, gdy nie rysujesz granic. Trzeba jednak pamiętać, że centroid może wypaść w miejscu mało intuicyjnym dla odbiorcy.

Kiedy lepiej użyć granic administracyjnych niż mapy punktowej w Power BI?

Granice administracyjne są lepsze wtedy, gdy analizujesz obszary, a nie pojedyncze punkty. Jeśli dane dotyczą gmin, powiatów lub województw, sama kropka na mapie może zniekształcać interpretację. Warstwa granic lepiej pokazuje rzeczywisty zasięg jednostki i ułatwia porównania między obszarami, zwłaszcza gdy liczy się zgodność z określonym podziałem administracyjnym.

Jak ustawić dane geograficzne w modelu Power BI, żeby mapa działała poprawnie?

Najważniejsze jest poprawne ustawienie Data Category, typów danych i relacji w modelu. W praktyce warto dopilnować kilku elementów:

  • osobne kolumny dla kraju, regionu, miasta i kodu pocztowego,
  • współrzędne zapisane jako liczby dziesiętne,
  • kody przechowywane jako tekst,
  • relacje oparte o stabilny klucz, a nie samą nazwę.

Taki układ zmniejsza liczbę błędnych dopasowań.

Jak rozpoznać, że geokodowanie w Power BI poszło nieprawidłowo?

Błąd geokodowania zwykle widać po punktach poza oczekiwanym obszarem albo po brakujących rekordach na mapie. Typowe sygnały ostrzegawcze to:

  • pojedyncze lokalizacje na innym kontynencie,
  • nienaturalne skupiska w dużych miastach,
  • mniejsza liczba punktów niż liczba lokalizacji w danych,
  • zmiana położenia po zastosowaniu filtrów.

Takie objawy wskazują zwykle na problem z nazwą, kontekstem lub poziomem administracyjnym.

Jakie są najważniejsze testy przed publikacją mapy w Power BI?

Przed publikacją warto ręcznie sprawdzić próbkę rekordów i porównać mapę z danymi źródłowymi. Najpraktyczniejsze testy to kontrola kilku lokalizacji z różnych regionów, porównanie liczby rekordów na mapie z tabelą oraz sprawdzenie duplikatów nazw. Dobrym krokiem jest też test po odświeżeniu danych, aby upewnić się, że punkty nie zmieniają położenia bez zmian w źródle.

icon

Formularz kontaktowyContact form

Imię *Name
NazwiskoSurname
Adres e-mail *E-mail address
Telefon *Phone number
UwagiComments