@jjlmoya/utils-drones 1.16.0 → 1.18.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 (67) hide show
  1. package/package.json +1 -1
  2. package/src/category/i18n/fr.ts +9 -9
  3. package/src/category/i18n/ru.ts +5 -5
  4. package/src/entries.ts +4 -1
  5. package/src/index.ts +1 -0
  6. package/src/tests/diacritics_density.test.ts +118 -0
  7. package/src/tests/inverted_punctuation.test.ts +84 -0
  8. package/src/tests/locale_completeness.test.ts +2 -2
  9. package/src/tests/no_en_dash.test.ts +70 -0
  10. package/src/tests/script_density.test.ts +94 -0
  11. package/src/tests/tool_validation.test.ts +2 -2
  12. package/src/tool/antenna-length-calculator/i18n/de.ts +2 -2
  13. package/src/tool/antenna-length-calculator/i18n/fr.ts +12 -12
  14. package/src/tool/antenna-length-calculator/i18n/ru.ts +6 -6
  15. package/src/tool/antenna-length-calculator/i18n/tr.ts +3 -3
  16. package/src/tool/antenna-length-calculator/i18n/zh.ts +10 -10
  17. package/src/tool/drone-flight-time/drone-flight-time-calculator.css +65 -7
  18. package/src/tool/drone-flight-time/i18n/fr.ts +11 -11
  19. package/src/tool/drone-flight-time/i18n/ru.ts +9 -9
  20. package/src/tool/drone-flight-time/i18n/sv.ts +3 -3
  21. package/src/tool/drone-flight-time/i18n/zh.ts +2 -2
  22. package/src/tool/drone-power-analyzer/i18n/de.ts +10 -10
  23. package/src/tool/drone-power-analyzer/i18n/en.ts +9 -9
  24. package/src/tool/drone-power-analyzer/i18n/es.ts +6 -6
  25. package/src/tool/drone-power-analyzer/i18n/fr.ts +16 -16
  26. package/src/tool/drone-power-analyzer/i18n/id.ts +9 -9
  27. package/src/tool/drone-power-analyzer/i18n/it.ts +6 -6
  28. package/src/tool/drone-power-analyzer/i18n/ja.ts +4 -4
  29. package/src/tool/drone-power-analyzer/i18n/ko.ts +4 -4
  30. package/src/tool/drone-power-analyzer/i18n/nl.ts +9 -9
  31. package/src/tool/drone-power-analyzer/i18n/pl.ts +11 -11
  32. package/src/tool/drone-power-analyzer/i18n/pt.ts +9 -9
  33. package/src/tool/drone-power-analyzer/i18n/ru.ts +17 -17
  34. package/src/tool/drone-power-analyzer/i18n/sv.ts +9 -9
  35. package/src/tool/drone-power-analyzer/i18n/tr.ts +9 -9
  36. package/src/tool/drone-power-analyzer/i18n/zh.ts +13 -13
  37. package/src/tool/gps-coordinates-converter/i18n/fr.ts +10 -10
  38. package/src/tool/gps-coordinates-converter/i18n/it.ts +2 -2
  39. package/src/tool/gps-coordinates-converter/i18n/pt.ts +4 -4
  40. package/src/tool/gps-coordinates-converter/i18n/ru.ts +7 -7
  41. package/src/tool/gps-coordinates-converter/i18n/zh.ts +4 -4
  42. package/src/tool/gsd-flight-planner/InputsColumn.astro +108 -0
  43. package/src/tool/gsd-flight-planner/ResultsColumn.astro +90 -0
  44. package/src/tool/gsd-flight-planner/bibliography.astro +6 -0
  45. package/src/tool/gsd-flight-planner/bibliography.ts +7 -0
  46. package/src/tool/gsd-flight-planner/component.astro +22 -0
  47. package/src/tool/gsd-flight-planner/entry.ts +29 -0
  48. package/src/tool/gsd-flight-planner/gsd-flight-planner.css +515 -0
  49. package/src/tool/gsd-flight-planner/i18n/de.ts +214 -0
  50. package/src/tool/gsd-flight-planner/i18n/en.ts +214 -0
  51. package/src/tool/gsd-flight-planner/i18n/es.ts +221 -0
  52. package/src/tool/gsd-flight-planner/i18n/fr.ts +214 -0
  53. package/src/tool/gsd-flight-planner/i18n/id.ts +214 -0
  54. package/src/tool/gsd-flight-planner/i18n/it.ts +214 -0
  55. package/src/tool/gsd-flight-planner/i18n/ja.ts +214 -0
  56. package/src/tool/gsd-flight-planner/i18n/ko.ts +214 -0
  57. package/src/tool/gsd-flight-planner/i18n/nl.ts +214 -0
  58. package/src/tool/gsd-flight-planner/i18n/pl.ts +214 -0
  59. package/src/tool/gsd-flight-planner/i18n/pt.ts +214 -0
  60. package/src/tool/gsd-flight-planner/i18n/ru.ts +214 -0
  61. package/src/tool/gsd-flight-planner/i18n/sv.ts +214 -0
  62. package/src/tool/gsd-flight-planner/i18n/tr.ts +214 -0
  63. package/src/tool/gsd-flight-planner/i18n/zh.ts +214 -0
  64. package/src/tool/gsd-flight-planner/index.ts +8 -0
  65. package/src/tool/gsd-flight-planner/logic.js +326 -0
  66. package/src/tool/gsd-flight-planner/seo.astro +15 -0
  67. 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 = 'gsd-flight-planner';
