@geoalgeria/culture 1.0.0 → 2.0.1

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.
package/README.ar.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # @geoalgeria/culture
6
6
 
7
- **الأطلس الثقافي للجزائر كبيانات قابلة للتثبيت.**
7
+ **الأطلس الثقافي للجزائر، كبيانات قابلة للتثبيت.**
8
8
 
9
9
  [![npm](https://img.shields.io/npm/v/@geoalgeria/culture)](https://www.npmjs.com/package/@geoalgeria/culture)
10
10
  [![npm downloads](https://img.shields.io/npm/dm/@geoalgeria/culture)](https://www.npmjs.com/package/@geoalgeria/culture)
@@ -12,7 +12,7 @@
12
12
 
13
13
  </div>
14
14
 
15
- **1083 موقعًا ثقافيًا** عبر **66 ولاية من أصل 69 في الجزائر** الممتلكات الثقافية
15
+ **1083 موقعًا ثقافيًا** عبر **66 ولاية من أصل 69 في الجزائر** الممتلكات الثقافية
16
16
  المحمية، والمتاحف، والمسارح، والمكتبات، والمؤسسات الثقافية (دور وقصور الثقافة،
17
17
  وقاعات السينما، ومديريات الثقافة، ومدارس الفنون) من أطلس *خريطة التراث الثقافي
18
18
  الجزائري* التابع لـ**وزارة الثقافة**، **ثنائية اللغة 100%** عربي/فرنسي و**كاملة
@@ -40,11 +40,11 @@ const visites = all.filter((p) => p.has_virtual_tour);
40
40
 
41
41
  ## ما يمكنك بناؤه
42
42
 
43
- - **خرائط ثقافية والبحث عن الأقرب** لكلٍّ من المواقع الـ1083 إحداثيات، جاهزة
43
+ - **خرائط ثقافية والبحث عن الأقرب** لكلٍّ من المواقع الـ1083 إحداثيات، جاهزة
44
44
  للخريطة أو لميزة «بالقرب مني».
45
- - **أدلّة ثقافية ثنائية اللغة** أسماء عربية وفرنسية، والنوع الرسمي والولاية لكل
45
+ - **أدلّة ثقافية ثنائية اللغة** أسماء عربية وفرنسية، والنوع الرسمي والولاية لكل
46
46
  موقع؛ مع تصفية التراث مقابل المؤسسات العاملة.
47
- - **تطبيقات التراث والسياحة** المواقع المحمية والمتاحف والجولات الافتراضية 360°،
47
+ - **تطبيقات التراث والسياحة** المواقع المحمية والمتاحف والجولات الافتراضية 360°،
48
48
  مربوطة بالبلدية/الولاية لتحديد المسارات وتحليل التغطية.
49
49
 
50
50
  ## المحتوى
@@ -64,7 +64,7 @@ const visites = all.filter((p) => p.has_virtual_tour);
64
64
 
65
65
  | النوع | العدد | المعنى |
66
66
  | --- | --- | --- |
67
- | `protected-cultural-property` | 580 | ممتلك ثقافي محمي نصب/موقع محمي |
67
+ | `protected-cultural-property` | 580 | ممتلك ثقافي محمي نصب/موقع محمي |
68
68
  | `library` | 257 | مكتبة المطالعة العمومية |
69
69
  | `museum` | 48 | متحف |
70
70
  | `theatre` | 45 | مسرح |
@@ -73,7 +73,7 @@ const visites = all.filter((p) => p.has_virtual_tour);
73
73
  | `cultural-directorate` | 33 | مديرية الثقافة / ديوان |
74
74
  | `cinema` | 20 | قاعة سينما / سينماتيك |
75
75
  | `cultural-center` | 15 | مركز ثقافي / بحثي |
76
- | `arts-school` | 15 | مدرسة الفنون الفنون الجميلة / معهد |
76
+ | `arts-school` | 15 | مدرسة الفنون الفنون الجميلة / معهد |
77
77
  | `cultural-palace` | 6 | قصر الثقافة |
78
78
 
79
79
  > **الأطلس رسمي؛ أما الإحداثيات فأفضل ما أمكن.** الأسماء والنوع والإحداثيات وعلامة
@@ -90,7 +90,7 @@ import culture from "@geoalgeria/culture/data/culture.json" with { type: "json"
90
90
  // https://cdn.jsdelivr.net/npm/@geoalgeria/culture/data/culture.json
91
91
  ```
92
92
 
93
- المُحمِّلات وبنية السجلات **مُوثَّقة الأنواع** بالكامل تعريفات TypeScript مرفقة في الحزمة:
93
+ المُحمِّلات وبنية السجلات **مُوثَّقة الأنواع** بالكامل تعريفات TypeScript مرفقة في الحزمة:
94
94
 
95
95
  ```ts
96
96
  import culture, { type CulturalSite } from "@geoalgeria/culture";
@@ -103,7 +103,7 @@ const all: CulturalSite[] = culture.culture();
103
103
  ```
104
104
  data/
105
105
  culture.json # 1083 موقعًا ثقافيًا (مصفوفة)
106
- metadata.json # المصادر، الأعداد، التغطية، generated_at
106
+ metadata.json # المصادر، الأعداد، التغطية، الترخيص، تاريخ التحديث
107
107
  csv/culture.csv # المستودع + الإصدار
108
108
  geojson/culture.geojson # معالم نقطية (كل السجلات)
109
109
  ```
@@ -114,34 +114,37 @@ data/
114
114
  {
115
115
  "id": "16-museum-03",
116
116
  "name": "Musée national Public d'art moderne et contemporain",
117
- "name_ar": "المتحف العمومي الوطني للفن الحديث و المعاصر",
118
117
  "name_fr": "Musée national Public d'art moderne et contemporain",
118
+ "name_ar": "المتحف العمومي الوطني للفن الحديث و المعاصر",
119
+ "wilaya_code": "16",
120
+ "commune_code": "1607",
121
+ "commune": "Casbah",
122
+ "lat": 36.777301,
123
+ "lng": 3.057572,
124
+ "geo_precision": "exact",
125
+ "geo_method": "source_point",
126
+ "source": "patrimoine",
127
+ "refs": {
128
+ "patrimoine": "817"
129
+ },
119
130
  "type": "museum",
120
131
  "category": "heritage",
121
132
  "type_label_fr": "Musée",
122
133
  "type_label_ar": "متحف",
123
134
  "has_virtual_tour": true,
124
- "wilaya": "Alger",
125
- "wilaya_ar": "الجزائر",
126
- "wilaya_code": "16",
127
- "commune": "Casbah",
128
- "commune_code": 1607,
129
- "source": "patrimoineculturel",
130
- "geo_precision": "source_point",
131
135
  "url": "https://cartes.patrimoineculturelalgerien.org/fr/node/101",
132
- "node_id_fr": 101,
133
- "node_id_ar": 817,
134
- "slug": "musee-national-public-d-art-moderne-et-contemporain",
135
- "lat": 36.777301,
136
- "lng": 3.057572
136
+ "slug": "musee-national-public-d-art-moderne-et-contemporain"
137
137
  }
138
138
  ```
139
139
 
140
- `id` مفتاح ثابت `{wilaya_code}-{type_code}-{seq}` يولّده GeoAlgeria. `name` هو
141
- الاسم الفرنسي إن وُجد، وإلا العربي. `type` هو طبقة الموقع على البوابة، و`category`
142
- يجمع الأنواع الـ11 في `heritage` مقابل `establishment`. `has_virtual_tour` يساوي
143
- `true` للمواقع الـ22 ذات الجولة 360°. `geo_precision` يساوي `"source_point"` لكل
144
- سجل.
140
+ `id` مفتاح ثابت `{wilaya_code}-{type_code}-{seq} فريد ضمن هذا الملف – يُعامَل
141
+ كمعرّف معتم (opaque). `name` هو الاسم الفرنسي إن وُجد، وإلا العربي. `type` هو
142
+ طبقة الموقع على البوابة، و`category` يجمع الأنواع الـ11 في `heritage` مقابل
143
+ `establishment`. `has_virtual_tour` يساوي `true` للمواقع الـ22 ذات الجولة 360°.
144
+ `geo_precision` يساوي `"exact"` لـ1067 سجلًا و`"approximate"` لـ16 – لكل موقع
145
+ إحداثية، لكن 16 منها لا تبلغ عتبة الدقة اللازمة لـ`"exact"`. `geo_method`
146
+ يساوي `"source_point"` لكل سجل: الإحداثية هي النقطة التي تنشرها البوابة نفسها،
147
+ وليست مركز ثقل مُشتقًا. `refs.patrimoine` هو معرّف الموقع على البوابة.
145
148
 
146
149
  > **الولاية دقيقة؛ أما البلدية فمُستنتَجة.** لا تزال البوابة تصنّف بعض المواقع تحت
147
150
  > رموز ولايات ما قبل 2019؛ يعيد GeoAlgeria إسناد كل موقع إلى التقسيم الحالي البالغ
@@ -153,7 +156,7 @@ data/
153
156
  ## تحتاج التقسيمات الإدارية أيضًا؟
154
157
 
155
158
  للولايات والدوائر والبلديات، استخدم الحزمة الرئيسية
156
- **[`geoalgeria`](https://www.npmjs.com/package/geoalgeria)** بها تحوّل
159
+ **[`geoalgeria`](https://www.npmjs.com/package/geoalgeria)** بها تحوّل
157
160
  `commune_code` لموقعٍ ما إلى مضلّع أو مركز ثقل. استخدم `@geoalgeria/culture` عندما
158
161
  تحتاج المواقع الثقافية *فقط*.
159
162
 
@@ -162,7 +165,7 @@ data/
162
165
  شغّل `npm run fetch` لإعادة توليد المخرجات. يقوم السكربت بـ:
163
166
 
164
167
  1. قراءة الأطلس الثقافي ثنائي اللغة المُنسَّق (المُجمَّع والمُترجَم من بوابة
165
- `cartes.patrimoineculturelalgerien.org` التابعة لوزارة الثقافة كتالوجا
168
+ `cartes.patrimoineculturelalgerien.org` التابعة لوزارة الثقافة كتالوجا
166
169
  البوابة الفرنسي والعربي مجموعتا عُقَد منفصلتان، تُوحَّدان بتقارب الإحداثيات
167
170
  وتُترجَمان لسدّ الفجوات الثنائية)؛
168
171
  2. **إعادة إسناد** كل موقع إلى التقسيم الحالي البالغ 69 ولاية وربط
package/README.fr.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # @geoalgeria/culture
6
6
 
7
- **L'atlas culturel de l'Algérie sous forme de données prêtes à installer.**
7
+ **L'atlas culturel de l'Algérie, sous forme de données prêtes à installer.**
8
8
 
9
9
  [![npm](https://img.shields.io/npm/v/@geoalgeria/culture)](https://www.npmjs.com/package/@geoalgeria/culture)
10
10
  [![npm downloads](https://img.shields.io/npm/dm/@geoalgeria/culture)](https://www.npmjs.com/package/@geoalgeria/culture)
@@ -12,7 +12,7 @@
12
12
 
13
13
  </div>
14
14
 
15
- **1 083 lieux culturels** dans **66 des 69 wilayas d'Algérie** biens culturels
15
+ **1 083 lieux culturels** dans **66 des 69 wilayas d'Algérie** biens culturels
16
16
  protégés, musées, théâtres, bibliothèques et établissements culturels (maisons et
17
17
  palais de la culture, salles de cinéma, directions de la culture, écoles d'art) de
18
18
  l'atlas *Cartes du Patrimoine Culturel Algérien* du **Ministère de la Culture**,
@@ -41,11 +41,11 @@ const visites = all.filter((p) => p.has_virtual_tour);
41
41
 
42
42
  ## Ce que vous pouvez construire
43
43
 
44
- - **Cartes culturelles & recherche de proximité** chacun des 1 083 lieux a des
44
+ - **Cartes culturelles & recherche de proximité** chacun des 1 083 lieux a des
45
45
  coordonnées, prêtes pour une carte ou une fonction « à proximité ».
46
- - **Annuaires culturels bilingues** noms français et arabe, type officiel et
46
+ - **Annuaires culturels bilingues** noms français et arabe, type officiel et
47
47
  wilaya pour chaque lieu ; filtrer patrimoine vs établissements en activité.
48
- - **Applications patrimoine & tourisme** sites protégés, musées et visites
48
+ - **Applications patrimoine & tourisme** sites protégés, musées et visites
49
49
  virtuelles à 360°, rattachés à la commune/wilaya pour l'itinéraire et l'analyse.
50
50
 
51
51
  ## Contenu
@@ -65,7 +65,7 @@ const visites = all.filter((p) => p.has_virtual_tour);
65
65
 
66
66
  | Type | Nombre | Signification |
67
67
  | --- | --- | --- |
68
- | `protected-cultural-property` | 580 | Bien culturel protégé monument/site protégé |
68
+ | `protected-cultural-property` | 580 | Bien culturel protégé monument/site protégé |
69
69
  | `library` | 257 | Bibliothèque de lecture publique |
70
70
  | `museum` | 48 | Musée |
71
71
  | `theatre` | 45 | Théâtre |
@@ -74,7 +74,7 @@ const visites = all.filter((p) => p.has_virtual_tour);
74
74
  | `cultural-directorate` | 33 | Direction de la culture / office |
75
75
  | `cinema` | 20 | Salle de cinéma / cinémathèque |
76
76
  | `cultural-center` | 15 | Centre culturel / de recherche |
77
- | `arts-school` | 15 | École d'art beaux-arts / conservatoire |
77
+ | `arts-school` | 15 | École d'art beaux-arts / conservatoire |
78
78
  | `cultural-palace` | 6 | Palais de la culture |
79
79
 
80
80
  > **L'atlas est officiel ; les coordonnées sont au mieux.** Les noms, le type, les
@@ -92,7 +92,7 @@ import culture from "@geoalgeria/culture/data/culture.json" with { type: "json"
92
92
  // https://cdn.jsdelivr.net/npm/@geoalgeria/culture/data/culture.json
93
93
  ```
94
94
 
95
- Les chargeurs et les enregistrements sont entièrement **typés** les définitions TypeScript sont incluses :
95
+ Les chargeurs et les enregistrements sont entièrement **typés** les définitions TypeScript sont incluses :
96
96
 
97
97
  ```ts
98
98
  import culture, { type CulturalSite } from "@geoalgeria/culture";
@@ -105,7 +105,7 @@ chaque [GitHub Release](https://github.com/yasserstudio/geoalgeria/releases) :
105
105
  ```
106
106
  data/
107
107
  culture.json # 1 083 lieux culturels (tableau)
108
- metadata.json # sources, totaux, couverture, generated_at
108
+ metadata.json # sources, totaux, couverture, licence, mise à jour
109
109
  csv/culture.csv # dépôt + Release
110
110
  geojson/culture.geojson # entités Point (chaque enregistrement)
111
111
  ```
@@ -116,34 +116,39 @@ data/
116
116
  {
117
117
  "id": "16-museum-03",
118
118
  "name": "Musée national Public d'art moderne et contemporain",
119
- "name_ar": "المتحف العمومي الوطني للفن الحديث و المعاصر",
120
119
  "name_fr": "Musée national Public d'art moderne et contemporain",
120
+ "name_ar": "المتحف العمومي الوطني للفن الحديث و المعاصر",
121
+ "wilaya_code": "16",
122
+ "commune_code": "1607",
123
+ "commune": "Casbah",
124
+ "lat": 36.777301,
125
+ "lng": 3.057572,
126
+ "geo_precision": "exact",
127
+ "geo_method": "source_point",
128
+ "source": "patrimoine",
129
+ "refs": {
130
+ "patrimoine": "817"
131
+ },
121
132
  "type": "museum",
122
133
  "category": "heritage",
123
134
  "type_label_fr": "Musée",
124
135
  "type_label_ar": "متحف",
125
136
  "has_virtual_tour": true,
126
- "wilaya": "Alger",
127
- "wilaya_ar": "الجزائر",
128
- "wilaya_code": "16",
129
- "commune": "Casbah",
130
- "commune_code": 1607,
131
- "source": "patrimoineculturel",
132
- "geo_precision": "source_point",
133
137
  "url": "https://cartes.patrimoineculturelalgerien.org/fr/node/101",
134
- "node_id_fr": 101,
135
- "node_id_ar": 817,
136
- "slug": "musee-national-public-d-art-moderne-et-contemporain",
137
- "lat": 36.777301,
138
- "lng": 3.057572
138
+ "slug": "musee-national-public-d-art-moderne-et-contemporain"
139
139
  }
140
140
  ```
141
141
 
142
- `id` est une clé stable `{wilaya_code}-{type_code}-{seq}` synthétisée par
143
- GeoAlgeria. `name` est le nom français s'il existe, sinon l'arabe. `type` est la
144
- couche du lieu sur le portail ; `category` regroupe les 11 types en `heritage` vs
145
- `establishment`. `has_virtual_tour` vaut `true` pour les 22 lieux dotés d'une
146
- visite 360°. `geo_precision` vaut `"source_point"` pour chaque enregistrement.
142
+ `id` est une clé stable `{wilaya_code}-{type_code}-{seq}`, unique au sein de ce
143
+ fichier – à traiter comme opaque. `name` est le nom français s'il existe, sinon
144
+ l'arabe. `type` est la couche du lieu sur le portail ; `category` regroupe les
145
+ 11 types en `heritage` vs `establishment`. `has_virtual_tour` vaut `true` pour
146
+ les 22 lieux dotés d'une visite 360°. `geo_precision` vaut `"exact"` pour
147
+ 1 067 enregistrements et `"approximate"` pour 16 – chaque lieu a une
148
+ coordonnée, mais 16 n'atteignent pas le seuil de précision de `"exact"`.
149
+ `geo_method` vaut `"source_point"` pour chaque enregistrement : la coordonnée
150
+ est le point publié par le portail lui-même, pas un centroïde dérivé.
151
+ `refs.patrimoine` est l'identifiant du lieu sur le portail.
147
152
 
148
153
  > **La wilaya est exacte ; la commune est dérivée.** Le portail classe encore
149
154
  > certains lieux sous d'anciens codes de wilaya ; GeoAlgeria les réaffecte au
@@ -155,7 +160,7 @@ visite 360°. `geo_precision` vaut `"source_point"` pour chaque enregistrement.
155
160
  ## Besoin des divisions administratives ?
156
161
 
157
162
  Pour les wilayas, dairas et communes, utilisez le paquet principal
158
- **[`geoalgeria`](https://www.npmjs.com/package/geoalgeria)** c'est ce qui
163
+ **[`geoalgeria`](https://www.npmjs.com/package/geoalgeria)** c'est ce qui
159
164
  transforme le `commune_code` d'un lieu en polygone ou centroïde. Utilisez
160
165
  `@geoalgeria/culture` quand vous n'avez besoin *que* des lieux culturels.
161
166
 
@@ -164,7 +169,7 @@ transforme le `commune_code` d'un lieu en polygone ou centroïde. Utilisez
164
169
  Lancez `npm run fetch` pour régénérer les sorties. Le script :
165
170
 
166
171
  1. lit l'atlas culturel bilingue curé (assemblé et traduit depuis le portail
167
- `cartes.patrimoineculturelalgerien.org` du Ministère de la Culture les
172
+ `cartes.patrimoineculturelalgerien.org` du Ministère de la Culture les
168
173
  catalogues français et arabe du portail sont des ensembles de nœuds disjoints,
169
174
  unis par proximité de coordonnées et traduits pour combler les manques
170
175
  bilingues) ;
package/README.md CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  # @geoalgeria/culture
6
6
 
7
- **Algeria's cultural atlas as data you can install.**
7
+ **Algeria's cultural atlas, as data you can install.**
8
8
 
9
9
  [![npm](https://img.shields.io/npm/v/@geoalgeria/culture)](https://www.npmjs.com/package/@geoalgeria/culture)
10
10
  [![npm downloads](https://img.shields.io/npm/dm/@geoalgeria/culture)](https://www.npmjs.com/package/@geoalgeria/culture)
@@ -12,7 +12,7 @@
12
12
 
13
13
  </div>
14
14
 
15
- **1,083 cultural places** across **66 of Algeria's 69 wilayas** protected
15
+ **1,083 cultural places** across **66 of Algeria's 69 wilayas**, protected
16
16
  heritage sites, museums, theatres, libraries and cultural establishments (maisons
17
17
  & palais de la culture, cinemas, culture directorates, arts schools) from the
18
18
  **Ministry of Culture's** *Cartes du Patrimoine Culturel Algérien* atlas,
@@ -41,11 +41,11 @@ const tours = all.filter((p) => p.has_virtual_tour);
41
41
 
42
42
  ## What you can build
43
43
 
44
- - **Cultural maps & nearest-place search** every one of the 1,083 places has
44
+ - **Cultural maps & nearest-place search** every one of the 1,083 places has
45
45
  coordinates, ready for a map or a "what's near me" feature.
46
- - **Bilingual cultural directories** French and Arabic names, official type and
46
+ - **Bilingual cultural directories** French and Arabic names, official type and
47
47
  wilaya for every place; filter heritage vs. operating establishments.
48
- - **Heritage & tourism apps** protected sites, museums and 360° virtual tours,
48
+ - **Heritage & tourism apps** protected sites, museums and 360° virtual tours,
49
49
  linked to commune/wilaya for routing and coverage analysis.
50
50
 
51
51
  ## What's inside
@@ -65,16 +65,16 @@ const tours = all.filter((p) => p.has_virtual_tour);
65
65
 
66
66
  | Type | Count | Meaning |
67
67
  | --- | --- | --- |
68
- | `protected-cultural-property` | 580 | Bien culturel protégé protected monument/site |
69
- | `library` | 257 | Bibliothèque public reading library |
70
- | `museum` | 48 | Musée museum |
71
- | `theatre` | 45 | Théâtre theatre |
72
- | `museum-moudjahid` | 13 | Musée du Moudjahid museum of the war of independence |
68
+ | `protected-cultural-property` | 580 | Bien culturel protégé protected monument/site |
69
+ | `library` | 257 | Bibliothèque public reading library |
70
+ | `museum` | 48 | Musée museum |
71
+ | `theatre` | 45 | Théâtre theatre |
72
+ | `museum-moudjahid` | 13 | Musée du Moudjahid museum of the war of independence |
73
73
  | `cultural-house` | 51 | Maison de la culture |
74
- | `cultural-directorate` | 33 | Direction de la culture wilaya culture directorate/office |
75
- | `cinema` | 20 | Salle de cinéma cinema / cinematheque |
76
- | `cultural-center` | 15 | Centre culturel cultural / research centre |
77
- | `arts-school` | 15 | École d'art fine-arts school / conservatory |
74
+ | `cultural-directorate` | 33 | Direction de la culture wilaya culture directorate/office |
75
+ | `cinema` | 20 | Salle de cinéma cinema / cinematheque |
76
+ | `cultural-center` | 15 | Centre culturel cultural / research centre |
77
+ | `arts-school` | 15 | École d'art fine-arts school / conservatory |
78
78
  | `cultural-palace` | 6 | Palais de la culture |
79
79
 
80
80
  > **The atlas is official; treat the coordinates as best-effort.** Names, type,
@@ -92,7 +92,7 @@ import culture from "@geoalgeria/culture/data/culture.json" with { type: "json"
92
92
  // https://cdn.jsdelivr.net/npm/@geoalgeria/culture/data/culture.json
93
93
  ```
94
94
 
95
- The loaders and record shapes are fully **typed** TypeScript definitions ship in the package:
95
+ The loaders and record shapes are fully **typed**, TypeScript definitions ship in the package:
96
96
 
97
97
  ```ts
98
98
  import culture, { type CulturalSite } from "@geoalgeria/culture";
@@ -105,7 +105,7 @@ const all: CulturalSite[] = culture.culture();
105
105
  ```
106
106
  data/
107
107
  culture.json # 1,083 cultural places (array)
108
- metadata.json # sources, counts, coverage, generated_at
108
+ metadata.json # sources, counts, coverage, license, updated
109
109
  csv/culture.csv # repo + Release bundle
110
110
  geojson/culture.geojson # Point features (every record)
111
111
  ```
@@ -116,35 +116,38 @@ data/
116
116
  {
117
117
  "id": "16-museum-03",
118
118
  "name": "Musée national Public d'art moderne et contemporain",
119
- "name_ar": "المتحف العمومي الوطني للفن الحديث و المعاصر",
120
119
  "name_fr": "Musée national Public d'art moderne et contemporain",
120
+ "name_ar": "المتحف العمومي الوطني للفن الحديث و المعاصر",
121
+ "wilaya_code": "16",
122
+ "commune_code": "1607",
123
+ "commune": "Casbah",
124
+ "lat": 36.777301,
125
+ "lng": 3.057572,
126
+ "geo_precision": "exact",
127
+ "geo_method": "source_point",
128
+ "source": "patrimoine",
129
+ "refs": {
130
+ "patrimoine": "817"
131
+ },
121
132
  "type": "museum",
122
133
  "category": "heritage",
123
134
  "type_label_fr": "Musée",
124
135
  "type_label_ar": "متحف",
125
136
  "has_virtual_tour": true,
126
- "wilaya": "Alger",
127
- "wilaya_ar": "الجزائر",
128
- "wilaya_code": "16",
129
- "commune": "Casbah",
130
- "commune_code": 1607,
131
- "source": "patrimoineculturel",
132
- "geo_precision": "source_point",
133
137
  "url": "https://cartes.patrimoineculturelalgerien.org/fr/node/101",
134
- "node_id_fr": 101,
135
- "node_id_ar": 817,
136
- "slug": "musee-national-public-d-art-moderne-et-contemporain",
137
- "lat": 36.777301,
138
- "lng": 3.057572
138
+ "slug": "musee-national-public-d-art-moderne-et-contemporain"
139
139
  }
140
140
  ```
141
141
 
142
- `id` is a stable `{wilaya_code}-{type_code}-{seq}` key synthesized by GeoAlgeria.
143
- `name` is the French name where available, else Arabic. `type` is the place's
144
- layer on the portal; `category` groups the 11 types into `heritage` vs.
145
- `establishment`. `has_virtual_tour` is true for the 22 places with a 360° tour.
146
- `geo_precision` is `"source_point"` for every record — the portal publishes a
147
- coordinate for each place.
142
+ `id` is a stable `{wilaya_code}-{type_code}-{seq}` key, unique within this
143
+ file, treat it as opaque. `name` is the French name where available, else
144
+ Arabic. `type` is the place's layer on the portal; `category` groups the 11
145
+ types into `heritage` vs. `establishment`. `has_virtual_tour` is true for the
146
+ 22 places with a 360° tour. `geo_precision` is `"exact"` for 1,067 records and
147
+ `"approximate"` for 16, every place has a coordinate, but 16 don't meet the
148
+ precision bar for `"exact"`. `geo_method` is `"source_point"` for every
149
+ record: the coordinate is the portal's own published point, not a derived
150
+ centroid. `refs.patrimoine` is the place's node id on the portal.
148
151
 
149
152
  > **Wilaya is exact; commune is derived.** The portal still files some places
150
153
  > under pre-2019 wilaya codes; GeoAlgeria rescopes each place to the current
@@ -156,7 +159,7 @@ coordinate for each place.
156
159
  ## Need the administrative divisions too?
157
160
 
158
161
  For wilayas, dairas, and communes, use the main
159
- **[`geoalgeria`](https://www.npmjs.com/package/geoalgeria)** package it's how
162
+ **[`geoalgeria`](https://www.npmjs.com/package/geoalgeria)** package, it's how
160
163
  you turn a place's `commune_code` into a polygon or centroid. Use
161
164
  `@geoalgeria/culture` when you *only* need the cultural places.
162
165
 
@@ -165,7 +168,7 @@ you turn a place's `commune_code` into a polygon or centroid. Use
165
168
  Run `npm run fetch` to regenerate every output. It:
166
169
 
167
170
  1. reads the curated, bilingual cultural atlas (assembled and translated from the
168
- Ministry of Culture's `cartes.patrimoineculturelalgerien.org` portal the
171
+ Ministry of Culture's `cartes.patrimoineculturelalgerien.org` portal, the
169
172
  portal's French and Arabic catalogs are disjoint node sets, unioned by
170
173
  coordinate proximity and translated to fill the bilingual gaps);
171
174
  2. **rescopes** each place to the current 69-wilaya scheme and attaches a