@jjlmoya/utils-drones 1.16.0 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/package.json +1 -1
  2. package/src/entries.ts +4 -1
  3. package/src/index.ts +1 -0
  4. package/src/tests/locale_completeness.test.ts +2 -2
  5. package/src/tests/tool_validation.test.ts +2 -2
  6. package/src/tool/drone-power-analyzer/i18n/de.ts +1 -1
  7. package/src/tool/drone-power-analyzer/i18n/es.ts +1 -1
  8. package/src/tool/drone-power-analyzer/i18n/fr.ts +1 -1
  9. package/src/tool/gsd-flight-planner/InputsColumn.astro +108 -0
  10. package/src/tool/gsd-flight-planner/ResultsColumn.astro +90 -0
  11. package/src/tool/gsd-flight-planner/bibliography.astro +6 -0
  12. package/src/tool/gsd-flight-planner/bibliography.ts +7 -0
  13. package/src/tool/gsd-flight-planner/component.astro +22 -0
  14. package/src/tool/gsd-flight-planner/entry.ts +29 -0
  15. package/src/tool/gsd-flight-planner/gsd-flight-planner.css +515 -0
  16. package/src/tool/gsd-flight-planner/i18n/de.ts +214 -0
  17. package/src/tool/gsd-flight-planner/i18n/en.ts +214 -0
  18. package/src/tool/gsd-flight-planner/i18n/es.ts +221 -0
  19. package/src/tool/gsd-flight-planner/i18n/fr.ts +214 -0
  20. package/src/tool/gsd-flight-planner/i18n/id.ts +214 -0
  21. package/src/tool/gsd-flight-planner/i18n/it.ts +214 -0
  22. package/src/tool/gsd-flight-planner/i18n/ja.ts +214 -0
  23. package/src/tool/gsd-flight-planner/i18n/ko.ts +214 -0
  24. package/src/tool/gsd-flight-planner/i18n/nl.ts +214 -0
  25. package/src/tool/gsd-flight-planner/i18n/pl.ts +214 -0
  26. package/src/tool/gsd-flight-planner/i18n/pt.ts +214 -0
  27. package/src/tool/gsd-flight-planner/i18n/ru.ts +214 -0
  28. package/src/tool/gsd-flight-planner/i18n/sv.ts +214 -0
  29. package/src/tool/gsd-flight-planner/i18n/tr.ts +214 -0
  30. package/src/tool/gsd-flight-planner/i18n/zh.ts +214 -0
  31. package/src/tool/gsd-flight-planner/index.ts +8 -0
  32. package/src/tool/gsd-flight-planner/logic.js +326 -0
  33. package/src/tool/gsd-flight-planner/seo.astro +15 -0
  34. package/src/tools.ts +3 -0
