@geoalgeria/culture 1.0.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.
- package/LICENSE +21 -0
- package/README.ar.md +190 -0
- package/README.fr.md +196 -0
- package/README.md +194 -0
- package/data/csv/culture.csv +1084 -0
- package/data/culture.json +25994 -0
- package/data/geojson/culture.geojson +34661 -0
- package/data/metadata.json +33 -0
- package/index.js +12 -0
- package/package.json +60 -0
- package/types/index.d.ts +110 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025-2026 Yasser's Studio (https://yasser.studio)
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.ar.md
ADDED
|
@@ -0,0 +1,190 @@
|
|
|
1
|
+
[English](README.md) | [Français](README.fr.md) | **العربية**
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
# @geoalgeria/culture
|
|
6
|
+
|
|
7
|
+
**الأطلس الثقافي للجزائر — كبيانات قابلة للتثبيت.**
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/@geoalgeria/culture)
|
|
10
|
+
[](https://www.npmjs.com/package/@geoalgeria/culture)
|
|
11
|
+
[](LICENSE)
|
|
12
|
+
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
**1083 موقعًا ثقافيًا** عبر **66 ولاية من أصل 69 في الجزائر** — الممتلكات الثقافية
|
|
16
|
+
المحمية، والمتاحف، والمسارح، والمكتبات، والمؤسسات الثقافية (دور وقصور الثقافة،
|
|
17
|
+
وقاعات السينما، ومديريات الثقافة، ومدارس الفنون) من أطلس *خريطة التراث الثقافي
|
|
18
|
+
الجزائري* التابع لـ**وزارة الثقافة**، **ثنائية اللغة 100%** عربي/فرنسي و**كاملة
|
|
19
|
+
الإحداثيات** (كل موقع يحمل إحداثية مصدرية). متوفر بصيغ JSON وCSV وGeoJSON
|
|
20
|
+
وTypeScript. جزء من [GeoAlgeria](https://github.com/yasserstudio/geoalgeria).
|
|
21
|
+
|
|
22
|
+
```bash
|
|
23
|
+
npm install @geoalgeria/culture
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
```js
|
|
27
|
+
import culture from "@geoalgeria/culture";
|
|
28
|
+
|
|
29
|
+
const all = culture.culture(); // 1083 موقعًا ثقافيًا
|
|
30
|
+
|
|
31
|
+
// المتاحف في ولاية (ربط بـ wilaya_code في GeoAlgeria)
|
|
32
|
+
const museesAlger = all.filter((p) => p.wilaya_code === "16" && p.type === "museum");
|
|
33
|
+
|
|
34
|
+
// فقط الممتلكات الثقافية المحمية، جاهزة للخريطة
|
|
35
|
+
const patrimoine = all.filter((p) => p.category === "heritage");
|
|
36
|
+
|
|
37
|
+
// المواقع ذات الجولة الافتراضية 360°
|
|
38
|
+
const visites = all.filter((p) => p.has_virtual_tour);
|
|
39
|
+
```
|
|
40
|
+
|
|
41
|
+
## ما يمكنك بناؤه
|
|
42
|
+
|
|
43
|
+
- **خرائط ثقافية والبحث عن الأقرب** — لكلٍّ من المواقع الـ1083 إحداثيات، جاهزة
|
|
44
|
+
للخريطة أو لميزة «بالقرب مني».
|
|
45
|
+
- **أدلّة ثقافية ثنائية اللغة** — أسماء عربية وفرنسية، والنوع الرسمي والولاية لكل
|
|
46
|
+
موقع؛ مع تصفية التراث مقابل المؤسسات العاملة.
|
|
47
|
+
- **تطبيقات التراث والسياحة** — المواقع المحمية والمتاحف والجولات الافتراضية 360°،
|
|
48
|
+
مربوطة بالبلدية/الولاية لتحديد المسارات وتحليل التغطية.
|
|
49
|
+
|
|
50
|
+
## المحتوى
|
|
51
|
+
|
|
52
|
+
| مجموعة البيانات | العدد | الإحداثيات | ملاحظات |
|
|
53
|
+
| --- | --- | --- | --- |
|
|
54
|
+
| المواقع الثقافية | **1083** | 1083 بإحداثيات | 66 ولاية، ثنائية اللغة 100%، 22 بجولة 360° |
|
|
55
|
+
|
|
56
|
+
**حسب الفئة**
|
|
57
|
+
|
|
58
|
+
| الفئة | العدد | المعنى |
|
|
59
|
+
| --- | --- | --- |
|
|
60
|
+
| `heritage` | 943 | مواقع محمية، متاحف، مسارح، مكتبات |
|
|
61
|
+
| `establishment` | 140 | مؤسسات ثقافية عاملة ومديريات |
|
|
62
|
+
|
|
63
|
+
**حسب النوع**
|
|
64
|
+
|
|
65
|
+
| النوع | العدد | المعنى |
|
|
66
|
+
| --- | --- | --- |
|
|
67
|
+
| `protected-cultural-property` | 580 | ممتلك ثقافي محمي — نصب/موقع محمي |
|
|
68
|
+
| `library` | 257 | مكتبة المطالعة العمومية |
|
|
69
|
+
| `museum` | 48 | متحف |
|
|
70
|
+
| `theatre` | 45 | مسرح |
|
|
71
|
+
| `museum-moudjahid` | 13 | متحف المجاهد |
|
|
72
|
+
| `cultural-house` | 51 | دار الثقافة |
|
|
73
|
+
| `cultural-directorate` | 33 | مديرية الثقافة / ديوان |
|
|
74
|
+
| `cinema` | 20 | قاعة سينما / سينماتيك |
|
|
75
|
+
| `cultural-center` | 15 | مركز ثقافي / بحثي |
|
|
76
|
+
| `arts-school` | 15 | مدرسة الفنون — الفنون الجميلة / معهد |
|
|
77
|
+
| `cultural-palace` | 6 | قصر الثقافة |
|
|
78
|
+
|
|
79
|
+
> **الأطلس رسمي؛ أما الإحداثيات فأفضل ما أمكن.** الأسماء والنوع والإحداثيات وعلامة
|
|
80
|
+
> الـ360° من بوابة وزارة الثقافة. الولاية دقيقة؛ أما البلدية فمُستنتَجة (انظر
|
|
81
|
+
> *المصدر والمنهجية*). تتغيّر الأعداد مع تحديثات البوابة.
|
|
82
|
+
|
|
83
|
+
## الصيغ
|
|
84
|
+
|
|
85
|
+
تتضمّن حزمة npm ملف **JSON** (قابل للاستيراد مباشرة):
|
|
86
|
+
|
|
87
|
+
```js
|
|
88
|
+
import culture from "@geoalgeria/culture/data/culture.json" with { type: "json" };
|
|
89
|
+
// أو عبر CDN، دون تثبيت:
|
|
90
|
+
// https://cdn.jsdelivr.net/npm/@geoalgeria/culture/data/culture.json
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
المُحمِّلات وبنية السجلات **مُوثَّقة الأنواع** بالكامل — تعريفات TypeScript مرفقة في الحزمة:
|
|
94
|
+
|
|
95
|
+
```ts
|
|
96
|
+
import culture, { type CulturalSite } from "@geoalgeria/culture";
|
|
97
|
+
const all: CulturalSite[] = culture.culture();
|
|
98
|
+
```
|
|
99
|
+
|
|
100
|
+
ملفّا **CSV وGeoJSON** موجودان في المستودع ضمن [`data/`](data) ومُرفقان في كل
|
|
101
|
+
[إصدار على GitHub](https://github.com/yasserstudio/geoalgeria/releases):
|
|
102
|
+
|
|
103
|
+
```
|
|
104
|
+
data/
|
|
105
|
+
culture.json # 1083 موقعًا ثقافيًا (مصفوفة)
|
|
106
|
+
metadata.json # المصادر، الأعداد، التغطية، generated_at
|
|
107
|
+
csv/culture.csv # المستودع + الإصدار
|
|
108
|
+
geojson/culture.geojson # معالم نقطية (كل السجلات)
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
## بنية السجل
|
|
112
|
+
|
|
113
|
+
```json
|
|
114
|
+
{
|
|
115
|
+
"id": "16-museum-03",
|
|
116
|
+
"name": "Musée national Public d'art moderne et contemporain",
|
|
117
|
+
"name_ar": "المتحف العمومي الوطني للفن الحديث و المعاصر",
|
|
118
|
+
"name_fr": "Musée national Public d'art moderne et contemporain",
|
|
119
|
+
"type": "museum",
|
|
120
|
+
"category": "heritage",
|
|
121
|
+
"type_label_fr": "Musée",
|
|
122
|
+
"type_label_ar": "متحف",
|
|
123
|
+
"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
|
+
"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
|
|
137
|
+
}
|
|
138
|
+
```
|
|
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
|
+
سجل.
|
|
145
|
+
|
|
146
|
+
> **الولاية دقيقة؛ أما البلدية فمُستنتَجة.** لا تزال البوابة تصنّف بعض المواقع تحت
|
|
147
|
+
> رموز ولايات ما قبل 2019؛ يعيد GeoAlgeria إسناد كل موقع إلى التقسيم الحالي البالغ
|
|
148
|
+
> 69 ولاية بمطابقة إحداثيته لأقرب مركز ثقل بلدية في
|
|
149
|
+
> [`geoalgeria`](https://www.npmjs.com/package/geoalgeria) (الذي يوفّر أيضًا
|
|
150
|
+
> `commune`/`commune_code`). البلدية تقريبية (الحزمة الرئيسية توفّر مراكز ثقل لا
|
|
151
|
+
> مضلّعات حدود).
|
|
152
|
+
|
|
153
|
+
## تحتاج التقسيمات الإدارية أيضًا؟
|
|
154
|
+
|
|
155
|
+
للولايات والدوائر والبلديات، استخدم الحزمة الرئيسية
|
|
156
|
+
**[`geoalgeria`](https://www.npmjs.com/package/geoalgeria)** — بها تحوّل
|
|
157
|
+
`commune_code` لموقعٍ ما إلى مضلّع أو مركز ثقل. استخدم `@geoalgeria/culture` عندما
|
|
158
|
+
تحتاج المواقع الثقافية *فقط*.
|
|
159
|
+
|
|
160
|
+
## المصدر والمنهجية
|
|
161
|
+
|
|
162
|
+
شغّل `npm run fetch` لإعادة توليد المخرجات. يقوم السكربت بـ:
|
|
163
|
+
|
|
164
|
+
1. قراءة الأطلس الثقافي ثنائي اللغة المُنسَّق (المُجمَّع والمُترجَم من بوابة
|
|
165
|
+
`cartes.patrimoineculturelalgerien.org` التابعة لوزارة الثقافة — كتالوجا
|
|
166
|
+
البوابة الفرنسي والعربي مجموعتا عُقَد منفصلتان، تُوحَّدان بتقارب الإحداثيات
|
|
167
|
+
وتُترجَمان لسدّ الفجوات الثنائية)؛
|
|
168
|
+
2. **إعادة إسناد** كل موقع إلى التقسيم الحالي البالغ 69 ولاية وربط
|
|
169
|
+
`commune`/`commune_code` به بمطابقته لأقرب مركز ثقل بلدية في `geoalgeria`؛
|
|
170
|
+
3. إسناد معرّفات ثابتة، وإزالة العُقَد المكرّرة، وإنتاج JSON وCSV وGeoJSON
|
|
171
|
+
والبيانات الوصفية.
|
|
172
|
+
|
|
173
|
+
المصدر المُنسَّق وملاحظات الاستخراج تحت
|
|
174
|
+
[`research/patrimoine/`](https://github.com/yasserstudio/geoalgeria/tree/main/research/patrimoine).
|
|
175
|
+
|
|
176
|
+
## الترخيص والإسناد
|
|
177
|
+
|
|
178
|
+
**شيفرة** الحزمة بترخيص [MIT](LICENSE). أما **البيانات** فهي قائمة واقعية عمومية
|
|
179
|
+
من بوابة التراث الثقافي لـ**وزارة الثقافة** (الأسماء والأنواع والإحداثيات وجولات
|
|
180
|
+
360° كما نُشرت). ربط البلدية/الولاية مُستنتَج من المجموعة الإدارية
|
|
181
|
+
[`geoalgeria`](https://www.npmjs.com/package/geoalgeria).
|
|
182
|
+
|
|
183
|
+
تحقّق من المصادر الرسمية للمعلومات الموثوقة. تُقدَّم هذه البيانات للمرجعية ولتشغيل
|
|
184
|
+
[GeoAlgeria](https://geoalgeria.com).
|
|
185
|
+
|
|
186
|
+
[توثيق API والحقول →](https://geoalgeria.com/data/docs/culture) · [تصفّح كل الحزم →](https://geoalgeria.com/data)
|
|
187
|
+
|
|
188
|
+
---
|
|
189
|
+
|
|
190
|
+
من إنجاز [Yasser's Studio](https://yasser.studio) · [LinkedIn](https://www.linkedin.com/in/yasserberrehail/) · [X](https://x.com/yassersstudio) · [hello@yasser.studio](mailto:hello@yasser.studio)
|
package/README.fr.md
ADDED
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
[English](README.md) | **Français** | [العربية](README.ar.md)
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
# @geoalgeria/culture
|
|
6
|
+
|
|
7
|
+
**L'atlas culturel de l'Algérie — sous forme de données prêtes à installer.**
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/@geoalgeria/culture)
|
|
10
|
+
[](https://www.npmjs.com/package/@geoalgeria/culture)
|
|
11
|
+
[](LICENSE)
|
|
12
|
+
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
**1 083 lieux culturels** dans **66 des 69 wilayas d'Algérie** — biens culturels
|
|
16
|
+
protégés, musées, théâtres, bibliothèques et établissements culturels (maisons et
|
|
17
|
+
palais de la culture, salles de cinéma, directions de la culture, écoles d'art) de
|
|
18
|
+
l'atlas *Cartes du Patrimoine Culturel Algérien* du **Ministère de la Culture**,
|
|
19
|
+
**100 % bilingues** français/arabe et **entièrement géolocalisés** (chaque lieu
|
|
20
|
+
porte une coordonnée source). Livré en JSON, CSV, GeoJSON et TypeScript. Fait
|
|
21
|
+
partie de [GeoAlgeria](https://github.com/yasserstudio/geoalgeria).
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm install @geoalgeria/culture
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
```js
|
|
28
|
+
import culture from "@geoalgeria/culture";
|
|
29
|
+
|
|
30
|
+
const all = culture.culture(); // 1 083 lieux culturels
|
|
31
|
+
|
|
32
|
+
// Musées d'une wilaya (jointure sur le wilaya_code de GeoAlgeria)
|
|
33
|
+
const museesAlger = all.filter((p) => p.wilaya_code === "16" && p.type === "museum");
|
|
34
|
+
|
|
35
|
+
// Uniquement les biens culturels protégés, prêts pour une carte
|
|
36
|
+
const patrimoine = all.filter((p) => p.category === "heritage");
|
|
37
|
+
|
|
38
|
+
// Les lieux dotés d'une visite virtuelle à 360°
|
|
39
|
+
const visites = all.filter((p) => p.has_virtual_tour);
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## Ce que vous pouvez construire
|
|
43
|
+
|
|
44
|
+
- **Cartes culturelles & recherche de proximité** — chacun des 1 083 lieux a des
|
|
45
|
+
coordonnées, prêtes pour une carte ou une fonction « à proximité ».
|
|
46
|
+
- **Annuaires culturels bilingues** — noms français et arabe, type officiel et
|
|
47
|
+
wilaya pour chaque lieu ; filtrer patrimoine vs établissements en activité.
|
|
48
|
+
- **Applications patrimoine & tourisme** — sites protégés, musées et visites
|
|
49
|
+
virtuelles à 360°, rattachés à la commune/wilaya pour l'itinéraire et l'analyse.
|
|
50
|
+
|
|
51
|
+
## Contenu
|
|
52
|
+
|
|
53
|
+
| Jeu de données | Nombre | Coordonnées | Notes |
|
|
54
|
+
| --- | --- | --- | --- |
|
|
55
|
+
| Lieux culturels | **1 083** | 1 083 géolocalisés | 66 wilayas, 100 % bilingues, 22 visites 360° |
|
|
56
|
+
|
|
57
|
+
**Par catégorie**
|
|
58
|
+
|
|
59
|
+
| Catégorie | Nombre | Signification |
|
|
60
|
+
| --- | --- | --- |
|
|
61
|
+
| `heritage` | 943 | sites protégés, musées, théâtres, bibliothèques |
|
|
62
|
+
| `establishment` | 140 | lieux culturels en activité & directions |
|
|
63
|
+
|
|
64
|
+
**Par type**
|
|
65
|
+
|
|
66
|
+
| Type | Nombre | Signification |
|
|
67
|
+
| --- | --- | --- |
|
|
68
|
+
| `protected-cultural-property` | 580 | Bien culturel protégé — monument/site protégé |
|
|
69
|
+
| `library` | 257 | Bibliothèque de lecture publique |
|
|
70
|
+
| `museum` | 48 | Musée |
|
|
71
|
+
| `theatre` | 45 | Théâtre |
|
|
72
|
+
| `museum-moudjahid` | 13 | Musée du Moudjahid |
|
|
73
|
+
| `cultural-house` | 51 | Maison de la culture |
|
|
74
|
+
| `cultural-directorate` | 33 | Direction de la culture / office |
|
|
75
|
+
| `cinema` | 20 | Salle de cinéma / cinémathèque |
|
|
76
|
+
| `cultural-center` | 15 | Centre culturel / de recherche |
|
|
77
|
+
| `arts-school` | 15 | École d'art — beaux-arts / conservatoire |
|
|
78
|
+
| `cultural-palace` | 6 | Palais de la culture |
|
|
79
|
+
|
|
80
|
+
> **L'atlas est officiel ; les coordonnées sont au mieux.** Les noms, le type, les
|
|
81
|
+
> coordonnées et le drapeau 360° proviennent du portail du Ministère de la
|
|
82
|
+
> Culture. La wilaya est exacte ; la commune est dérivée (voir *Source &
|
|
83
|
+
> méthode*). Les totaux évoluent au gré des mises à jour du portail.
|
|
84
|
+
|
|
85
|
+
## Formats
|
|
86
|
+
|
|
87
|
+
Le paquet npm fournit le **JSON** (importable directement) :
|
|
88
|
+
|
|
89
|
+
```js
|
|
90
|
+
import culture from "@geoalgeria/culture/data/culture.json" with { type: "json" };
|
|
91
|
+
// ou via CDN, sans installation :
|
|
92
|
+
// https://cdn.jsdelivr.net/npm/@geoalgeria/culture/data/culture.json
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
Les chargeurs et les enregistrements sont entièrement **typés** — les définitions TypeScript sont incluses :
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
import culture, { type CulturalSite } from "@geoalgeria/culture";
|
|
99
|
+
const all: CulturalSite[] = culture.culture();
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
Les **CSV et GeoJSON** sont dans le dépôt sous [`data/`](data) et inclus dans
|
|
103
|
+
chaque [GitHub Release](https://github.com/yasserstudio/geoalgeria/releases) :
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
data/
|
|
107
|
+
culture.json # 1 083 lieux culturels (tableau)
|
|
108
|
+
metadata.json # sources, totaux, couverture, generated_at
|
|
109
|
+
csv/culture.csv # dépôt + Release
|
|
110
|
+
geojson/culture.geojson # entités Point (chaque enregistrement)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Structure d'un enregistrement
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"id": "16-museum-03",
|
|
118
|
+
"name": "Musée national Public d'art moderne et contemporain",
|
|
119
|
+
"name_ar": "المتحف العمومي الوطني للفن الحديث و المعاصر",
|
|
120
|
+
"name_fr": "Musée national Public d'art moderne et contemporain",
|
|
121
|
+
"type": "museum",
|
|
122
|
+
"category": "heritage",
|
|
123
|
+
"type_label_fr": "Musée",
|
|
124
|
+
"type_label_ar": "متحف",
|
|
125
|
+
"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
|
+
"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
|
|
139
|
+
}
|
|
140
|
+
```
|
|
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.
|
|
147
|
+
|
|
148
|
+
> **La wilaya est exacte ; la commune est dérivée.** Le portail classe encore
|
|
149
|
+
> certains lieux sous d'anciens codes de wilaya ; GeoAlgeria les réaffecte au
|
|
150
|
+
> découpage actuel à 69 wilayas en rattachant chaque coordonnée au centroïde de
|
|
151
|
+
> commune [`geoalgeria`](https://www.npmjs.com/package/geoalgeria) le plus proche
|
|
152
|
+
> (qui fournit aussi `commune`/`commune_code`). La commune est approximative (le
|
|
153
|
+
> paquet principal fournit des centroïdes, pas des polygones de limites).
|
|
154
|
+
|
|
155
|
+
## Besoin des divisions administratives ?
|
|
156
|
+
|
|
157
|
+
Pour les wilayas, dairas et communes, utilisez le paquet principal
|
|
158
|
+
**[`geoalgeria`](https://www.npmjs.com/package/geoalgeria)** — c'est ce qui
|
|
159
|
+
transforme le `commune_code` d'un lieu en polygone ou centroïde. Utilisez
|
|
160
|
+
`@geoalgeria/culture` quand vous n'avez besoin *que* des lieux culturels.
|
|
161
|
+
|
|
162
|
+
## Source & méthode
|
|
163
|
+
|
|
164
|
+
Lancez `npm run fetch` pour régénérer les sorties. Le script :
|
|
165
|
+
|
|
166
|
+
1. lit l'atlas culturel bilingue curé (assemblé et traduit depuis le portail
|
|
167
|
+
`cartes.patrimoineculturelalgerien.org` du Ministère de la Culture — les
|
|
168
|
+
catalogues français et arabe du portail sont des ensembles de nœuds disjoints,
|
|
169
|
+
unis par proximité de coordonnées et traduits pour combler les manques
|
|
170
|
+
bilingues) ;
|
|
171
|
+
2. **réaffecte** chaque lieu au découpage actuel à 69 wilayas et lui rattache une
|
|
172
|
+
`commune`/`commune_code` en le rapprochant du centroïde de commune `geoalgeria`
|
|
173
|
+
le plus proche ;
|
|
174
|
+
3. attribue des identifiants stables, retire les nœuds en double, et produit le
|
|
175
|
+
JSON, le CSV, le GeoJSON et les métadonnées.
|
|
176
|
+
|
|
177
|
+
La source curée et les notes d'extraction sont sous
|
|
178
|
+
[`research/patrimoine/`](https://github.com/yasserstudio/geoalgeria/tree/main/research/patrimoine).
|
|
179
|
+
|
|
180
|
+
## Licence & attribution
|
|
181
|
+
|
|
182
|
+
Le **code** du paquet est sous [MIT](LICENSE). Les **données** sont une liste
|
|
183
|
+
factuelle publique du portail du patrimoine culturel du **Ministère de la
|
|
184
|
+
Culture** (noms, types, coordonnées et visites 360° tels que publiés). Le
|
|
185
|
+
rattachement commune/wilaya est dérivé du jeu administratif
|
|
186
|
+
[`geoalgeria`](https://www.npmjs.com/package/geoalgeria).
|
|
187
|
+
|
|
188
|
+
Vérifiez auprès des sources officielles pour toute information faisant foi. Ce jeu
|
|
189
|
+
de données est fourni à titre de référence et pour alimenter
|
|
190
|
+
[GeoAlgeria](https://geoalgeria.com).
|
|
191
|
+
|
|
192
|
+
[Docs API & champs →](https://geoalgeria.com/data/docs/culture) · [Tous les paquets →](https://geoalgeria.com/data)
|
|
193
|
+
|
|
194
|
+
---
|
|
195
|
+
|
|
196
|
+
Réalisé par [Yasser's Studio](https://yasser.studio) · [LinkedIn](https://www.linkedin.com/in/yasserberrehail/) · [X](https://x.com/yassersstudio) · [hello@yasser.studio](mailto:hello@yasser.studio)
|
package/README.md
ADDED
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
**English** | [Français](README.fr.md) | [العربية](README.ar.md)
|
|
2
|
+
|
|
3
|
+
<div align="center">
|
|
4
|
+
|
|
5
|
+
# @geoalgeria/culture
|
|
6
|
+
|
|
7
|
+
**Algeria's cultural atlas — as data you can install.**
|
|
8
|
+
|
|
9
|
+
[](https://www.npmjs.com/package/@geoalgeria/culture)
|
|
10
|
+
[](https://www.npmjs.com/package/@geoalgeria/culture)
|
|
11
|
+
[](LICENSE)
|
|
12
|
+
|
|
13
|
+
</div>
|
|
14
|
+
|
|
15
|
+
**1,083 cultural places** across **66 of Algeria's 69 wilayas** — protected
|
|
16
|
+
heritage sites, museums, theatres, libraries and cultural establishments (maisons
|
|
17
|
+
& palais de la culture, cinemas, culture directorates, arts schools) from the
|
|
18
|
+
**Ministry of Culture's** *Cartes du Patrimoine Culturel Algérien* atlas,
|
|
19
|
+
**100% bilingual** French/Arabic and **fully geocoded** (every place carries a
|
|
20
|
+
source coordinate). Shipped as JSON, CSV, GeoJSON, and TypeScript. Part of
|
|
21
|
+
[GeoAlgeria](https://github.com/yasserstudio/geoalgeria).
|
|
22
|
+
|
|
23
|
+
```bash
|
|
24
|
+
npm install @geoalgeria/culture
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
```js
|
|
28
|
+
import culture from "@geoalgeria/culture";
|
|
29
|
+
|
|
30
|
+
const all = culture.culture(); // 1,083 cultural places
|
|
31
|
+
|
|
32
|
+
// Museums in a wilaya (joins GeoAlgeria's wilaya_code)
|
|
33
|
+
const museumsAlger = all.filter((p) => p.wilaya_code === "16" && p.type === "museum");
|
|
34
|
+
|
|
35
|
+
// Just the protected heritage sites, ready to map
|
|
36
|
+
const heritage = all.filter((p) => p.category === "heritage");
|
|
37
|
+
|
|
38
|
+
// Places with a 360° virtual tour
|
|
39
|
+
const tours = all.filter((p) => p.has_virtual_tour);
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
## What you can build
|
|
43
|
+
|
|
44
|
+
- **Cultural maps & nearest-place search** — every one of the 1,083 places has
|
|
45
|
+
coordinates, ready for a map or a "what's near me" feature.
|
|
46
|
+
- **Bilingual cultural directories** — French and Arabic names, official type and
|
|
47
|
+
wilaya for every place; filter heritage vs. operating establishments.
|
|
48
|
+
- **Heritage & tourism apps** — protected sites, museums and 360° virtual tours,
|
|
49
|
+
linked to commune/wilaya for routing and coverage analysis.
|
|
50
|
+
|
|
51
|
+
## What's inside
|
|
52
|
+
|
|
53
|
+
| Dataset | Count | Coordinates | Notes |
|
|
54
|
+
| --- | --- | --- | --- |
|
|
55
|
+
| Cultural places | **1,083** | 1,083 geocoded | 66 wilayas, 100% bilingual, 22 with 360° tours |
|
|
56
|
+
|
|
57
|
+
**By category**
|
|
58
|
+
|
|
59
|
+
| Category | Count | Meaning |
|
|
60
|
+
| --- | --- | --- |
|
|
61
|
+
| `heritage` | 943 | protected sites, museums, theatres, libraries |
|
|
62
|
+
| `establishment` | 140 | operating cultural venues & directorates |
|
|
63
|
+
|
|
64
|
+
**By type**
|
|
65
|
+
|
|
66
|
+
| Type | Count | Meaning |
|
|
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 |
|
|
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 |
|
|
78
|
+
| `cultural-palace` | 6 | Palais de la culture |
|
|
79
|
+
|
|
80
|
+
> **The atlas is official; treat the coordinates as best-effort.** Names, type,
|
|
81
|
+
> coordinates and the 360° flag come from the Ministry of Culture's portal. Wilaya
|
|
82
|
+
> is exact; commune is derived (see *Source & method*). Counts move as the portal
|
|
83
|
+
> is edited; each rebuild reflects its current state.
|
|
84
|
+
|
|
85
|
+
## Formats
|
|
86
|
+
|
|
87
|
+
The npm package ships the **JSON** (importable directly):
|
|
88
|
+
|
|
89
|
+
```js
|
|
90
|
+
import culture from "@geoalgeria/culture/data/culture.json" with { type: "json" };
|
|
91
|
+
// or via CDN, no install:
|
|
92
|
+
// https://cdn.jsdelivr.net/npm/@geoalgeria/culture/data/culture.json
|
|
93
|
+
```
|
|
94
|
+
|
|
95
|
+
The loaders and record shapes are fully **typed** — TypeScript definitions ship in the package:
|
|
96
|
+
|
|
97
|
+
```ts
|
|
98
|
+
import culture, { type CulturalSite } from "@geoalgeria/culture";
|
|
99
|
+
const all: CulturalSite[] = culture.culture();
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
**CSV and GeoJSON** are in the repo under [`data/`](data) and bundled in every
|
|
103
|
+
[GitHub Release](https://github.com/yasserstudio/geoalgeria/releases):
|
|
104
|
+
|
|
105
|
+
```
|
|
106
|
+
data/
|
|
107
|
+
culture.json # 1,083 cultural places (array)
|
|
108
|
+
metadata.json # sources, counts, coverage, generated_at
|
|
109
|
+
csv/culture.csv # repo + Release bundle
|
|
110
|
+
geojson/culture.geojson # Point features (every record)
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
## Record shape
|
|
114
|
+
|
|
115
|
+
```json
|
|
116
|
+
{
|
|
117
|
+
"id": "16-museum-03",
|
|
118
|
+
"name": "Musée national Public d'art moderne et contemporain",
|
|
119
|
+
"name_ar": "المتحف العمومي الوطني للفن الحديث و المعاصر",
|
|
120
|
+
"name_fr": "Musée national Public d'art moderne et contemporain",
|
|
121
|
+
"type": "museum",
|
|
122
|
+
"category": "heritage",
|
|
123
|
+
"type_label_fr": "Musée",
|
|
124
|
+
"type_label_ar": "متحف",
|
|
125
|
+
"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
|
+
"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
|
|
139
|
+
}
|
|
140
|
+
```
|
|
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.
|
|
148
|
+
|
|
149
|
+
> **Wilaya is exact; commune is derived.** The portal still files some places
|
|
150
|
+
> under pre-2019 wilaya codes; GeoAlgeria rescopes each place to the current
|
|
151
|
+
> 69-wilaya scheme by matching its coordinate to the nearest
|
|
152
|
+
> [`geoalgeria`](https://www.npmjs.com/package/geoalgeria) commune centroid (which
|
|
153
|
+
> also yields `commune`/`commune_code`). Commune is best-effort (the flagship
|
|
154
|
+
> ships centroids, not boundary polygons).
|
|
155
|
+
|
|
156
|
+
## Need the administrative divisions too?
|
|
157
|
+
|
|
158
|
+
For wilayas, dairas, and communes, use the main
|
|
159
|
+
**[`geoalgeria`](https://www.npmjs.com/package/geoalgeria)** package — it's how
|
|
160
|
+
you turn a place's `commune_code` into a polygon or centroid. Use
|
|
161
|
+
`@geoalgeria/culture` when you *only* need the cultural places.
|
|
162
|
+
|
|
163
|
+
## Source & method
|
|
164
|
+
|
|
165
|
+
Run `npm run fetch` to regenerate every output. It:
|
|
166
|
+
|
|
167
|
+
1. reads the curated, bilingual cultural atlas (assembled and translated from the
|
|
168
|
+
Ministry of Culture's `cartes.patrimoineculturelalgerien.org` portal — the
|
|
169
|
+
portal's French and Arabic catalogs are disjoint node sets, unioned by
|
|
170
|
+
coordinate proximity and translated to fill the bilingual gaps);
|
|
171
|
+
2. **rescopes** each place to the current 69-wilaya scheme and attaches a
|
|
172
|
+
`commune`/`commune_code` by matching its coordinate to the nearest `geoalgeria`
|
|
173
|
+
commune centroid;
|
|
174
|
+
3. assigns stable ids, drops exact duplicate nodes, and emits JSON, CSV, GeoJSON
|
|
175
|
+
and metadata.
|
|
176
|
+
|
|
177
|
+
The curated source and extraction notes are under
|
|
178
|
+
[`research/patrimoine/`](https://github.com/yasserstudio/geoalgeria/tree/main/research/patrimoine).
|
|
179
|
+
|
|
180
|
+
## License & attribution
|
|
181
|
+
|
|
182
|
+
Package **code** is [MIT](LICENSE). The **data** is a factual public listing from
|
|
183
|
+
the **Ministry of Culture's** cultural-heritage portal (names, types, coordinates
|
|
184
|
+
and 360° tours as published). Commune/wilaya linkage is derived from the
|
|
185
|
+
[`geoalgeria`](https://www.npmjs.com/package/geoalgeria) administrative dataset.
|
|
186
|
+
|
|
187
|
+
Verify against official sources for authoritative information. This dataset is
|
|
188
|
+
provided for reference and to power [GeoAlgeria](https://geoalgeria.com).
|
|
189
|
+
|
|
190
|
+
[API docs & field reference →](https://geoalgeria.com/data/docs/culture) · [Browse all packages →](https://geoalgeria.com/data)
|
|
191
|
+
|
|
192
|
+
---
|
|
193
|
+
|
|
194
|
+
Made by [Yasser's Studio](https://yasser.studio) · [LinkedIn](https://www.linkedin.com/in/yasserberrehail/) · [X](https://x.com/yassersstudio) · [hello@yasser.studio](mailto:hello@yasser.studio)
|