6
+ const title = 'GSD フライトプランナー: ドローン地上画素寸法計算機';
7
+ const description = 'フォトグラメトリ・ミッションの地上画素寸法 (GSD) を計算。DJI、Autel、カスタムカメラをサポート。視覚的な品質指標によるリアルタイムの飛行計画。';
8
+
9
+ const faqItems = [
10
+ {
11
+ question: '地上画素寸法 (GSD) とは何ですか?',
12
+ answer: 'GSDは、画像内の1ピクセルが地上で表す距離です。GSDが低いほど、解像度と詳細度が高くなります。例えば、GSDが1 cm/pxの場合、1センチメートルという微細な詳細を判別でき、測量において重要です。',
13
+ },
14
+ {
15
+ question: 'ドローンのカメラ仕様はどこで確認できますか?',
16
+ answer: 'センサーサイズと焦点距離については、ドローンのマニュアルを確認してください。または、DJI Mavic 3EやAutel EVO IIなどの主要モデル用のカメラプリセットを使用してください。カスタムカメラの場合は、レンズの仕様からセンサーサイズを測定してください。',
17
+ },
18
+ {
19
+ question: 'ミッションの種類ごとに必要なGSDはどれくらいですか?',
20
+ answer: '高精度地形測量:1-2 cm/px。標準マッピング:2-5 cm/px。点検・モニタリング:5-10 cm/px。目視調査:10+ cm/px。プロジェクトの精度要件に基づいて選択してください。',
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: 'JPY' },
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: 'px',
100
+ altitudeAgl: '高度 (AGL)',
101
+ overlapSettings: 'ラップ設定',
102
+ forward: '前方',
103
+ lateral: '側方',
104
+ missionArea: 'ミッションエリア',
105
+ totalAreaToSurvey: '総調査面積',
106
+ hectareHint: '1 ha = 10,000 m²',
107
+ inverseCalc: '逆算',
108
+ targetGsd: '目標GSD',
109
+ maxAltitude: '最大高度',
110
+ reset: 'リセット',
111
+ results: '結果',
112
+ gsdResult: '地上画素寸法 (GSD)',
113
+ gsdValue: 'GSD',
114
+ gsdUnit: 'cm/px',
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: '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 cm/pxのミッションは、5 cm/pxでは見逃してしまう詳細を捉えます。しかし、低空飛行しすぎるとバッテリーを浪費し、ミッション時間を不必要に延ばしてしまいます。',
167
+ },
168
+ {
169
+ type: 'title',
170
+ text: 'ミッションタイプ別GSD',
171
+ level: 3,
172
+ },
173
+ {
174
+ type: 'list',
175
+ items: [
176
+ '<strong>高精度地形測量 (1-2 cm/px):</strong> 区画、鉱山跡地、エンジニアリングプロジェクト向けの地形グレード精度。',
177
+ '<strong>標準マッピング (2-5 cm/px):</strong> オルソモザイク、農業モニタリング、一般目的の地図。',
178
+ '<strong>点検・モニタリング (5-10 cm/px):</strong> 建物点検、送電線チェック、変化検出。',
179
+ '<strong>目視調査 (10+ cm/px):</strong> 広域偵察と視覚的評価。',
180
+ ],
181
+ },
182
+ {
183
+ type: 'title',
184
+ text: 'GSDの計算式',
185
+ level: 3,
186
+ },
187
+ {
188
+ type: 'paragraph',
189
+ html: '<code>GSD (cm/px) = (高度 × センサー幅) / (焦点距離 × 画像幅) × 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
+ };
@@ -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 = 'gsd-flight-planner';
6
+ const title = 'GSD 플라이트 플래너: 드론 지상 화소 해상도 계산기';
7
+ const description = '사진측량 미션을 위한 지상 화소 해상도(GSD)를 계산하세요. DJI, Autel 및 맞춤형 카메라를 지원합니다. 시각적 품질 지표를 통한 실시간 비행 계획을 제공합니다.';
8
+
9
+ const faqItems = [
10
+ {
11
+ question: '지상 화소 해상도(GSD)란 무엇인가요?',
12
+ answer: 'GSD는 이미지의 한 픽셀이 지상에서 나타내는 거리입니다. GSD가 낮을수록 해상도와 세밀함이 높아집니다. 예를 들어, 1 cm/px GSD는 1센티미터 크기의 세부 사항을 식별할 수 있게 해주며, 이는 측량에 있어 매우 중요합니다.',
13
+ },
14
+ {
15
+ question: '내 드론의 카메라 사양은 어디서 찾을 수 있나요?',
16
+ answer: '드론 매뉴얼에서 센서 크기와 초점 거리를 확인하세요. 또는 DJI Mavic 3E나 Autel EVO II와 같은 인기 모델을 위한 카메라 프리셋을 사용하세요. 맞춤형 카메라의 경우, 렌즈 사양에서 센서 크기를 측정하세요.',
17
+ },
18
+ {
19
+ question: '미션 유형별로 어떤 GSD가 필요한가요?',
20
+ answer: '고정밀 지형 측량: 1-2 cm/px. 표준 매핑: 2-5 cm/px. 점검 및 모니터링: 5-10 cm/px. 시각적 조사: 10+ cm/px. 프로젝트의 정확도 요구 사항에 따라 선택하세요.',
21
+ },
22
+ {
23
+ question: '이미지 중첩이란 무엇이며 왜 중요한가요?',
24
+ answer: '중첩(Overlap)은 연속된 사진에 나타나는 영역의 백분율입니다. 높은 중첩(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: 'KRW' },
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: 'px',
100
+ altitudeAgl: '고도 (AGL)',
101
+ overlapSettings: '중첩 설정',
102
+ forward: '전방',
103
+ lateral: '측방',
104
+ missionArea: '미션 영역',
105
+ totalAreaToSurvey: '총 조사 면적',
106
+ hectareHint: '1 ha = 10,000 m²',
107
+ inverseCalc: '역계산',
108
+ targetGsd: '목표 GSD',
109
+ maxAltitude: '최대 고도',
110
+ reset: '초기화',
111
+ results: '결과',
112
+ gsdResult: '지상 화소 해상도 (GSD)',
113
+ gsdValue: 'GSD',
114
+ gsdUnit: 'cm/px',
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: '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 cm/px 미션은 5 cm/px 미션이 놓치는 세부 사항을 캡처합니다. 하지만 너무 낮게 비행하면 배터리를 낭비하고 미션 시간을 불필요하게 연장합니다.',
167
+ },
168
+ {
169
+ type: 'title',
170
+ text: '미션 유형별 GSD',
171
+ level: 3,
172
+ },
173
+ {
174
+ type: 'list',
175
+ items: [
176
+ '<strong>고정밀 지형 측량 (1-2 cm/px):</strong> 필지, 광산 현장 및 엔지니어링 프로젝트를 위한 지형 등급 정확도.',
177
+ '<strong>표준 매핑 (2-5 cm/px):</strong> 정사영상, 농업 모니터링 및 일반 목적 지도.',
178
+ '<strong>점검 및 모니터링 (5-10 cm/px):</strong> 건물 점검, 전력선 검토 및 변화 탐지.',
179
+ '<strong>시각적 조사 (10+ cm/px):</strong> 광범위한 지역 정찰 및 시각적 평가.',
180
+ ],
181
+ },
182
+ {
183
+ type: 'title',
184
+ text: 'GSD 공식',
185
+ level: 3,
186
+ },
187
+ {
188
+ type: 'paragraph',
189
+ html: '<code>GSD (cm/px) = (고도 × 센서 너비) / (초점 거리 × 이미지 너비) × 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
+ };
@@ -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 = 'gsd-vluchtplanner';
6
+ const title = 'GSD Vluchtplanner: Grondmonster Afstand Calculator';
7
+ const description = 'Bereken de Grondmonster Afstand (GSD) voor fotogrammetrie missies. Ondersteuning voor DJI, Autel en aangepaste camera\'s. Real-time vluchtplanning met visuele kwaliteitsindicatoren.';
8
+
9
+ const faqItems = [
10
+ {
11
+ question: 'Wat is Grondmonster Afstand (GSD)?',
12
+ answer: 'GSD is de afstand op de grond die wordt vertegenwoordigd door één pixel in uw afbeelding. Een lagere GSD betekent een hogere resolutie en meer detail. Bijvoorbeeld, een 1 cm/px GSD stelt u in staat om details tot 1 centimeter groot te onderscheiden, wat cruciaal is voor landmetingen.',
13
+ },
14
+ {
15
+ question: 'Hoe vind ik de specificaties van mijn drone camera?',
16
+ answer: 'Raadpleeg de handleiding van uw drone voor de sensorafmetingen en brandpuntsafstand. U kunt ook onze camera-presets gebruiken voor populaire modellen zoals de DJI Mavic 3E of Autel EVO II. Voor aangepaste camera\'s meet u de sensorgrootte aan de hand van uw lensspecificaties.',
17
+ },
18
+ {
19
+ question: 'Welke GSD heb ik nodig voor verschillende soorten missies?',
20
+ answer: 'Hoge precisie topografie: 1-2 cm/px. Standaard kartering: 2-5 cm/px. Inspectie en monitoring: 5-10 cm/px. Visuele verkenningen: 10+ cm/px. Kies op basis van de nauwkeurigheidseisen van uw project.',
21
+ },
22
+ {
23
+ question: 'Wat is overlap en waarom is het belangrijk?',
24
+ answer: 'Overlap is het percentage van het gebied dat in opeenvolgende foto\'s verschijnt. Hoge overlap (60-80%) zorgt voor volledige dekking en verbetert de kwaliteit van het 3D-model. Frontale overlap beïnvloedt de foto-afstand; laterale overlap beïnvloedt het aantal vluchtlijnen.',
25
+ },
26
+ {
27
+ question: 'Hoe bereken ik de ideale vlieghoogte?',
28
+ answer: 'Gebruik deze calculator: Gewenste GSD × brandpuntsafstand ÷ sensorbreedte = hoogte. De calculator doet dit automatisch en toont de maximale veilige hoogte om uw doelprecisie te behouden en bewegingsonscherpte te voorkomen.',
29
+ },
30
+ ];
31
+
32
+ const howToSteps = [
33
+ {
34
+ name: 'Selecteer of configureer de camera',
35
+ text: 'Kies uit voorgeconfigureerde modellen (DJI Mavic 3E, Autel EVO II, enz.) of voer handmatig de sensorafmetingen en brandpuntsafstand in. Presets laden alle parameters direct.',
36
+ },
37
+ {
38
+ name: 'Stel de vlieghoogte in',
39
+ text: 'Gebruik de hoogteschuifregelaar om de hoogte boven het maaiveld (AGL) aan te passen. Bekijk de GSD-update in real-time om te zien hoe de hoogte de beeldresolutie beïnvloedt.',
40
+ },
41
+ {
42
+ name: 'Definieer overlap-eisen',
43
+ text: 'Stel de percentages voor frontale und laterale overlap in. Hogere overlap zorgt voor volledige dekking maar verhoogt de missietijd en het aantal beelden.',
44
+ },
45
+ {
46
+ name: 'Resultaten bekijken en exporteren',
47
+ text: 'Controleer de GSD, het dekkingsgebied en de precisieclassificatie. Genereer een snel rapport om bij uw officiële vluchtplan te voegen.',
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: 'EUR' },
81
+ } as WithContext<SoftwareApplication>,
82
+ ];
83
+
84
+ export const content: GsdFlightPlannerLocaleContent = {
85
+ slug,
86
+ title,
87
+ description,
88
+ ui: {
89
+ configuration: 'Configuratie',
90
+ cameraSelection: 'Cameraselectie',
91
+ manualMode: 'Handmatige Modus',
92
+ sensorConfig: 'Sensorconfiguratie',
93
+ width: 'Breedte',
94
+ height: 'Hoogte',
95
+ focalLength: 'Brandpuntsafstand',
96
+ imageResolution: 'Beeldresolutie',
97
+ w: 'B',
98
+ h: 'H',
99
+ px: 'px',
100
+ altitudeAgl: 'Hoogte (AGL)',
101
+ overlapSettings: 'Overlapconfiguratie',
102
+ forward: 'Frontaal',
103
+ lateral: 'Lateraal',
104
+ missionArea: 'Missiegebied',
105
+ totalAreaToSurvey: 'Totaal te Meten Gebied',
106
+ hectareHint: '1 ha = 10.000 m²',
107
+ inverseCalc: 'Omgekeerde Berekening',
108
+ targetGsd: 'Doel-GSD',
109
+ maxAltitude: 'Max Hoogte',
110
+ reset: 'Resetten',
111
+ results: 'Resultaten',
112
+ gsdResult: 'Grondmonster Afstand (GSD)',
113
+ gsdValue: 'GSD',
114
+ gsdUnit: 'cm/px',
115
+ highPrec: 'Hoge Prec.',
116
+ standard: 'Standaard',
117
+ inspection: 'Inspectie',
118
+ visual: 'Visueel',
119
+ coveragePerImage: 'Dekking per Beeld',
120
+ area: 'Oppervlakte',
121
+ spacing: 'Afstand',
122
+ flightDir: 'Vlucht →',
123
+ missionMetrics: 'Missiegegevens',
124
+ images: 'Beelden',
125
+ shots: 'foto\'s',
126
+ flightLines: 'Vluchtlijnen',
127
+ lines: 'lijnen',
128
+ flightTime: 'Vliegtijd',
129
+ min: 'min',
130
+ dataVolume: 'Datavolume',
131
+ gb: 'GB',
132
+ copyShareLink: 'Link Kopiëren',
133
+ downloadReport: 'Rapport Downloaden',
134
+ copiedToClipboard: 'Gekopieerd!',
135
+ metric: 'Metrisch',
136
+ imperial: 'Imperiaal',
137
+ classHighPrecision: 'Hoge Precisie Topografie',
138
+ classStandard: 'Standaard Kartering',
139
+ classInspection: 'Inspectie & Monitoring',
140
+ classVisual: 'Visuele Verkenning',
141
+ ultraHighResAlert: 'Ultra-hoge resolutie: zorg voor voldoende opslag en rekenkracht',
142
+ lowOverlapAlert: 'Frontale overlap onder 60%: kan de kwaliteit van het 3D-model beïnvloeden',
143
+ largeDatasetAlert: 'Zeer grote dataset: overweeg om de vlucht op te splitsen',
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 Vluchtplanner: De Complete Fotogrammetrie Calculator',
153
+ level: 2,
154
+ },
155
+ {
156
+ type: 'paragraph',
157
+ html: '<strong>Grondmonster Afstand (GSD)</strong> is de belangrijkste waarde in drone fotogrammetrie. Een rekenfout kan een hele vliegdag verspillen en duizenden euro\'s aan verloren productiviteit kosten. Deze calculator elimineert dat risico.',
158
+ },
159
+ {
160
+ type: 'title',
161
+ text: 'Waarom GSD cruciaal is voor professionals',
162
+ level: 3,
163
+ },
164
+ {
165
+ type: 'paragraph',
166
+ html: 'Of u nu land meet, 3D-modellen maakt of infrastructuur monitort, de GSD bepaalt het detailniveau dat u kunt vastleggen. Een missie met 1 cm/px legt details vast die een missie met 5 cm/px mist. Maar te laag vliegen verspilt de accu en verlengt de missietijd onnodig.',
167
+ },
168
+ {
169
+ type: 'title',
170
+ text: 'GSD per missietype',
171
+ level: 3,
172
+ },
173
+ {
174
+ type: 'list',
175
+ items: [
176
+ '<strong>Hoge Precisie Topografie (1-2 cm/px):</strong> Landmeetkundige nauwkeurigheit voor percelen, mijnbouwlocaties en technische projecten.',
177
+ '<strong>Standaard Kartering (2-5 cm/px):</strong> Orthomozaïeken, landbouwmonitoring en algemene kaarten.',
178
+ '<strong>Inspectie en Monitoring (5-10 cm/px):</strong> Gebouwinspecties, controle van hoogspanningslijnen en veranderingsdetectie.',
179
+ '<strong>Visuele Verkenning (10+ cm/px):</strong> Verkenning van grote gebieden en visuele beoordeling.',
180
+ ],
181
+ },
182
+ {
183
+ type: 'title',
184
+ text: 'De GSD-formule',
185
+ level: 3,
186
+ },
187
+ {
188
+ type: 'paragraph',
189
+ html: '<code>GSD (cm/px) = (Hoogte × Sensorbreedte) / (Brandpuntsafstand × Beeldbreedte) × 100</code><br/>Deze calculator regelt de wiskunde. U concentreert zich op de missie.',
190
+ },
191
+ {
192
+ type: 'title',
193
+ text: 'Overlap: Waarom 60-80% optimaal is',
194
+ level: 3,
195
+ },
196
+ {
197
+ type: 'paragraph',
198
+ html: 'Lage overlap (20-40%) bespaart de accu maar riskeert gaten in de dekking. Hoge overlap (80%+) garandeert volledige dekking maar verlengt de missietijd. Het <strong>bereik van 60-80%</strong> is de professionele standaard: het zorgt voor een volledige 3D-reconstructie zonder overbodige redundantie.',
199
+ },
200
+ {
201
+ type: 'title',
202
+ text: 'Plan betere missies met echte data',
203
+ level: 3,
204
+ },
205
+ {
206
+ type: 'paragraph',
207
+ html: 'Gebruik voor elke vlucht deze calculator om te bepalen: de exacte hoogte voor uw benodigde GSD, hoeveel foto\'s u nodig heeft, de totale missietijd en of er risico is op bewegingsonscherpte. Met deze gegevens voert u nauwkeurige missies uit en voorkomt u kostbare fouten.',
208
+ },
209
+ ],
210
+ faq: faqItems,
211
+ bibliography,
212
+ howTo: howToSteps,
213
+ schemas,
214
+ };