izmir-open-data-js 1.2.0 → 1.2.2

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.md CHANGED
@@ -52,7 +52,7 @@ async function verileriGetir() {
52
52
  verileriGetir();
53
53
  ```
54
54
 
55
- ### Örnek: ESHOT Hat ve Durak Bilgileri (CKAN)
55
+ ### Örnek: ESHOT Hat ve Durak Bilgileri
56
56
 
57
57
  ```javascript
58
58
  import { IzmirAPI } from 'izmir-open-data-js';
@@ -60,24 +60,23 @@ import { IzmirAPI } from 'izmir-open-data-js';
60
60
  const api = new IzmirAPI();
61
61
 
62
62
  async function eshotVerileri() {
63
- // Tüm ESHOT hatlarını çek
63
+ // Tüm ESHOT hatlarını çek (~441 hat)
64
64
  const hatlar = await api.eshot.getHatlar();
65
- console.log(`Toplam ${hatlar.total} hat bulundu`);
65
+ console.log(`Toplam ${hatlar.length} hat bulundu`);
66
66
 
67
67
  // İlk 10 hattı göster
68
- hatlar.records.slice(0, 10).forEach(hat => {
68
+ hatlar.slice(0, 10).forEach(hat => {
69
69
  console.log(`Hat ${hat.HAT_NO}: ${hat.HAT_ADI}`);
70
70
  });
71
71
 
72
- // Tüm durakları çek (sayfalama ile)
73
- const duraklar = await api.eshot.getDuraklar(100, 0);
74
- console.log(`Toplam ${duraklar.total} durak mevcut`);
72
+ // Tüm durakları çek (~11,770 durak)
73
+ const duraklar = await api.eshot.getDuraklar();
74
+ console.log(`Toplam ${duraklar.length} durak mevcut`);
75
75
 
76
- // Otopark ücretlerini çek
77
- const ucretler = await api.otopark.getUcretler();
78
- ucretler.records.forEach(otopark => {
79
- console.log(`${otopark["Otopark / Fiyat"]}: ${otopark["0-2 saat"]} TL (0-2 saat)`);
80
- });
76
+ // Metro, İzban, Vapur bağlantılı hatları çek
77
+ const baglantilar = await api.eshot.getBaglantiHatlari();
78
+ const metroHatlari = baglantilar.filter(h => h.BAGLANTI_TIP_ID === 1);
79
+ console.log(`Metro bağlantılı ${metroHatlari.length} hat var`);
81
80
  }
82
81
 
83
82
  eshotVerileri();
@@ -134,11 +133,12 @@ eshotVerileri();
134
133
  | `getDuragaYaklasanOtobusList(durakId)` | Bir durağa yaklaşan otobüsleri listeler |
135
134
  | `getHattinYaklasanOtobusleri(hatId, durakId)` | Bir hattın durağa yaklaşan otobüslerini listeler |
136
135
  | `getHatOtobusKonumlari(hatId)` | Hatta ait otobüslerin anlık konum bilgilerini döner |
137
- | `getHatlar(limit, offset)` | ESHOT hat bilgilerini döner (CKAN) |
138
- | `getHareketSaatleri(limit, offset)` | Otobüs hareket saatlerini döner (CKAN) |
139
- | `getDuraklar(limit, offset)` | Tüm ESHOT duraklarını listeler (CKAN) |
140
- | `getHatGuzergahlari(limit, offset)` | Hat güzergah koordinatlarını döner (CKAN) |
141
- | `getBaglantiTipleri(limit, offset)` | Diğer ulaşım araçları ile bağlantı tiplerini döner (CKAN) |
136
+ | `getHatlar()` | Tüm ESHOT hat bilgilerini döner (~441 hat) |
137
+ | `getHareketSaatleri()` | Tüm otobüs hareket saatlerini döner (~101,000+ kayıt) |
138
+ | `getDuraklar()` | Tüm ESHOT duraklarını listeler (~11,770 durak) |
139
+ | `getHatGuzergahlari()` | Hat güzergah koordinatlarını döner (~563,000+ nokta) |
140
+ | `getBaglantiTipleri()` | Diğer ulaşım araçları ile bağlantı tiplerini döner |
141
+ | `getBaglantiHatlari()` | Diğer ulaşım araçlarına bağlantılı hatları ve çalışma saatlerini döner (~583 kayıt) |
142
142
 
143
143
  ### 🚲 Ulaşım - BİSİM (`api.bisim`)
144
144
 
@@ -154,6 +154,7 @@ eshotVerileri();
154
154
  | `getSeferList()` | Tüm tramvay sefer bilgilerini listeler |
155
155
  | `getIstasyonList(seferId)` | Sefer numarasına göre tramvay istasyonlarını listeler |
156
156
  | `getSeferSiklikList(seferId)` | Sefer numarasına göre sefer sıklıklarını döner |
157
+ | `getPlanlananiSeferSayilari()` | Metro ve tramvay için aylık planlanan sefer sayılarını döner (~74 kayıt) |
157
158
 
158
159
  ### 🚇 Ulaşım - Metro (`api.metro`)
159
160
 
@@ -177,6 +178,7 @@ eshotVerileri();
177
178
  | `getCalismaGunleri()` | Vapurların çalışma günlerini döner |
178
179
  | `getHareketSaatleriByHat(iskeleId, gunId)` | İskele bazlı hareket saatlerini döner |
179
180
  | `getIskeleList()` | Vapur iskelelerini listeler |
181
+ | `getDetayList()` | Vapurların kapasite ve donanım bilgilerini döner (~20 gemi) |
180
182
 
181
183
  ### 🚃 Ulaşım - Tren & Diğer (`api.tren`)
182
184
 
@@ -194,6 +196,12 @@ eshotVerileri();
194
196
  | `getList()` | Otoparkların doluluk ve konum bilgilerini döner |
195
197
  | `getUcretler(limit, offset)` | İzelman otopark ücretlerini döner (CKAN) |
196
198
 
199
+ ### 🚦 Trafik (`api.trafik`)
200
+
201
+ | Metot | Açıklama |
202
+ | :--- | :--- |
203
+ | `getKameraList()` | Trafik kameralarının konum bilgilerini döner (~92 kamera) |
204
+
197
205
  ### 🚕 Taksi (`api.taksi`)
198
206
 
199
207
  | Metot | Açıklama |
package/dist/client.d.ts CHANGED
@@ -32,4 +32,16 @@ export declare class IzmirClient {
32
32
  * Normal fetch ile CKAN dump API çağrısı (Node.js için)
33
33
  */
34
34
  private getCKANDumpWithFetch;
35
+ /**
36
+ * CSV dosyasını çeker ve parse eder.
37
+ * @param url CSV dosyasının URL'i
38
+ * @param delimiter Ayırıcı karakter (varsayılan: ;)
39
+ */
40
+ getCSV<T = Record<string, string>>(url: string, delimiter?: string): Promise<T[]>;
41
+ /**
42
+ * CSV string'i parse eder.
43
+ * @param csv CSV string
44
+ * @param delimiter Ayırıcı karakter
45
+ */
46
+ private parseCSV;
35
47
  }
package/dist/client.js CHANGED
@@ -140,4 +140,56 @@ export class IzmirClient {
140
140
  throw new Error("Bilinmeyen CKAN Dump hatası");
141
141
  }
142
142
  }
143
+ /**
144
+ * CSV dosyasını çeker ve parse eder.
145
+ * @param url CSV dosyasının URL'i
146
+ * @param delimiter Ayırıcı karakter (varsayılan: ;)
147
+ */
148
+ async getCSV(url, delimiter = ';') {
149
+ try {
150
+ const res = await fetch(url);
151
+ if (!res.ok) {
152
+ throw new Error(`CSV API response error: ${res.status}`);
153
+ }
154
+ const text = await res.text();
155
+ return this.parseCSV(text, delimiter);
156
+ }
157
+ catch (error) {
158
+ if (error instanceof Error) {
159
+ throw new Error(`CSV Hatası: ${error.message}`);
160
+ }
161
+ throw new Error("Bilinmeyen CSV hatası");
162
+ }
163
+ }
164
+ /**
165
+ * CSV string'i parse eder.
166
+ * @param csv CSV string
167
+ * @param delimiter Ayırıcı karakter
168
+ */
169
+ parseCSV(csv, delimiter) {
170
+ const lines = csv.trim().split('\n');
171
+ if (lines.length < 2)
172
+ return [];
173
+ const headers = lines[0].split(delimiter).map(h => h.trim());
174
+ const results = [];
175
+ for (let i = 1; i < lines.length; i++) {
176
+ const values = lines[i].split(delimiter);
177
+ const obj = {};
178
+ for (let j = 0; j < headers.length; j++) {
179
+ const value = values[j]?.trim() || '';
180
+ // Sayısal değerleri number'a çevir, ancak özel karakterler içeriyorsa string bırak
181
+ // Örn: "06:00" (saat), "29-30" (hat numaraları), "True/False" string kalmalı
182
+ if (value === '' || value.includes(':') || value.includes('-') ||
183
+ value.toLowerCase() === 'true' || value.toLowerCase() === 'false') {
184
+ obj[headers[j]] = value;
185
+ }
186
+ else {
187
+ const numValue = parseFloat(value);
188
+ obj[headers[j]] = !isNaN(numValue) ? numValue : value;
189
+ }
190
+ }
191
+ results.push(obj);
192
+ }
193
+ return results;
194
+ }
143
195
  }
@@ -3,10 +3,9 @@ import { DefaultOnemliYer, OnemliYerWrapper } from "../common/types/onemliYer";
3
3
  export interface EshotDurak extends DefaultOnemliYer {
4
4
  }
5
5
  /**
6
- * ESHOT hat bilgisi (CKAN datasından)
6
+ * ESHOT hat bilgisi (CSV datasından)
7
7
  */
8
8
  export interface EshotHat {
9
- _id: number;
10
9
  HAT_NO: number;
11
10
  HAT_ADI: string;
12
11
  GUZERGAH_ACIKLAMA: string;
@@ -15,10 +14,9 @@ export interface EshotHat {
15
14
  HAT_BITIS: string;
16
15
  }
17
16
  /**
18
- * ESHOT otobüs hareket saati bilgisi (CKAN datasından)
17
+ * ESHOT otobüs hareket saati bilgisi (CSV datasından)
19
18
  */
20
19
  export interface EshotHareketSaati {
21
- _id: number;
22
20
  HAT_NO: number;
23
21
  TARIFE_ID: number;
24
22
  GIDIS_SAATI: string;
@@ -32,10 +30,9 @@ export interface EshotHareketSaati {
32
30
  DONUS_ELEKTRIKLI_OTOBUS: string;
33
31
  }
34
32
  /**
35
- * ESHOT otobüs durağı bilgisi (CKAN datasından)
33
+ * ESHOT otobüs durağı bilgisi (CSV datasından)
36
34
  */
37
- export interface EshotDurakCKAN {
38
- _id: number;
35
+ export interface EshotDurakCSV {
39
36
  DURAK_ID: number;
40
37
  DURAK_ADI: string;
41
38
  ENLEM: number;
@@ -43,10 +40,9 @@ export interface EshotDurakCKAN {
43
40
  DURAKTAN_GECEN_HATLAR: string;
44
41
  }
45
42
  /**
46
- * ESHOT hat güzergah noktası bilgisi (CKAN datasından)
43
+ * ESHOT hat güzergah noktası bilgisi (CSV datasından)
47
44
  */
48
45
  export interface EshotHatGuzergah {
49
- _id: number;
50
46
  HAT_NO: number;
51
47
  /** Güzergah yönü: 1 = Gidiş, 2 = Dönüş */
52
48
  YON: number;
@@ -54,15 +50,32 @@ export interface EshotHatGuzergah {
54
50
  ENLEM: number;
55
51
  }
56
52
  /**
57
- * ESHOT bağlantı tipi bilgisi (CKAN datasından)
53
+ * ESHOT bağlantı tipi bilgisi (CSV datasından)
58
54
  * Otobüs hatlarının diğer ulaşım araçları ile bağlantı tipleri
59
55
  */
60
56
  export interface EshotBaglantiTipi {
61
- _id: number;
62
57
  BAGLANTI_TIP_ID: number;
63
- /** Bağlantı tipi adı (METRO, IZBAN, VAPUR, TRAMVAY, vb.) */
58
+ /** Bağlantı tipi adı (METRO, IZBAN, VAPUR, HAVAALANI, OTOGAR) */
64
59
  BAGLANTI_TIPI: string;
65
60
  }
61
+ /**
62
+ * ESHOT bağlantılı hat bilgisi (CSV datasından)
63
+ * Diğer ulaşım araçları ile bağlantılı otobüs hatları
64
+ */
65
+ export interface EshotBaglantiHat {
66
+ /** Bağlantı tipi ID'si (1=METRO, 2=IZBAN, 3=VAPUR, 4=HAVAALANI, 5=OTOGAR) */
67
+ BAGLANTI_TIP_ID: number;
68
+ HAT_NO: number;
69
+ HAT_ADI: string;
70
+ GUZERGAH_ACIKLAMA: string;
71
+ ACIKLAMA: string;
72
+ HAT_BASLANGIC: string;
73
+ HAT_BITIS: string;
74
+ /** Gidiş çalışma saati aralığı (örn: "06:00 - 23:00") */
75
+ GIDIS_CALISMA_SAATI: string;
76
+ /** Dönüş çalışma saati aralığı (örn: "06:35 - 23:40") */
77
+ DONUS_CALISMA_SAATI: string;
78
+ }
66
79
  /**
67
80
  * Durağa yaklaşan otobüs bilgisi
68
81
  */
@@ -116,53 +129,48 @@ export interface CKANDumpResponse {
116
129
  }
117
130
  export declare function eshot(client: IzmirClient): {
118
131
  /**
119
- * ESHOT hatlarının listesini içeren web servisi (CKAN).
132
+ * ESHOT hatlarının listesini içeren web servisi (CSV).
133
+ * Tüm hat verilerini tek seferde döndürür (~441 hat).
120
134
  *
121
- * Kaynak: https://acikveri.bizizmir.com/dataset/eshot-hat-bilgileri
122
- * @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
123
- * @param offset Atlanacak kayıt sayısı (sayfalama için)
135
+ * Kaynak: https://openfiles.izmir.bel.tr/211488/docs/eshot-otobus-hatlari.csv
124
136
  */
125
- getHatlar(limit?: number, offset?: number): Promise<CKANDatastoreResponse<EshotHat>>;
137
+ getHatlar(): Promise<EshotHat[]>;
126
138
  /**
127
- * ESHOT otobüs hareket saatlerini içeren web servisi (CKAN).
139
+ * ESHOT otobüs hareket saatlerini içeren web servisi (CSV).
140
+ * Tüm hareket saati verilerini tek seferde döndürür (~101,000+ kayıt).
128
141
  *
129
- * Kaynak: https://acikveri.bizizmir.com/dataset/eshot-otobus-hareket-saatleri
130
- * @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
131
- * @param offset Atlanacak kayıt sayısı (sayfalama için)
142
+ * Kaynak: https://openfiles.izmir.bel.tr/211488/docs/eshot-otobus-hareketsaatleri.csv
132
143
  */
133
- getHareketSaatleri(limit?: number, offset?: number): Promise<CKANDatastoreResponse<EshotHareketSaati>>;
144
+ getHareketSaatleri(): Promise<EshotHareketSaati[]>;
134
145
  /**
135
- * ESHOT otobüs duraklarının listesini içeren web servisi (CKAN).
146
+ * ESHOT otobüs duraklarının listesini içeren web servisi (CSV).
147
+ * Tüm durak verilerini tek seferde döndürür (~11,770 durak).
136
148
  *
137
- * Kaynak: https://acikveri.bizizmir.com/dataset/eshot-duraklari
138
- * @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
139
- * @param offset Atlanacak kayıt sayısı (sayfalama için)
149
+ * Kaynak: https://openfiles.izmir.bel.tr/211488/docs/eshot-otobus-duraklari.csv
140
150
  */
141
- getDuraklar(limit?: number, offset?: number): Promise<CKANDatastoreResponse<EshotDurakCKAN>>;
151
+ getDuraklar(): Promise<EshotDurakCSV[]>;
142
152
  /**
143
- * ESHOT hat güzergahlarını içeren web servisi (CKAN Dump).
153
+ * ESHOT hat güzergahlarını içeren web servisi (CSV).
144
154
  * Her hat için gidiş (YON=1) ve dönüş (YON=2) koordinat noktalarını içerir.
145
- * Tüm güzergah verilerini tek seferde döndürür.
155
+ * Tüm güzergah verilerini tek seferde döndürür (~560,000+ nokta).
146
156
  *
147
- * Kaynak: https://acikveri.bizizmir.com/dataset/eshot-hat-guzergahlari
157
+ * Kaynak: https://openfiles.izmir.bel.tr/211488/docs/eshot-otobus-hat-guzergahlari.csv
148
158
  */
149
- getHatGuzergahlari(): Promise<CKANDumpResponse>;
159
+ getHatGuzergahlari(): Promise<EshotHatGuzergah[]>;
150
160
  /**
151
- * ESHOT hat güzergahlarını nesne formatında döndürür.
152
- * Raw dump verisini EshotHatGuzergah nesnelerine dönüştürür.
161
+ * Otobüs hatlarının diğer ulaşım araçları ile bağlantı tiplerini içeren web servisi (CSV).
162
+ * Metro, İzban, Vapur, Havaalanı, Otogar gibi bağlantı tiplerini listeler.
153
163
  *
154
- * Kaynak: https://acikveri.bizizmir.com/dataset/eshot-hat-guzergahlari
164
+ * Kaynak: https://acikveri.bizizmir.com/dataset/otobus-hatlarinin-diger-ulasim-araclari-ile-baglanti-tipleri
155
165
  */
156
- getHatGuzergahlariParsed(): Promise<EshotHatGuzergah[]>;
166
+ getBaglantiTipleri(): Promise<EshotBaglantiTipi[]>;
157
167
  /**
158
- * Otobüs hatlarının diğer ulaşım araçları ile bağlantı tiplerini içeren web servisi (CKAN).
159
- * Metro, İzban, Vapur, Tramvay gibi bağlantı tiplerini listeler.
168
+ * Diğer ulaşım araçları ile bağlantılı otobüs hatlarının listesini içeren web servisi (CSV).
169
+ * Her hattın hangi ulaşım aracına bağlantılı olduğunu ve çalışma saatlerini gösterir (~583 kayıt).
160
170
  *
161
- * Kaynak: https://acikveri.bizizmir.com/dataset/otobus-hatlarinin-diger-ulasim-araclari-ile-baglanti-tipleri
162
- * @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
163
- * @param offset Atlanacak kayıt sayısı (sayfalama için)
171
+ * Kaynak: https://openfiles.izmir.bel.tr/211488/docs/eshot-otobus-baglantili-hatlar.csv
164
172
  */
165
- getBaglantiTipleri(limit?: number, offset?: number): Promise<CKANDatastoreResponse<EshotBaglantiTipi>>;
173
+ getBaglantiHatlari(): Promise<EshotBaglantiHat[]>;
166
174
  /**
167
175
  * ESHOT duraklarının konum, isim ve diğer bilgilerini içeren web servisi.
168
176
  *
@@ -1,87 +1,59 @@
1
1
  export function eshot(client) {
2
2
  return {
3
3
  /**
4
- * ESHOT hatlarının listesini içeren web servisi (CKAN).
4
+ * ESHOT hatlarının listesini içeren web servisi (CSV).
5
+ * Tüm hat verilerini tek seferde döndürür (~441 hat).
5
6
  *
6
- * Kaynak: https://acikveri.bizizmir.com/dataset/eshot-hat-bilgileri
7
- * @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
8
- * @param offset Atlanacak kayıt sayısı (sayfalama için)
7
+ * Kaynak: https://openfiles.izmir.bel.tr/211488/docs/eshot-otobus-hatlari.csv
9
8
  */
10
- getHatlar(limit = 100, offset = 0) {
11
- return client.getCKAN('datastore_search', {
12
- resource_id: 'bd6c84f8-49ba-4cf4-81f8-81a0fbb5caa3',
13
- limit,
14
- offset
15
- });
9
+ getHatlar() {
10
+ return client.getCSV('https://openfiles.izmir.bel.tr/211488/docs/eshot-otobus-hatlari.csv');
16
11
  },
17
12
  /**
18
- * ESHOT otobüs hareket saatlerini içeren web servisi (CKAN).
13
+ * ESHOT otobüs hareket saatlerini içeren web servisi (CSV).
14
+ * Tüm hareket saati verilerini tek seferde döndürür (~101,000+ kayıt).
19
15
  *
20
- * Kaynak: https://acikveri.bizizmir.com/dataset/eshot-otobus-hareket-saatleri
21
- * @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
22
- * @param offset Atlanacak kayıt sayısı (sayfalama için)
16
+ * Kaynak: https://openfiles.izmir.bel.tr/211488/docs/eshot-otobus-hareketsaatleri.csv
23
17
  */
24
- getHareketSaatleri(limit = 100, offset = 0) {
25
- return client.getCKAN('datastore_search', {
26
- resource_id: 'c6fa6046-f755-47d7-b69e-db6bb06a8b5a',
27
- limit,
28
- offset
29
- });
18
+ getHareketSaatleri() {
19
+ return client.getCSV('https://openfiles.izmir.bel.tr/211488/docs/eshot-otobus-hareketsaatleri.csv');
30
20
  },
31
21
  /**
32
- * ESHOT otobüs duraklarının listesini içeren web servisi (CKAN).
22
+ * ESHOT otobüs duraklarının listesini içeren web servisi (CSV).
23
+ * Tüm durak verilerini tek seferde döndürür (~11,770 durak).
33
24
  *
34
- * Kaynak: https://acikveri.bizizmir.com/dataset/eshot-duraklari
35
- * @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
36
- * @param offset Atlanacak kayıt sayısı (sayfalama için)
25
+ * Kaynak: https://openfiles.izmir.bel.tr/211488/docs/eshot-otobus-duraklari.csv
37
26
  */
38
- getDuraklar(limit = 100, offset = 0) {
39
- return client.getCKAN('datastore_search', {
40
- resource_id: '0c791266-a2e4-4f14-82b8-9a9b102fbf94',
41
- limit,
42
- offset
43
- });
27
+ getDuraklar() {
28
+ return client.getCSV('https://openfiles.izmir.bel.tr/211488/docs/eshot-otobus-duraklari.csv');
44
29
  },
45
30
  /**
46
- * ESHOT hat güzergahlarını içeren web servisi (CKAN Dump).
31
+ * ESHOT hat güzergahlarını içeren web servisi (CSV).
47
32
  * Her hat için gidiş (YON=1) ve dönüş (YON=2) koordinat noktalarını içerir.
48
- * Tüm güzergah verilerini tek seferde döndürür.
33
+ * Tüm güzergah verilerini tek seferde döndürür (~560,000+ nokta).
49
34
  *
50
- * Kaynak: https://acikveri.bizizmir.com/dataset/eshot-hat-guzergahlari
35
+ * Kaynak: https://openfiles.izmir.bel.tr/211488/docs/eshot-otobus-hat-guzergahlari.csv
51
36
  */
52
37
  getHatGuzergahlari() {
53
- return client.getCKANDump('543f2249-c734-48e4-8739-72efbbfc843c');
38
+ return client.getCSV('https://openfiles.izmir.bel.tr/211488/docs/eshot-otobus-hat-guzergahlari.csv');
54
39
  },
55
40
  /**
56
- * ESHOT hat güzergahlarını nesne formatında döndürür.
57
- * Raw dump verisini EshotHatGuzergah nesnelerine dönüştürür.
41
+ * Otobüs hatlarının diğer ulaşım araçları ile bağlantı tiplerini içeren web servisi (CSV).
42
+ * Metro, İzban, Vapur, Havaalanı, Otogar gibi bağlantı tiplerini listeler.
58
43
  *
59
- * Kaynak: https://acikveri.bizizmir.com/dataset/eshot-hat-guzergahlari
44
+ * Kaynak: https://acikveri.bizizmir.com/dataset/otobus-hatlarinin-diger-ulasim-araclari-ile-baglanti-tipleri
60
45
  */
61
- async getHatGuzergahlariParsed() {
62
- const dump = await client.getCKANDump('543f2249-c734-48e4-8739-72efbbfc843c');
63
- return dump.records.map(record => ({
64
- _id: record[0],
65
- HAT_NO: record[1],
66
- YON: record[2],
67
- BOYLAM: record[3],
68
- ENLEM: record[4]
69
- }));
46
+ getBaglantiTipleri() {
47
+ return client.getCSV('https://acikveri.bizizmir.com/dataset/f0964595-53e0-4b94-bf11-9423f8bb595e/resource/c228da75-adfd-422a-a480-2a4c7ffa7586/download/eshot-otobus-baglanti-tipleri.csv');
70
48
  },
71
49
  /**
72
- * Otobüs hatlarının diğer ulaşım araçları ile bağlantı tiplerini içeren web servisi (CKAN).
73
- * Metro, İzban, Vapur, Tramvay gibi bağlantı tiplerini listeler.
50
+ * Diğer ulaşım araçları ile bağlantılı otobüs hatlarının listesini içeren web servisi (CSV).
51
+ * Her hattın hangi ulaşım aracına bağlantılı olduğunu ve çalışma saatlerini gösterir (~583 kayıt).
74
52
  *
75
- * Kaynak: https://acikveri.bizizmir.com/dataset/otobus-hatlarinin-diger-ulasim-araclari-ile-baglanti-tipleri
76
- * @param limit Döndürülecek kayıt sayısı (varsayılan: 100)
77
- * @param offset Atlanacak kayıt sayısı (sayfalama için)
53
+ * Kaynak: https://openfiles.izmir.bel.tr/211488/docs/eshot-otobus-baglantili-hatlar.csv
78
54
  */
79
- getBaglantiTipleri(limit = 100, offset = 0) {
80
- return client.getCKAN('datastore_search', {
81
- resource_id: 'c228da75-adfd-422a-a480-2a4c7ffa7586',
82
- limit,
83
- offset
84
- });
55
+ getBaglantiHatlari() {
56
+ return client.getCSV('https://openfiles.izmir.bel.tr/211488/docs/eshot-otobus-baglantili-hatlar.csv');
85
57
  },
86
58
  /**
87
59
  * ESHOT duraklarının konum, isim ve diğer bilgilerini içeren web servisi.
@@ -0,0 +1,21 @@
1
+ import { IzmirClient } from "../client";
2
+ /**
3
+ * Trafik kamerası bilgisi (CSV datasından)
4
+ */
5
+ export interface TrafikKamerasi {
6
+ /** Kamera/Kavşak adı */
7
+ ADI: string;
8
+ /** Enlem koordinatı */
9
+ ENLEM: number;
10
+ /** Boylam koordinatı */
11
+ BOYLAM: number;
12
+ }
13
+ export declare function trafik(client: IzmirClient): {
14
+ /**
15
+ * İzmir'deki trafik kameralarının listesini içeren web servisi (CSV).
16
+ * Kavşak adı ve koordinat bilgilerini içerir (~92 kamera).
17
+ *
18
+ * Kaynak: https://acikveri.bizizmir.com/dataset/trafik-kameralari
19
+ */
20
+ getKameraList(): Promise<TrafikKamerasi[]>;
21
+ };
@@ -0,0 +1,13 @@
1
+ export function trafik(client) {
2
+ return {
3
+ /**
4
+ * İzmir'deki trafik kameralarının listesini içeren web servisi (CSV).
5
+ * Kavşak adı ve koordinat bilgilerini içerir (~92 kamera).
6
+ *
7
+ * Kaynak: https://acikveri.bizizmir.com/dataset/trafik-kameralari
8
+ */
9
+ getKameraList() {
10
+ return client.getCSV('https://acikveri.bizizmir.com/dataset/a5cda2f2-ccbd-4fac-a4bb-c691abff28f1/resource/b91cb15d-05c6-45b7-8a75-48e030aad368/download/trafikkameralari.csv');
11
+ }
12
+ };
13
+ }
@@ -28,6 +28,20 @@ export interface TramvaySefer {
28
28
  BitisSaati: string;
29
29
  Aralik: number;
30
30
  }
31
+ /**
32
+ * Planlanan sefer sayıları (CSV datasından)
33
+ * Metro ve tramvay hatları için aylık planlanan sefer sayıları
34
+ */
35
+ export interface TramvayPlanlananiSefer {
36
+ YIL: number;
37
+ AY: number;
38
+ /** İzmir Metrosu planlanan sefer sayısı */
39
+ IZMIR_METROSU: number;
40
+ /** Karşıyaka ve Çiğli Tramvayı planlanan sefer sayısı */
41
+ KARSIYAKA_TRAMVAYI_VE_CIGLI_TRAMVAYI: number;
42
+ /** Konak Tramvayı planlanan sefer sayısı */
43
+ KONAK_TRAMVAYI: number;
44
+ }
31
45
  export declare function tramvay(client: IzmirClient): {
32
46
  /**
33
47
  * Tramvay hatları bilgisini içeren web servis:
@@ -58,4 +72,11 @@ export declare function tramvay(client: IzmirClient): {
58
72
  * @param seferId Sefer numarası
59
73
  */
60
74
  getSeferSiklikList(seferId: number): Promise<TramvaySeferSikligi[]>;
75
+ /**
76
+ * Metro ve tramvay hatları için aylık planlanan sefer sayılarını içeren web servisi (CSV).
77
+ * İzmir Metrosu, Karşıyaka/Çiğli Tramvayı ve Konak Tramvayı verilerini içerir.
78
+ *
79
+ * Kaynak: https://acikveri.bizizmir.com/dataset/planlanan-sefer-sayilari
80
+ */
81
+ getPlanlananiSeferSayilari(): Promise<TramvayPlanlananiSefer[]>;
61
82
  };
@@ -36,6 +36,15 @@ export function tramvay(client) {
36
36
  */
37
37
  getSeferSiklikList(seferId) {
38
38
  return client.get(`tramvay/seferler/${seferId}`);
39
+ },
40
+ /**
41
+ * Metro ve tramvay hatları için aylık planlanan sefer sayılarını içeren web servisi (CSV).
42
+ * İzmir Metrosu, Karşıyaka/Çiğli Tramvayı ve Konak Tramvayı verilerini içerir.
43
+ *
44
+ * Kaynak: https://acikveri.bizizmir.com/dataset/planlanan-sefer-sayilari
45
+ */
46
+ getPlanlananiSeferSayilari() {
47
+ return client.getCSV('https://acikveri.bizizmir.com/dataset/ace45290-413e-4786-82e4-d23fd56591b1/resource/2fc4d0cf-9628-43b7-95d3-df5742a95f02/download/planlanan_sefer_sayilari.csv');
39
48
  }
40
49
  };
41
50
  }
@@ -38,6 +38,40 @@ export interface VapurIskele {
38
38
  AktifMi: boolean;
39
39
  ArabaliVapurIskelesiMi: boolean;
40
40
  }
41
+ /**
42
+ * Vapur detay bilgisi (CSV datasından)
43
+ * Gemilerin kapasite ve donanım özellikleri
44
+ */
45
+ export interface VapurDetay {
46
+ /** Gemi adı */
47
+ GEMI_ADI: string;
48
+ /** Gemi tipi (Yolcu Gemisi, Araba Vapuru vb.) */
49
+ GEMI_TIPI: string;
50
+ /** Yolcu kapasitesi */
51
+ YOLCU_KAPASITESI: number | string;
52
+ /** Araç kapasitesi */
53
+ ARAC_KAPASITESI: number | string;
54
+ /** Bisiklet park yeri kapasitesi */
55
+ BISIKLET_PARK_YERI_KAPASITESI: number | string;
56
+ /** Engelli erişimine uygunluk (Var/Yok) */
57
+ ENGELLI_ERISIMINE_UYGUNLUK: string;
58
+ /** Engelli asansörü sayısı */
59
+ ENGELLI_ASANSORU_SAYISI: number | string;
60
+ /** Erkek tuvaleti sayısı */
61
+ ERKEK_TUVALETI_SAYISI: number | string;
62
+ /** Kadın tuvaleti sayısı */
63
+ KADIN_TUVALETI_SAYISI: number | string;
64
+ /** Engelli tuvaleti sayısı */
65
+ ENGELLI_TUVALETI_SAYISI: number | string;
66
+ /** Bebek bakım odası sayısı */
67
+ BEBEK_BAKIM_ODASI_SAYISI: number | string;
68
+ /** Büfe veya otomat (Var/Yok) */
69
+ BUFE_VEYA_OTOMAT: string;
70
+ /** Evcil hayvan taşıma kafesi sayısı */
71
+ EVCIL_HAYVAN_TASIMA_KAFESI_SAYISI: number | string;
72
+ /** Wizmirnet kablosuz internet (Var/Yok) */
73
+ WIZMIRNET_KABLOSUZ_INTERNET: string;
74
+ }
41
75
  export declare function vapur(client: IzmirClient): {
42
76
  /**
43
77
  * Vapur hareket saatleri bilgisini içeren web servisi.
@@ -69,4 +103,11 @@ export declare function vapur(client: IzmirClient): {
69
103
  * Kaynak: https://acikveri.bizizmir.com/dataset/izdeniz-vapur-iskeleleri
70
104
  */
71
105
  getIskeleList(): Promise<VapurIskele[]>;
106
+ /**
107
+ * Vapurların detaylı bilgilerini içeren web servisi (CSV).
108
+ * Kapasite, donanım ve erişilebilirlik bilgilerini içerir (~20 gemi).
109
+ *
110
+ * Kaynak: https://acikveri.bizizmir.com/dataset/vapur-detay
111
+ */
112
+ getDetayList(): Promise<VapurDetay[]>;
72
113
  };
@@ -37,6 +37,15 @@ export function vapur(client) {
37
37
  */
38
38
  getIskeleList() {
39
39
  return client.get("izdeniz/iskeleler");
40
+ },
41
+ /**
42
+ * Vapurların detaylı bilgilerini içeren web servisi (CSV).
43
+ * Kapasite, donanım ve erişilebilirlik bilgilerini içerir (~20 gemi).
44
+ *
45
+ * Kaynak: https://acikveri.bizizmir.com/dataset/vapur-detay
46
+ */
47
+ getDetayList() {
48
+ return client.getCSV('https://acikveri.bizizmir.com/dataset/87b38b23-4f73-4650-9d96-c72ad6ee73e3/resource/e6d7425a-694c-4f39-b452-4aade132635c/download/vapurdetay.csv');
40
49
  }
41
50
  };
42
51
  }
package/dist/index.d.ts CHANGED
@@ -40,12 +40,12 @@ export declare class IzmirAPI {
40
40
  getGunlukHavaKalitesiOlcumleri(tarih: Date): Promise<import("./endpoints/iklim").HavaKalitesiOlcum[]>;
41
41
  };
42
42
  eshot: {
43
- getHatlar(limit?: number, offset?: number): Promise<import("./endpoints/eshot").CKANDatastoreResponse<import("./endpoints/eshot").EshotHat>>;
44
- getHareketSaatleri(limit?: number, offset?: number): Promise<import("./endpoints/eshot").CKANDatastoreResponse<import("./endpoints/eshot").EshotHareketSaati>>;
45
- getDuraklar(limit?: number, offset?: number): Promise<import("./endpoints/eshot").CKANDatastoreResponse<import("./endpoints/eshot").EshotDurakCKAN>>;
46
- getHatGuzergahlari(): Promise<import("./endpoints/eshot").CKANDumpResponse>;
47
- getHatGuzergahlariParsed(): Promise<import("./endpoints/eshot").EshotHatGuzergah[]>;
48
- getBaglantiTipleri(limit?: number, offset?: number): Promise<import("./endpoints/eshot").CKANDatastoreResponse<import("./endpoints/eshot").EshotBaglantiTipi>>;
43
+ getHatlar(): Promise<import("./endpoints/eshot").EshotHat[]>;
44
+ getHareketSaatleri(): Promise<import("./endpoints/eshot").EshotHareketSaati[]>;
45
+ getDuraklar(): Promise<import("./endpoints/eshot").EshotDurakCSV[]>;
46
+ getHatGuzergahlari(): Promise<import("./endpoints/eshot").EshotHatGuzergah[]>;
47
+ getBaglantiTipleri(): Promise<import("./endpoints/eshot").EshotBaglantiTipi[]>;
48
+ getBaglantiHatlari(): Promise<import("./endpoints/eshot").EshotBaglantiHat[]>;
49
49
  getYakinDurakList(enlem: number, boylam: number): Promise<import("./common/types/onemliYer.js").OnemliYerWrapper<import("./endpoints/eshot").EshotDurak>>;
50
50
  getDuragaYaklasanOtobusList(durakId: number): Promise<import("./endpoints/eshot").YaklasanOtobus[]>;
51
51
  getHattinYaklasanOtobusleri(hatId: number, durakId: number): Promise<import("./endpoints/eshot").YaklasanOtobus[]>;
@@ -59,6 +59,7 @@ export declare class IzmirAPI {
59
59
  getSeferList(): Promise<import("./endpoints/tramvay").TramvaySefer[]>;
60
60
  getIstasyonList(seferId: number): Promise<import("./endpoints/tramvay").TramvayIstasyonu[]>;
61
61
  getSeferSiklikList(seferId: number): Promise<import("./endpoints/tramvay").TramvaySeferSikligi[]>;
62
+ getPlanlananiSeferSayilari(): Promise<import("./endpoints/tramvay").TramvayPlanlananiSefer[]>;
62
63
  };
63
64
  metro: {
64
65
  getIstasyonList(): Promise<import("./endpoints/metro").MetroIstasyonu[]>;
@@ -80,6 +81,7 @@ export declare class IzmirAPI {
80
81
  getCalismaGunleri(): Promise<import("./common/types/gun.js").GunReferansi>;
81
82
  getHareketSaatleriByHat(iskeleId: string, gunId: number): Promise<import("./endpoints/vapur").VapurHatti[]>;
82
83
  getIskeleList(): Promise<import("./endpoints/vapur").VapurIskele[]>;
84
+ getDetayList(): Promise<import("./endpoints/vapur").VapurDetay[]>;
83
85
  };
84
86
  egitim: {
85
87
  getEngelliOkullariList(): Promise<import("./common/types/onemliYer.js").OnemliYerWrapper<import("./endpoints/egitim").EgitimKurumu>>;
@@ -185,5 +187,8 @@ export declare class IzmirAPI {
185
187
  iztek: {
186
188
  getAskidaIzmirimKartIstatistik(): Promise<import("./endpoints/iztek").AskidaIzmirimKartIstatistik>;
187
189
  };
190
+ trafik: {
191
+ getKameraList(): Promise<import("./endpoints/trafik").TrafikKamerasi[]>;
192
+ };
188
193
  constructor(baseUrl?: string);
189
194
  }
package/dist/index.js CHANGED
@@ -28,6 +28,7 @@ import { sosyal } from "./endpoints/sosyal";
28
28
  import { spor } from "./endpoints/spor";
29
29
  import { cografi } from "./endpoints/cografi";
30
30
  import { iztek } from "./endpoints/iztek";
31
+ import { trafik } from "./endpoints/trafik";
31
32
  export class IzmirAPI {
32
33
  constructor(baseUrl) {
33
34
  this.client = new IzmirClient(baseUrl);
@@ -60,5 +61,6 @@ export class IzmirAPI {
60
61
  this.spor = spor(this.client);
61
62
  this.cografi = cografi(this.client);
62
63
  this.iztek = iztek(this.client);
64
+ this.trafik = trafik(this.client);
63
65
  }
64
66
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "izmir-open-data-js",
3
- "version": "1.2.0",
3
+ "version": "1.2.2",
4
4
  "description": "Izmir Open Data API wrapper - İzmir Büyükşehir Belediyesi Açık Veri API'leri için TypeScript/JavaScript kütüphanesi",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",