Znaczniki SVG w QGIS: przygotuj symbole z edytowalnymi kolorami
Przygotuj własny znacznik SVG do QGIS z parametrami wypełnienia i obrysu, rzeczywistym otworem oraz akcentem o stałym kolorze. Zachowaj zwykły plik źródłowy SVG i sprawdź kopię docelową.
Na tej stronie
- Zachowaj zwykły plik źródłowy i kopię do QGIS
- Utwórz rzeczywisty otwór w grafice źródłowej
- Dodaj parametry do korpusu i zachowaj stały kolor akcentu
- Sprawdź kopię docelową przed przekazaniem
- Sprawdź znacznik w projekcie QGIS odbiorcy
- Gdy ikona początkowo jest rastrowym clipartem
- Często zadawane pytania
- Źródła
Aby przygotować własny znacznik SVG do QGIS z edytowalnymi kolorami, dodaj znaczniki parametrów param() używane przez QGIS do atrybutów wypełnienia i obrysu, którymi ma sterować aplikacja. W obszarach, których kolory mają pozostać stałe, zachowaj jawnie określone kolory. QGIS 3.44 Symbol Selector manual opisuje znaczniki parametrów wypełnienia, obrysu, ich krycia oraz szerokości obrysu.
Zacznij od niewielkiego, uporządkowanego symbolu. Ikona, która wygląda przekonująco w rozmiarze ilustracji, może stracić czytelność otworu, akcentu lub obrysu, gdy zostanie użyta jako znacznik na mapie.
Zakres tego poradnika: wyrenderowaliśmy zwykły plik źródłowy SVG w przeglądarce i sprawdziliśmy kod XML kopii z parametrami. Nie importowaliśmy tej kopii do QGIS. Poniższa składnia parametrów jest zgodna z dokumentacją wersji 3.44; sprawdzenie kopii docelowej w aplikacji pozostawiamy Tobie lub odbiorcy pracującemu w GIS.
Zachowaj zwykły plik źródłowy i kopię do QGIS
Użyj dwóch plików o tej samej geometrii:
| Plik | Przeznaczenie |
|---|---|
marker-master.svg | Zwykłe atrybuty wypełnienia i obrysu SVG do edycji i sprawdzania w przeglądarce. |
marker-qgis.svg | Kopia docelowa ze znacznikami parametrów QGIS w wybranych atrybutach. |
Taki podział ułatwia sprawdzanie oryginalnej grafiki. Podgląd zwykłego pliku źródłowego w przeglądarce pokazuje, jak ten plik jest w niej renderowany. Nie potwierdza jednak, że kopia do QGIS została poprawnie zaimportowana ani że jej ustawienia działają zgodnie z zamierzeniem.
Nasz oryginalny znacznik ma zielony korpus, przezroczysty okrągły otwór i złoty akcent w kształcie rombu. Zawiera dwie ścieżki i nie ma osadzonego obrazu rastrowego.