@@ -0,0 +1,214 @@
1
+ import type { GsdFlightPlannerLocaleContent } from '../index';
2
+ import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
3
+ import { bibliography } from '../bibliography';
4
+
5
+ const slug = 'planer-lotu-gsd';
6
+ const title = 'Planer Lotu GSD: Kalkulator Rozdzielczości Terenowej';
7
+ const description = 'Oblicz rozdzielczość terenową (GSD) dla misji fotogrametrycznych. Wsparcie dla DJI, Autel i kamer niestandardowych. Planowanie lotu w czasie rzeczywistym z wizualnymi wskaźnikami jakości.';
8
+
9
+ const faqItems = [
10
+ {
11
+ question: 'Co to jest rozdzielczość terenowa (GSD)?',
12
+ answer: 'GSD to odległość na ziemi reprezentowana przez jeden piksel na zdjęciu. Niższa wartość GSD oznacza wyższą rozdzielczość i więcej szczegółów. Na przykład GSD o wartości 1 cm/px pozwala rozpoznać szczegóły o wielkości 1 centymetra, co jest kluczowe w geodezji.',
13
+ },
14
+ {
15
+ question: 'Gdzie znajdę specyfikację kamery mojego drona?',
16
+ answer: 'Sprawdź instrukcję obsługi drona pod kątem wymiarów matrycy i ogniskowej obiektywu. Możesz też skorzystać z naszych ustawień dla popularnych modeli, takich jak DJI Mavic 3E czy Autel EVO II. W przypadku kamer niestandardowych zmierz rozmiar matrycy na podstawie specyfikacji obiektywu.',
17
+ },
18
+ {
19
+ question: 'Jakiej wartości GSD potrzebuję dla różnych rodzajów misji?',
20
+ answer: 'Topografia wysokiej precyzji: 1-2 cm/px. Standardowe mapowanie: 2-5 cm/px. Inspekcja i monitoring: 5-10 cm/px. Pomiary wizualne: 10+ cm/px. Wybierz wartość w oparciu o wymagania dokładności Twojego projektu.',
21
+ },
22
+ {
23
+ question: 'Co to jest pokrycie zdjęć i dlaczego jest ważne?',
24
+ answer: 'Pokrycie to procent obszaru, który pojawia się na kolejnych zdjęciach. Wysokie pokrycie (60-80%) zapewnia pełną ciągłość danych i poprawia jakość modelu 3D. Pokrycie podłużne wpływa na odstępy między zdjęciami; pokrycie poprzeczne wpływa na liczbę linii nalotu.',
25
+ },
26
+ {
27
+ question: 'Jak obliczyć idealną wysokość lotu?',
28
+ answer: 'Użyj tego kalkulatora: Żądane GSD × ogniskowa ÷ szerokość matrycy = wysokość. Kalkulator robi to automatycznie i pokazuje maksymalną bezpieczną wysokość, aby utrzymać docelową precyzję i uniknąć rozmycia ruchu.',
29
+ },
30
+ ];
31
+
32
+ const howToSteps = [
33
+ {
34
+ name: 'Wybierz lub skonfiguruj kamerę',
35
+ text: 'Wybierz jeden z predefiniowanych modeli (DJI Mavic 3E, Autel EVO II itp.) lub wprowadź ręcznie wymiary matrycy i ogniskową. Ustawienia ładowane są natychmiast.',
36
+ },
37
+ {
38
+ name: 'Ustaw wysokość lotu',
39
+ text: 'Użyj suwaka wysokości, aby dostosować wysokość nad poziomem gruntu (AGL). Obserwuj aktualizację GSD w czasie rzeczywistym, aby zobaczyć, jak wysokość wpływa na rozdzielczość obrazu.',
40
+ },
41
+ {
42
+ name: 'Zdefiniuj wymagania dotyczące pokrycia',
43
+ text: 'Ustaw procentowe pokrycie podłużne i poprzeczne. Wyższe pokrycie zapewnia pełne dane, ale zwiększa czas misji i liczbę zdjęć.',
44
+ },
45
+ {
46
+ name: 'Przejrzyj wyniki i eksportuj',
47
+ text: 'Sprawdź GSD, obszar pokrycia i klasyfikację precyzji. Wygeneruj szybki raport, który możesz dołączyć do swojego oficjalnego planu lotu.',
48
+ },
49
+ ];
50
+
51
+ const schemas: GsdFlightPlannerLocaleContent['schemas'] = [
52
+ {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqItems.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ } as WithContext<FAQPage>,
61
+ {
62
+ '@context': 'https://schema.org',
63
+ '@type': 'HowTo',
64
+ name: title,
65
+ description: description,
66
+ step: howToSteps.map((step, i) => ({
67
+ '@type': 'HowToStep',
68
+ position: i + 1,
69
+ name: step.name,
70
+ text: step.text,
71
+ })),
72
+ } as WithContext<HowTo>,
73
+ {
74
+ '@context': 'https://schema.org',
75
+ '@type': 'SoftwareApplication',
76
+ name: title,
77
+ description: description,
78
+ applicationCategory: 'OtherApplication',
79
+ operatingSystem: 'Web',
80
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'PLN' },
81
+ } as WithContext<SoftwareApplication>,
82
+ ];
83
+
84
+ export const content: GsdFlightPlannerLocaleContent = {
85
+ slug,
86
+ title,
87
+ description,
88
+ ui: {
89
+ configuration: 'Konfiguracja',
90
+ cameraSelection: 'Wybór kamery',
91
+ manualMode: 'Tryb ręczny',
92
+ sensorConfig: 'Konfiguracja matrycy',
93
+ width: 'Szerokość',
94
+ height: 'Wysokość',
95
+ focalLength: 'Ogniskowa',
96
+ imageResolution: 'Rozdzielczość obrazu',
97
+ w: 'S',
98
+ h: 'W',
99
+ px: 'px',
100
+ altitudeAgl: 'Wysokość (AGL)',
101
+ overlapSettings: 'Konfiguracja pokrycia',
102
+ forward: 'Podłużne',
103
+ lateral: 'Poprzeczne',
104
+ missionArea: 'Obszar misji',
105
+ totalAreaToSurvey: 'Całkowity obszar pomiaru',
106
+ hectareHint: '1 ha = 10 000 m²',
107
+ inverseCalc: 'Obliczenia odwrotne',
108
+ targetGsd: 'Docelowe GSD',
109
+ maxAltitude: 'Maks. wysokość',
110
+ reset: 'Resetuj',
111
+ results: 'Wyniki',
112
+ gsdResult: 'Rozdzielczość terenowa (GSD)',
113
+ gsdValue: 'GSD',
114
+ gsdUnit: 'cm/px',
115
+ highPrec: 'Wysoka prec.',
116
+ standard: 'Standard',
117
+ inspection: 'Inspekcja',
118
+ visual: 'Wizualne',
119
+ coveragePerImage: 'Pokrycie na zdjęcie',
120
+ area: 'Obszar',
121
+ spacing: 'Rozstaw',
122
+ flightDir: 'Lot →',
123
+ missionMetrics: 'Dane misji',
124
+ images: 'Zdjęcia',
125
+ shots: 'ujęć',
126
+ flightLines: 'Linie nalotu',
127
+ lines: 'linii',
128
+ flightTime: 'Czas lotu',
129
+ min: 'min',
130
+ dataVolume: 'Objętość danych',
131
+ gb: 'GB',
132
+ copyShareLink: 'Kopiuj link',
133
+ downloadReport: 'Pobierz raport',
134
+ copiedToClipboard: 'Skopiowano!',
135
+ metric: 'Metryczne',
136
+ imperial: 'Imperialne',
137
+ classHighPrecision: 'Topografia wysokiej precyzji',
138
+ classStandard: 'Standardowe mapowanie',
139
+ classInspection: 'Inspekcja i monitoring',
140
+ classVisual: 'Pomiary wizualne',
141
+ ultraHighResAlert: 'Bardzo wysoka rozdzielczość: upewnij się, że masz wystarczająco miejsca i mocy obliczeniowej',
142
+ lowOverlapAlert: 'Pokrycie podłużne poniżej 60%: może wpłynąć na jakość modelu 3D',
143
+ largeDatasetAlert: 'Bardzo duży zbiór danych: rozważ podział na kilka lotów',
144
+ presetDjiMavic3e: 'DJI Mavic 3E',
145
+ presetDjiMatrice300: 'DJI Matrice 300 RTK',
146
+ presetAutelEvoII: 'Autel EVO II',
147
+ presetDjiAir3s: 'DJI Air 3S',
148
+ },
149
+ seo: [
150
+ {
151
+ type: 'title',
152
+ text: 'Planer Lotu GSD: Kompletny kalkulator fotogrametryczny',
153
+ level: 2,
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: '<strong>Rozdzielczość terenowa (GSD)</strong> to najważniejszy parametr w fotogrametrii dronowej. Błąd w obliczeniach może zmarnować cały dzień lotów i kosztować tysiące w utraconej produktywności. Ten kalkulator eliminuje to ryzyko.',
158
+ },
159
+ {
160
+ type: 'title',
161
+ text: 'Dlaczego GSD jest kluczowe dla profesjonalistów',
162
+ level: 3,
163
+ },
164
+ {
165
+ type: 'paragraph',
166
+ html: 'Niezależnie od tego, czy mierzysz teren, tworzysz modele 3D, czy monitorujesz infrastrukturę, GSD decyduje o poziomie szczegółowości, jaki możesz uchwycić. Misja przy 1 cm/px rejestruje szczegóły, których misja przy 5 cm/px nie zauważy. Jednak zbyt niski lot marnuje baterię i niepotrzebnie wydłuża czas misji.',
167
+ },
168
+ {
169
+ type: 'title',
170
+ text: 'GSD według typu misji',
171
+ level: 3,
172
+ },
173
+ {
174
+ type: 'list',
175
+ items: [
176
+ '<strong>Topografia wysokiej precyzji (1-2 cm/px):</strong> Dokładność geodezyjna dla działek, terenów kopalnianych i projektów inżynieryjnych.',
177
+ '<strong>Standardowe mapowanie (2-5 cm/px):</strong> Ortomofotomapy, monitoring rolniczy i mapy ogólnego przeznaczenia.',
178
+ '<strong>Inspekcja i monitoring (5-10 cm/px):</strong> Inspekcje budynków, przeglądy linii energetycznych i wykrywanie zmian.',
179
+ '<strong>Pomiary wizualne (10+ cm/px):</strong> Rozpoznanie dużych obszarów i ocena wizualna.',
180
+ ],
181
+ },
182
+ {
183
+ type: 'title',
184
+ text: 'Wzór na GSD',
185
+ level: 3,
186
+ },
187
+ {
188
+ type: 'paragraph',
189
+ html: '<code>GSD (cm/px) = (Wysokość × Szerokość matrycy) / (Ogniskowa × Szerokość obrazu) × 100</code><br/>Ten kalkulator zajmuje się matematyką. Ty skupiasz się na misji.',
190
+ },
191
+ {
192
+ type: 'title',
193
+ text: 'Pokrycie: Dlaczego 60-80% to idealny zakres',
194
+ level: 3,
195
+ },
196
+ {
197
+ type: 'paragraph',
198
+ html: 'Niskie pokrycie (20-40%) oszczędza baterię, ale grozi lukami w danych. Wysokie pokrycie (80%+) gwarantuje ciągłość, ale wydłuża misję. <strong>Zakres 60-80%</strong> to profesjonalny standard: zapewnia pełną rekonstrukcję 3D bez nadmiernej redundancji.',
199
+ },
200
+ {
201
+ type: 'title',
202
+ text: 'Planuj lepsze misje dzięki realnym danym',
203
+ level: 3,
204
+ },
205
+ {
206
+ type: 'paragraph',
207
+ html: 'Przed każdym lotem użyj tego kalkulatora, aby określić: dokładną wysokość dla wymaganego GSD, liczbę potrzebnych zdjęć, całkowity czas misji oraz czy istnieje ryzyko rozmycia ruchu. Dzięki tym danym wykonasz precyzyjne misje i unikniesz kosztownych błędów.',
208
+ },
209
+ ],
210
+ faq: faqItems,
211
+ bibliography,
212
+ howTo: howToSteps,
213
+ schemas,
214
+ };
@@ -0,0 +1,214 @@
1
+ import type { GsdFlightPlannerLocaleContent } from '../index';
2
+ import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
3
+ import { bibliography } from '../bibliography';
4
+
5
+ const slug = 'planejador-voo-gsd';
6
+ const title = 'Planejador de Voo GSD: Calculadora de Distância de Amostragem no Solo';
7
+ const description = 'Calcule a Distância de Amostragem no Solo (GSD) para missões de fotogrametria. Suporte para DJI, Autel e câmeras personalizadas. Planejamento de voo em tempo real com indicadores de qualidade visual.';
8
+
9
+ const faqItems = [
10
+ {
11
+ question: 'O que é a Distância de Amostragem no Solo (GSD)?',
12
+ answer: 'A GSD é a distância no solo representada por um pixel na sua imagem. Uma GSD menor significa maior resolução e detalhe. Por exemplo, uma GSD de 1 cm/px permite resolver detalhes de até 1 centímetro, o que é fundamental para levantamentos topográficos.',
13
+ },
14
+ {
15
+ question: 'Como encontro as especificações da câmera do meu drone?',
16
+ answer: 'Consulte o manual do seu drone para saber as dimensões do sensor e a distância focal. Alternativamente, utilize nossos preajustes de câmera para modelos populares como o DJI Mavic 3E ou Autel EVO II. Para câmeras personalizadas, meça o tamanho do sensor nas especificações da sua lente.',
17
+ },
18
+ {
19
+ question: 'De qual GSD eu preciso para diferentes tipos de missões?',
20
+ answer: 'Topografia de alta precisão: 1-2 cm/px. Cartografia padrão: 2-5 cm/px. Inspeção e monitoramento: 5-10 cm/px. Levantamentos visuais: 10+ cm/px. Escolha com base nos requisitos de precisão do seu projeto.',
21
+ },
22
+ {
23
+ question: 'O que é a sobreposição de imagem e por que é importante?',
24
+ answer: 'A sobreposição é a porcentagem de área que aparece em fotos consecutivas. Uma sobreposição alta (60-80%) garante uma cobertura completa e melhora a qualidade do modelo 3D. A sobreposição frontal afeta o espaçamento das fotos; a sobreposição lateral afeta o número de linhas de voo.',
25
+ },
26
+ {
27
+ question: 'Como calculo a altitude de voo ideal?',
28
+ answer: 'Utilize esta calculadora: GSD desejada × distância focal ÷ largura do sensor = altitude. A calculadora faz isso automaticamente e mostra a altitude máxima segura para manter a precisão desejada e evitar o desfoque por movimento.',
29
+ },
30
+ ];
31
+
32
+ const howToSteps = [
33
+ {
34
+ name: 'Selecionar ou Configurar Câmera',
35
+ text: 'Escolha entre modelos pré-configurados (DJI Mavic 3E, Autel EVO II, etc.) ou insira as dimensões do sensor e a distância focal manualmente. Os preajustes carregam todos os parâmetros instantaneamente.',
36
+ },
37
+ {
38
+ name: 'Definir Altitude de Voo',
39
+ text: 'Use o controle deslizante de altitude para ajustar a altura acima do nível do solo (AGL). Observe como a GSD é atualizada em tempo real para ver como a altitude afeta a resolução da imagem.',
40
+ },
41
+ {
42
+ name: 'Definir Requisitos de Sobreposição',
43
+ text: 'Estabeleça as porcentagens de sobreposição frontal e lateral. Uma sobreposição maior garante uma cobertura completa, mas aumenta o tempo da missão e o número de imagens.',
44
+ },
45
+ {
46
+ name: 'Revisar Resultados e Exportar',
47
+ text: 'Verifique a GSD, a área de cobertura e a classificação de precisão. Gere um relatório rápido para anexar ao seu plano de voo oficial.',
48
+ },
49
+ ];
50
+
51
+ const schemas: GsdFlightPlannerLocaleContent['schemas'] = [
52
+ {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqItems.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ } as WithContext<FAQPage>,
61
+ {
62
+ '@context': 'https://schema.org',
63
+ '@type': 'HowTo',
64
+ name: title,
65
+ description: description,
66
+ step: howToSteps.map((step, i) => ({
67
+ '@type': 'HowToStep',
68
+ position: i + 1,
69
+ name: step.name,
70
+ text: step.text,
71
+ })),
72
+ } as WithContext<HowTo>,
73
+ {
74
+ '@context': 'https://schema.org',
75
+ '@type': 'SoftwareApplication',
76
+ name: title,
77
+ description: description,
78
+ applicationCategory: 'OtherApplication',
79
+ operatingSystem: 'Web',
80
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'BRL' },
81
+ } as WithContext<SoftwareApplication>,
82
+ ];
83
+
84
+ export const content: GsdFlightPlannerLocaleContent = {
85
+ slug,
86
+ title,
87
+ description,
88
+ ui: {
89
+ configuration: 'Configuração',
90
+ cameraSelection: 'Seleção de Câmera',
91
+ manualMode: 'Modo Manual',
92
+ sensorConfig: 'Configuração do Sensor',
93
+ width: 'Largura',
94
+ height: 'Altura',
95
+ focalLength: 'Distância Focal',
96
+ imageResolution: 'Resolução da Imagem',
97
+ w: 'L',
98
+ h: 'A',
99
+ px: 'px',
100
+ altitudeAgl: 'Altitude (AGL)',
101
+ overlapSettings: 'Configuração de Sobreposição',
102
+ forward: 'Frontal',
103
+ lateral: 'Lateral',
104
+ missionArea: 'Área da Missão',
105
+ totalAreaToSurvey: 'Área Total a Mapear',
106
+ hectareHint: '1 ha = 10.000 m²',
107
+ inverseCalc: 'Cálculo Inverso',
108
+ targetGsd: 'GSD Desejada',
109
+ maxAltitude: 'Altitude Máxima',
110
+ reset: 'Resetar',
111
+ results: 'Resultados',
112
+ gsdResult: 'Distância de Amostragem no Solo',
113
+ gsdValue: 'GSD',
114
+ gsdUnit: 'cm/px',
115
+ highPrec: 'Alta Prec.',
116
+ standard: 'Padrão',
117
+ inspection: 'Inspeção',
118
+ visual: 'Visual',
119
+ coveragePerImage: 'Cobertura por Imagem',
120
+ area: 'Área',
121
+ spacing: 'Espaçamento',
122
+ flightDir: 'Voo →',
123
+ missionMetrics: 'Métricas da Missão',
124
+ images: 'Imagens',
125
+ shots: 'fotos',
126
+ flightLines: 'Linhas de Voo',
127
+ lines: 'linhas',
128
+ flightTime: 'Tempo de Voo',
129
+ min: 'min',
130
+ dataVolume: 'Volume de Dados',
131
+ gb: 'GB',
132
+ copyShareLink: 'Copiar Link',
133
+ downloadReport: 'Baixar Relatório',
134
+ copiedToClipboard: 'Copiado!',
135
+ metric: 'Métrico',
136
+ imperial: 'Imperial',
137
+ classHighPrecision: 'Topografia de Alta Precisão',
138
+ classStandard: 'Cartografia Padrão',
139
+ classInspection: 'Inspeção e Monitoramento',
140
+ classVisual: 'Levantamento Visual',
141
+ ultraHighResAlert: 'Resolução ultra-alta: certifique-se de ter armazenamento e poder de processamento suficientes',
142
+ lowOverlapAlert: 'Sobreposição frontal abaixo de 60%: pode afetar a qualidade do modelo 3D',
143
+ largeDatasetAlert: 'Conjunto de datos muito grande: considere dividir em vários voos',
144
+ presetDjiMavic3e: 'DJI Mavic 3E',
145
+ presetDjiMatrice300: 'DJI Matrice 300 RTK',
146
+ presetAutelEvoII: 'Autel EVO II',
147
+ presetDjiAir3s: 'DJI Air 3S',
148
+ },
149
+ seo: [
150
+ {
151
+ type: 'title',
152
+ text: 'Planejador de Voo GSD: A Calculadora Completa de Fotogrametria',
153
+ level: 2,
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: 'A <strong>Distância de Amostragem no Solo (GSD)</strong> é a métrica mais importante na fotogrametria com drones. Um erro de cálculo pode desperdiçar um dia inteiro de voo e custar caro em perda de produtividade. Esta calculadora elimina esse risco.',
158
+ },
159
+ {
160
+ type: 'title',
161
+ text: 'Por que a GSD é importante para profissionais',
162
+ level: 3,
163
+ },
164
+ {
165
+ type: 'paragraph',
166
+ html: 'Seja você um agrimensor, criador de modelos 3D ou monitor de infraestrutura, a GSD determina o nível de detalhe que você pode capturar. Uma missão de 1 cm/px captura detalhes que uma de 5 cm/px perde. Mas voar baixo demais desperdiça bateria e estende o tempo da missão desnecessariamente.',
167
+ },
168
+ {
169
+ type: 'title',
170
+ text: 'GSD por tipo de missão',
171
+ level: 3,
172
+ },
173
+ {
174
+ type: 'list',
175
+ items: [
176
+ '<strong>Topografia de Alta Precisão (1-2 cm/px):</strong> Precisão de grau topográfico para parcelas, minas e projetos de engenharia.',
177
+ '<strong>Cartografia Padrão (2-5 cm/px):</strong> Ortomosaicos, monitoramento agrícola e mapas de propósito geral.',
178
+ '<strong>Inspeção e Monitoramento (5-10 cm/px):</strong> Inspeção de edifícios, revisão de linhas elétricas e detecção de mudanças.',
179
+ '<strong>Levantamentos Visuais (10+ cm/px):</strong> Reconhecimento de grandes áreas e avaliação visual.',
180
+ ],
181
+ },
182
+ {
183
+ type: 'title',
184
+ text: 'A Fórmula GSD',
185
+ level: 3,
186
+ },
187
+ {
188
+ type: 'paragraph',
189
+ html: '<code>GSD (cm/px) = (Altitude × Largura do Sensor) / (Distância Focal × Largura da Imagem) × 100</code><br/>Esta calculadora cuida da matemática. Você foca na missão.',
190
+ },
191
+ {
192
+ type: 'title',
193
+ text: 'Sobreposição: Por que 60-80% é o ponto ideal',
194
+ level: 3,
195
+ },
196
+ {
197
+ type: 'paragraph',
198
+ html: 'Uma sobreposição baixa (20-40%) economiza bateria, mas arrisca lacunas na cobertura. Uma sobreposição alta (80%+) garante cobertura total, mas estende o tempo. O <strong>intervalo de 60-80%</strong> é o padrão profissional: garante uma reconstrução 3D completa sem redundância excessiva.',
199
+ },
200
+ {
201
+ type: 'title',
202
+ text: 'Planeje missões melhores com dados reais',
203
+ level: 3,
204
+ },
205
+ {
206
+ type: 'paragraph',
207
+ html: 'Antes de cada voo, use esta calculadora para determinar: a altitude exata para a GSD necessária, quantas fotos você precisará, o tempo total da missão e se há risco de desfoque por movimento. Com esses dados, você executará missões precisas e evitará erros dispendiosos.',
208
+ },
209
+ ],
210
+ faq: faqItems,
211
+ bibliography,
212
+ howTo: howToSteps,
213
+ schemas,
214
+ };
@@ -0,0 +1,214 @@
1
+ import type { GsdFlightPlannerLocaleContent } from '../index';
2
+ import type { WithContext, SoftwareApplication, FAQPage, HowTo } from 'schema-dts';
3
+ import { bibliography } from '../bibliography';
4
+
5
+ const slug = 'planirovshchik-poletov-gsd';
6
+ const title = 'Планировщик полетов GSD: Калькулятор наземного разрешения';
7
+ const description = 'Рассчитайте наземное разрешение (GSD) для миссий фотограмметрии. Поддержка DJI, Autel и пользовательских камер. Планирование полета в реальном времени с визуальными индикаторами качества.';
8
+
9
+ const faqItems = [
10
+ {
11
+ question: 'Что такое наземное разрешение (GSD)?',
12
+ answer: 'GSD — это расстояние на земле, соответствующее одному пикселю вашего изображения. Чем ниже GSD, тем выше разрешение и детализация. Например, GSD 1 см/пикс позволяет различать детали размером 1 сантиметр, что критически важно для геодезии.',
13
+ },
14
+ {
15
+ question: 'Как найти характеристики камеры моего дрона?',
16
+ answer: 'Проверьте руководство к дрону на наличие размеров матрицы и фокусного расстояния. Также вы можете использовать наши пресеты для популярных моделей, таких как DJI Mavic 3E или Autel EVO II. Для пользовательских камер измерьте размер матрицы по спецификациям объектива.',
17
+ },
18
+ {
19
+ question: 'Какое значение GSD мне нужно для разных типов миссий?',
20
+ answer: 'Высокоточная топография: 1-2 см/пикс. Стандартное картографирование: 2-5 см/пикс. Инспекция и мониторинг: 5-10 см/пикс. Визуальное обследование: 10+ см/пикс. Выбирайте в зависимости от требований точности вашего проекта.',
21
+ },
22
+ {
23
+ question: 'Что такое перекрытие снимков и почему оно важно?',
24
+ answer: 'Перекрытие — это процент площади, который повторяется на последовательных фотографиях. Высокое перекрытие (60-80%) обеспечивает полное покрытие и улучшает качество 3D-модели. Продольное перекрытие влияет на частоту снимков; поперечное — на количество пролетов.',
25
+ },
26
+ {
27
+ question: 'Как рассчитать идеальную высоту полета?',
28
+ answer: 'Используйте этот калькулятор: Желаемое GSD × фокусное расстояние ÷ ширина матрицы = высота. Калькулятор сделает это автоматически и покажет максимальную безопасную высоту для поддержания целевой точности и предотвращения смаза.',
29
+ },
30
+ ];
31
+
32
+ const howToSteps = [
33
+ {
34
+ name: 'Выберите или настройте камеру',
35
+ text: 'Выберите модель из списка (DJI Mavic 3E, Autel EVO II и др.) или введите параметры матрицы и фокусное расстояние вручную. Пресеты загружают все параметры мгновенно.',
36
+ },
37
+ {
38
+ name: 'Установите высоту полета',
39
+ text: 'Используйте слайдер высоты, чтобы настроить высоту над уровнем земли (AGL). Следите за обновлением GSD в реальном времени, чтобы увидеть, как высота влияет на разрешение.',
40
+ },
41
+ {
42
+ name: 'Определите требования к перекрытию',
43
+ text: 'Установите проценты продольного и поперечного перекрытия. Более высокое перекрытие гарантирует полноту данных, но увеличивает время миссии и количество снимков.',
44
+ },
45
+ {
46
+ name: 'Проверьте результаты и экспортируйте',
47
+ text: 'Проверьте GSD, зону покрытия и классификацию точности. Сгенерируйте краткий отчет для приложения к вашему официальному полетному плану.',
48
+ },
49
+ ];
50
+
51
+ const schemas: GsdFlightPlannerLocaleContent['schemas'] = [
52
+ {
53
+ '@context': 'https://schema.org',
54
+ '@type': 'FAQPage',
55
+ mainEntity: faqItems.map((item) => ({
56
+ '@type': 'Question',
57
+ name: item.question,
58
+ acceptedAnswer: { '@type': 'Answer', text: item.answer },
59
+ })),
60
+ } as WithContext<FAQPage>,
61
+ {
62
+ '@context': 'https://schema.org',
63
+ '@type': 'HowTo',
64
+ name: title,
65
+ description: description,
66
+ step: howToSteps.map((step, i) => ({
67
+ '@type': 'HowToStep',
68
+ position: i + 1,
69
+ name: step.name,
70
+ text: step.text,
71
+ })),
72
+ } as WithContext<HowTo>,
73
+ {
74
+ '@context': 'https://schema.org',
75
+ '@type': 'SoftwareApplication',
76
+ name: title,
77
+ description: description,
78
+ applicationCategory: 'OtherApplication',
79
+ operatingSystem: 'Web',
80
+ offers: { '@type': 'Offer', price: '0', priceCurrency: 'RUB' },
81
+ } as WithContext<SoftwareApplication>,
82
+ ];
83
+
84
+ export const content: GsdFlightPlannerLocaleContent = {
85
+ slug,
86
+ title,
87
+ description,
88
+ ui: {
89
+ configuration: 'Конфигурация',
90
+ cameraSelection: 'Выбор камеры',
91
+ manualMode: 'Ручной режим',
92
+ sensorConfig: 'Настройка матрицы',
93
+ width: 'Ширина',
94
+ height: 'Высота',
95
+ focalLength: 'Фокусное расстояние',
96
+ imageResolution: 'Разрешение снимка',
97
+ w: 'Ш',
98
+ h: 'В',
99
+ px: 'пикс',
100
+ altitudeAgl: 'Высота (AGL)',
101
+ overlapSettings: 'Настройка перекрытия',
102
+ forward: 'Продольное',
103
+ lateral: 'Поперечное',
104
+ missionArea: 'Зона миссии',
105
+ totalAreaToSurvey: 'Общая площадь съемки',
106
+ hectareHint: '1 га = 10 000 м²',
107
+ inverseCalc: 'Обратный расчет',
108
+ targetGsd: 'Целевое GSD',
109
+ maxAltitude: 'Макс. высота',
110
+ reset: 'Сброс',
111
+ results: 'Результаты',
112
+ gsdResult: 'Наземное разрешение (GSD)',
113
+ gsdValue: 'GSD',
114
+ gsdUnit: 'см/пикс',
115
+ highPrec: 'Выс. точн.',
116
+ standard: 'Стандарт',
117
+ inspection: 'Инспекция',
118
+ visual: 'Обзор',
119
+ coveragePerImage: 'Покрытие на один снимок',
120
+ area: 'Площадь',
121
+ spacing: 'Шаг',
122
+ flightDir: 'Полет →',
123
+ missionMetrics: 'Данные миссии',
124
+ images: 'Снимки',
125
+ shots: 'кадров',
126
+ flightLines: 'Линии пролета',
127
+ lines: 'линий',
128
+ flightTime: 'Время полета',
129
+ min: 'мин',
130
+ dataVolume: 'Объем данных',
131
+ gb: 'ГБ',
132
+ copyShareLink: 'Копировать ссылку',
133
+ downloadReport: 'Скачать отчет',
134
+ copiedToClipboard: 'Скопировано!',
135
+ metric: 'Метрическая',
136
+ imperial: 'Имперская',
137
+ classHighPrecision: 'Высокоточная топография',
138
+ classStandard: 'Стандартное картографирование',
139
+ classInspection: 'Инспекция и мониторинг',
140
+ classVisual: 'Визуальное обследование',
141
+ ultraHighResAlert: 'Сверхвысокое разрешение: убедитесь в достаточном объеме памяти и мощности процессора',
142
+ lowOverlapAlert: 'Продольное перекрытие ниже 60%: может пострадать качество 3D-модели',
143
+ largeDatasetAlert: 'Очень большой набор данных: рассмотрите возможность разделения на несколько полетов',
144
+ presetDjiMavic3e: 'DJI Mavic 3E',
145
+ presetDjiMatrice300: 'DJI Matrice 300 RTK',
146
+ presetAutelEvoII: 'Autel EVO II',
147
+ presetDjiAir3s: 'DJI Air 3S',
148
+ },
149
+ seo: [
150
+ {
151
+ type: 'title',
152
+ text: 'Планировщик полетов GSD: Полный фотограмметрический калькулятор',
153
+ level: 2,
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: '<strong>Наземное разрешение (GSD)</strong> — важнейший показатель в фотограмметрии с дронов. Ошибка в расчетах может привести к потере целого полетного дня и стоить тысячи в виде упущенной производительности. Этот калькулятор устраняет этот риск.',
158
+ },
159
+ {
160
+ type: 'title',
161
+ text: 'Почему GSD важно для профессионалов',
162
+ level: 3,
163
+ },
164
+ {
165
+ type: 'paragraph',
166
+ html: 'Занимаетесь ли вы геодезией, созданием 3D-моделей или мониторингом инфраструктуры, GSD определяет уровень детализации, который вы можете зафиксировать. Миссия с разрешением 1 см/пикс фиксирует детали, которые будут пропущены при 5 см/пикс. Однако слишком низкий полет излишне расходует батарею и увеличивает время миссии.',
167
+ },
168
+ {
169
+ type: 'title',
170
+ text: 'GSD по типу миссии',
171
+ level: 3,
172
+ },
173
+ {
174
+ type: 'list',
175
+ items: [
176
+ '<strong>Высокоточная топография (1-2 см/пикс):</strong> Точность геодезического класса для участков, карьеров и инженерных проектов.',
177
+ '<strong>Стандартное картографирование (2-5 см/пикс):</strong> Ортофотопланы, мониторинг сельского хозяйства и карты общего назначения.',
178
+ '<strong>Инспекция и мониторинг (5-10 см/пикс):</strong> Инспекция зданий, проверка линий электропередач и обнаружение изменений.',
179
+ '<strong>Визуальное обследование (10+ см/пикс):</strong> Разведка больших территорий и визуальная оценка.',
180
+ ],
181
+ },
182
+ {
183
+ type: 'title',
184
+ text: 'Формула GSD',
185
+ level: 3,
186
+ },
187
+ {
188
+ type: 'paragraph',
189
+ html: '<code>GSD (см/пикс) = (Высота × Ширина матрицы) / (Фокусное расстояние × Ширина изображения) × 100</code><br/>Этот калькулятор берет математику на себя. Вы фокусируетесь на миссии.',
190
+ },
191
+ {
192
+ type: 'title',
193
+ text: 'Перекрытие: Почему 60-80% — это «золотая середина»',
194
+ level: 3,
195
+ },
196
+ {
197
+ type: 'paragraph',
198
+ html: 'Низкое перекрытие (20-40%) экономит заряд батареи, но создает риск пробелов в данных. Высокое перекрытие (80%+) гарантирует полноту данных, но увеличивает время миссии. <strong>Диапазон 60-80%</strong> является профессиональным стандартом: он обеспечивает полную 3D-реконструкцию без лишней избыточности.',
199
+ },
200
+ {
201
+ type: 'title',
202
+ text: 'Планируйте миссии лучше с реальными данными',
203
+ level: 3,
204
+ },
205
+ {
206
+ type: 'paragraph',
207
+ html: 'Перед каждым полетом используйте этот калькулятор, чтобы определить: точную высоту для требуемого GSD, количество необходимых фотографий, общее время миссии и наличие риска смаза изображения. С этими данными вы будете выполнять точные миссии и избежите дорогостоящих ошибок.',
208
+ },
209
+ ],
210
+ faq: faqItems,
211
+ bibliography,
212
+ howTo: howToSteps,
213
+ schemas,
214
+ };