Daerah ibu kota itu kemudian berkembang pesat. Namun, banjir tak beranjak pergi. Menurut Restu, 1 Januari 1892, Weltevreden kebanjiran. Seperti ditulis koran Siang Po, banjir terjadi setelah turun hujan lebat selama delapan jam. Curah hujan yang tercatat di Batavia saat itu 286 milimeter. Sebagai catatan, ketinggian curah hujan saat itu jauh lebih tinggi dibandingkan curah hujan rata-rata selama dua hari terakhir, 40-100 mm, yang menyebabkan banjir besar di Jakarta. Artinya, faktor perubahan cuaca boleh diabaikan sebagai penyebab banjir Jakarta.
Setahun kemudian, banjir lebih besar melanda. Hampir seluruh kota terendam. Kampung Pluit Belakang, Sawah Besar, Kandang Sapi, Pasayuran, Kebon Jeruk, Kemayoran Wetan, dan Sumur Batu terendam air hingga 1 meter. Banjir memicu wabah kolera sehingga banyak warga meninggal.
Restu juga mencatat, Batavia kembali kebanjiran pada 1895, 1899, 1904, dan 1909. Pemerintah kolonial dinilai gagal mengatasi banjir. Pada 19 Februari 1909, koran de Locomotief menulis berita berjudul ”Batavia Onder Water”, pelesetan dari singkatan BOW (Burgelijke den Openbare Werken), kantor yang menangani sarana dan prasarana pemerintah, termasuk pengairan.
Sejak itu, banjir di Batavia terus meluas seiring pembengkakan jumlah penduduk. Januari 1918, Batavia dilanda banjir hebat sehingga melumpuhkan aktivitas kota selama sebulan. Belanda coba mengatasi banjir dengan membangun kanal dan pintu air.
Peninggalan itu, antara lain, Kanal Banjir Kalimalang, pintu air Matraman, dan pintu air Karet. Kanal Banjir Kalimalang, menurut Restu, bisa menyelamatkan kawasan Menteng dan sekitarnya yang dihuni kalangan elite Belanda dari banjir tahun 1923. Namun, permukiman pribumi di Batavia tetap banjir.
Sistem kanal tidak bisa mengatasi banjir besar yang melanda Batavia pada 1932 dan 1933. ”Kanal itu dibangun bukan untuk menyelesaikan seluruh banjir Jakarta, hanya beberapa kawasan saja, karena air pasti meluber ke daerah lain yang lebih rendah,” kata Restu.
Dari dulu, kanal tidak memberi jaminan, apalagi Kanal Barat yang dirancang Herman van Broeen tahun 1923 dan baru dibuat pada 1973. Proyek itu sudah ketinggalan 50 tahun. Adapun Kanal Timur dibangun pada 2006. ”Sistem Kanal Banjir Kalimalang yang dibuat ketika penduduk Jakarta masih di bawah 800.000 orang saja tidak bisa mengatasi banjir. Anehnya, kita sekarang masih mengandalkan kanal, bahkan mau membangun deep tunnel,” ungkapnya.
Restu mengatakan, kegagalan sistem kanal yang dirintis Belanda karena topografi Jakarta yang datar dan tingginya tingkat sedimentasi.
Sementara itu menurut Ahli geologi Lembaga Ilmu Pengetahuan Indonesia, Jan Sopaheluwakan, mengatakan, banjir Jakarta tak akan bisa diselesaikan dengan sistem kanal karena geologis Jakarta sebenarnya cekungan banjir. Sebaliknya, kawasan utara sekitar Ancol dan Teluk Jakarta mengalami pengangkatan karena proses tektonik. Akibatnya, air dari 13 sungai yang bermuara di Teluk Jakarta tidak bisa mengalir lancar ke laut dan kerap terjebak di cekungan besar Jakarta.
Yaitu Teluk Jakarta tidak bisa membentuk delta, seperti Delta Mahakam di Kalimantan. Endapan kasar yang dibawa sungai-sungai mengendap di cekungan Jakarta sehingga tidak sampai ke laut dan membentuk delta.
Teluk Jakarta, menurut Sopaheluwakan, adalah tinggian lokal, sementara dari Pantai Teluk ke arah darat (ke selatan) adalah kawasan rendahannya. Dataran rendahan (cekungan) ini dibatasi tinggian Ciputat. Jadi, dari barat Ciputat hingga Teluk Jakarta ibarat sebuah mangkuk raksasa. Jakarta tepat berada di tengah mangkuk itu sehingga secara geomorfologi disebut ”dataran banjir Jakarta”.