Utwórz rzeczywisty otwór w grafice źródłowej
Zapisz ten kod jako marker-master.svg:
<svg xmlns="http://www.w3.org/2000/svg"
width="64" height="64" viewBox="0 0 64 64">
<path id="body" fill="#237466" fill-opacity="1"
stroke="#173f37" stroke-opacity="1" stroke-width="2"
fill-rule="evenodd"
d="M32 5C19 5 10 14 10 27C10 42 32 59 32 59S54 42 54 27C54 14 45 5 32 5Z M32 17A10 10 0 1 0 32 37A10 10 0 1 0 32 17Z"/>
<path id="accent" fill="#f2c96c" stroke="none"
d="M32 41L36 46L32 51L28 46Z"/>
</svg>Ścieżka korpusu zawiera kontur zewnętrzny i wewnętrzny kontur kołowy. W tej konstrukcji fill-rule="evenodd" sprawia, że obszar wewnętrzny staje się otworem. Dzięki temu przez otwór w znaczniku widać tło — w tym miejscu nie jest rysowane białe koło. Opis atrybutu fill-rule w MDN wyjaśnia, jak ta reguła określa, które obszary są wypełniane.
viewBox definiuje prostokątny obszar współrzędnych grafiki źródłowej. Tutaj jest to kwadrat o boku 64 jednostek, z miejscem wokół obrysu. Zachowaj ten sam obszar w obu kopiach. Jeśli symbol wydaje się nieoczekiwanie mały w swoim obszarze, sprawdź geometrię i puste marginesy, zanim zwiększysz jego wyświetlany rozmiar.
Złoty akcent jest osobną ścieżką, dzięki czemu jego kolor jest określony jednoznacznie. W przypadku bardziej złożonej ikony zdecyduj, które obszary mają mieć wspólny kolor korpusu, zanim dodasz parametry. Nasz poradnik dotyczący kolorów SVG wyjaśnia, gdzie mogą być zapisane wypełnienia i obrysy.
Dodaj parametry do korpusu i zachowaj stały kolor akcentu
Utwórz kopię o nazwie marker-qgis.svg. W ścieżce z id="body" zastąp pięć atrybutów wypełnienia i obrysu poniższym blokiem atrybutów:
fill="param(fill) #237466"
fill-opacity="param(fill-opacity) 1"
stroke="param(outline) #173f37"
stroke-opacity="param(outline-opacity) 1"
stroke-width="param(outline-width) 2"Zachowaj dane ścieżki i fill-rule bez zmian. Pozostaw fill="#f2c96c" i stroke="none" ścieżki accent w obecnej postaci.
| Atrybut SVG | Znacznik parametru QGIS | Docelowe ustawienie |
|---|---|---|
fill | param(fill) | Kolor wypełnienia korpusu |
fill-opacity | param(fill-opacity) | Krycie wypełnienia korpusu |
stroke | param(outline) | Kolor obrysu korpusu |
stroke-opacity | param(outline-opacity) | Krycie obrysu korpusu |
stroke-width | param(outline-width) | Szerokość obrysu korpusu |
Wartości po znacznikach parametrów są opcjonalnymi wartościami domyślnymi w składni QGIS. Nie gwarantują, że zwykła przeglądarka SVG zrozumie tak sparametryzowaną wartość atrybutu wypełnienia lub obrysu. Do ogólnej edycji i podglądu SVG używaj zwykłego pliku źródłowego.
Nie zastępuj automatycznie każdego koloru przez param(fill). W tym projekcie zniweczyłoby to decyzję o zachowaniu osobnego złotego akcentu. Stosuj wspólny znacznik parametru tylko w obszarach, które mają reagować na to samo ustawienie.
Sprawdź kopię docelową przed przekazaniem
Nasza kontrola XML potwierdziła, że oba pliki mają ten sam viewBox i identyczne dane ścieżek. Kopia do QGIS zawiera pięć zamierzonych znaczników parametrów w body; accent zachowuje stałe złote wypełnienie. W tym przykładzie nie ma elementów <image>, plików zewnętrznych ani fontów.
W przypadku własnego znacznika sprawdź, czy:
- Plik źródłowy zawiera oczekiwane kształty wektorowe. Zmiana atrybutu wypełnienia lub obrysu nie pozwala zmieniać kolorów pikseli wewnątrz osadzonego obrazu jako osobnych obszarów.
- Parametry otrzymują tylko zamierzone ścieżki. Zachowaj jawnie określone kolory akcentów dekoracyjnych.
- Deklaracja stylu nie zachowuje w innym miejscu pliku sprzecznej, stałej wartości wypełnienia lub obrysu.
- Otwór pozostaje rzeczywistym otworem podczas wyświetlania na kontrastowym tle.
- Znacznik ma dość miejsca na obrys, bez dużego pustego obszaru wokół.
Pomyślne parsowanie XML potwierdza poprawność składni. Nie poświadcza, że docelowy mechanizm renderowania obsługuje wszystkie funkcje SVG. Zachowaj prostotę grafiki źródłowej, a następnie przeprowadź kontrolę w aplikacji.
Sprawdź znacznik w projekcie QGIS odbiorcy
W oknie wyboru symbolu punktowego wybierz warstwę symbolu SVG marker (znacznik SVG) i wczytaj kopię docelową. Podręcznik QGIS dla wskazanej wersji, do którego link znajduje się powyżej, opisuje ten typ symbolu i dostępne ustawienia.
Zanim użyjesz symbolu na całej mapie, poproś odbiorcę o osobne sprawdzenie wypełnienia korpusu, obrysu i krycia; potwierdzenie, że złoty akcent zachowuje stały kolor; obejrzenie otworu przy docelowym rozmiarze znacznika; oraz ponowne otwarcie udostępnionego projektu z dostępnym plikiem symbolu. Sprawdź też wyeksportowaną mapę lub układ wydruku, ponieważ to właśnie ten plik otrzymają odbiorcy.
Te kontrole kończą proces przekazania symbolu. Nasz obraz z przeglądarki i kontrola pliku źródłowego obejmują grafikę wejściową, natomiast rzeczywisty projekt QGIS decyduje o ostatecznym wyniku.
Gdy ikona początkowo jest rastrowym clipartem
Jeśli Twój własny piktogram istnieje tylko jako PNG lub JPG, narzędzie PerfectVector do konwersji clipartów na SVG może odtworzyć grafikę wektorową do edycji. Sprawdź ścieżki, uprość szczegóły, które znikają po zmniejszeniu ikony do rozmiaru znacznika, i oddziel korpus od wszelkich akcentów o stałym kolorze, zanim dodasz parametry QGIS. Poradnik przygotowania małych ikon omawia czytelność grafiki źródłowej i jej porządkowanie przy małych rozmiarach.
W ten sposób przygotowujesz wygląd symbolu. Nie nadajesz obrazowi georeferencji, nie odzyskujesz współrzędnych ani nie przekształcasz narysowanej mapy w dokładne dane geograficzne. Nasz poradnik dotyczący map rysowanych odręcznie wyjaśnia tę różnicę. Jeśli plik wejściowy zawiera już wymagane ścieżki wektorowe, użyj go bezpośrednio; poradnik dotyczący plików SVG pomoże Ci sprawdzić jego zawartość.
Często zadawane pytania
Dlaczego zaimportowany znacznik SVG nie udostępnia ustawień kolorów, których potrzebuję? Sprawdź, czy odpowiednie atrybuty wypełnienia i obrysu zawierają znaczniki parametrów QGIS. W tym przykładzie parametry ma tylko korpus; złoty akcent celowo zachowuje stały kolor. Następnie sprawdź ustawienia w docelowej wersji QGIS.
Czy mogę zachować stały kolor jednego akcentu? Pozostaw wypełnienie tego obszaru jako jawnie określony kolor i zastosuj wspólne parametry tylko do obszarów, którymi chcesz sterować. Zachowaj akcent w osobnej ścieżce, aby łatwo było sprawdzić plik źródłowy.
Czy wektoryzacja ikony zmienia ją w dane geograficzne? Nie. Tworzy grafikę dla symbolu. Lokalizacje na mapie, współrzędne i dokładność nadal zależą od danych geograficznych i sposobu pracy w GIS.
Źródła
- QGIS 3.44 — The Symbol Selector — Parametry znaczników SVG i opcjonalne wartości domyślne.
- MDN — fill-rule — Wypełniane obszary i reguła parzystości użyta do utworzenia otworu.
- MDN — viewBox — Prostokątny obszar współrzędnych SVG używany w obu kopiach pliku źródłowego.
W przypadku piktogramu rastrowego przekonwertuj clipart na SVG, sprawdź otwór i drobne szczegóły, a następnie przygotuj osobną kopię do QGIS. Zachowaj zwykły plik źródłowy, po czym poproś odbiorcę, aby przed przekazaniem przetestował kolory i wygląd znacznika w rzeczywistym projekcie.
Więcej z bloga

Jednostki gradientu SVG: jeden wspólny gradient na ścieżkach logo
Rozciągnij gradient na osobne ścieżki logo SVG. Porównaj gradientUnits, ustaw wspólne punkty końcowe i popraw nieoczekiwaną zmianę koloru w przesuniętej grupie.

SVG inline a img: wybierz, jak ma zachowywać się Twoja grafika
Porównaj ten sam SVG jako obraz i kod inline. Sprawdź sterowanie kolorem przez CSS, rozmiary, nazwy dostępne dla technologii wspomagających i ponowne użycie, zanim wybierzesz sposób osadzenia grafiki.