Media playback is unsupported on your device Media caption The BBC's Karishma Vaswani: "Roads that have turned into rivers"

At least four people have been killed by heavy flooding in the Indonesian capital, Jakarta, say officials.

The flooding, caused by days of heavy rain, has blocked roads and forced businesses in the capital to close.

Areas including the central business district (CBD) were inundated and traffic was grid-locked as residents struggled to move around the city.

Some 20,000 people have abandoned their homes, as officials warn that the rain could worsen in the next few days.

The governor of Jakarta, Joko Widodo, has declared a state of emergency.

He also said he was committed to making a "breakthrough" in efforts to tackle the flooding.

At the scene Jakarta, the capital of South East Asia's largest economy, was brought to its knees today because of rising floodwaters. Cars and motorcycles broke down midway through their journey, as the waters inundated parts of the capital city. Many Jakartans have been left stranded because of the lack of public transport, wading through roads that have turned into rivers to get to their destination. As a result many government offices and businesses have been forced to close. Some schools have told their students to stay at home. Jakartans are used to dealing with floods - this happens every year because of the torrential rains. But this time, even the usually immune central business district has been affected. In low-lying areas, residents have said waters have reached 2-3 metres high. People here regularly complain that the government hasn't done enough to upgrade its infrastructure and protect its citizens from what could have been an avoidable disaster.

The CBD normally escapes damage when Jakarta experiences its heavy seasonal rains, but on Thursday, many government offices and businesses were forced to close because staff could not get to work.

Local television pictures showed people wading through almost neck-high water in some parts of the city, while in others, the waters were up to 2m (6.5ft) deep.

"What we need most is life rafts and a big truck to help evacuate motorbike drivers whose engines malfunctioned because of the water," Sofia, a student, told BBC Indonesian.

Another Jakarta resident, Wildan, urged the government to do more to stop floods in future. "The dams are no longer sufficient to hold the water," he said.

Yayat Supriatna, an urban planning expert, told the BBC that Jakarta's drainage system "is still the same as it was in the Dutch colonial era" and should be rebuilt.

"The floods are caused by the failure to manage and sustain the rivers as water reservoirs. I suggest the governor dredge the rivers because if the rivers are deeper the better [the system] will function."

The presidential palace grounds are among areas flooded, and images showed President Susilo Bambang Yudhoyono walking around the palace compound with Foreign Minister Marty Natalegawa, wearing trousers rolled up above his knees.

Mr Yudhoyono told reporters: "I have no problem with the palace being flooded. The most important thing is the people are protected."

He had instructed the national police chief and the army chief to deploy their forces and evacuate flood victims, presidential spokesman Julian Pasha told BBC Indonesian.

The Jakarta Post said two of the people killed in the capital were children, aged 13 and two.

Image caption Mr Yudhoyono (in blue) had ordered police and troops to help out, his spokesman said In pictures: Jakarta battles floods

State funds are available to help those affected by the flooding following the declaration of the state of emergency, which will remain in effect until 27 January.

A Transport Ministry spokesman said air travel was not disrupted.

A spokesman for state electricity company PLN said it had cut power supplies to a number of areas to minimise the danger of electrocutions, the Jakarta Globe reports.

The last severe flooding in Jakarta was in 2007, when at least 40 people were killed and hundreds of thousands forced from their homes.

Japanese Prime Minister Shinzo Abe is due in Jakarta on Friday to meet top leaders and deliver a foreign policy speech.