Which buildings take your sun
Shadows cast by the buildings of Malaysia at any moment of any day. Drag the time slider or play the day through, and drop a pin anywhere to see how many hours of sun that spot gets and which tower takes the rest. The heights come from the KPKT developer register joined to OpenStreetMap outlines. The map holds 1,472 buildings over 100 m, of which 538 got their height from the register and carry none in any public map.
shadows east
Click anywhere on the map to drop a pin and see how much sun that spot gets. Drag the pin to move it.
Why this did not exist
The usual answer to “will that tower block my afternoon sun” is ShadeMap, and over Kuala Lumpur it draws nothing at all. At 6:45pm on the September equinox, with the sun 5.6° above the horizon, the Petronas Twin Towers should be throwing a shadow more than four kilometres east across the city. ShadeMap renders none of it. The same app at the same sun angle over Manhattan puts almost the entire frame in shade.
It is not a failing of the renderer. ShadeMap reads building heights from OpenStreetMap, and in Malaysia only about one building in eight carries one — the grey shapes it draws over Kuala Lumpur are footprints with no height attached. A shadow map here needed a height source that nobody had joined in.
That source was the KPKT/TEDUH developer register, which records a storey count for 24,952 of the 24,996 projects it lists and a position for most of them. OpenStreetMap has the outlines and not the heights; the register has the heights and not the outlines. Across Malaysia, 58% of the 1,789 registered projects of twenty storeys or more can be matched to a footprint and given a real height. Of all 15,446 registered projects with a storey count and a position here the share is lower, 17%, because a housing estate is filed as one point for the whole taman and its terraces are too small to carry it.
Where each height comes from
Every building carries its own provenance rather than being flattened into one number, because a measured height, a counted one and a guessed one are different claims.
| Published height | An explicit height tag in OpenStreetMap. Somebody measured it. |
|---|---|
| Storey count | A level count in OpenStreetMap or a storey count in the KPKT register, converted with a floor table measured from the 409 Kuala Lumpur buildings that carry both: 3.00 m below 12 storeys, 4.02 m to 29, 4.06 m above. The 3.1 m usually assumed is right for a shophouse and a quarter short for a tower. |
| No height | A footprint on record with no height from any source. Drawn as a dashed outline and casting nothing. |
Where a published height and a storey count disagree by more than half again, the count wins and the building is marked disputed. In Kuala Lumpur a tall development is often drawn as a podium or whole-site polygon, so the height tag describes the podium: Star Residences carries 20 m against a register filing of 51 storeys, and Menara Oxley 12 m against 54. Taking the tag drew fifty-storey towers as two-storey shops casting no shadow at all.
What this cannot tell you
It is a massing model, not a survey. Buildings are drawn as their footprint extruded to a single height. Setbacks, podium steps, roof plant and towers that taper are not modelled, so a shadow's edge is approximate even where the height is exact.
- 155,183 sizeable footprints here have no height on record. They cast nothing, so the shade shown — and the hours of shade a pin reports — is a floor and not a total. They are outlined rather than omitted, because a missing building reads as open sky.
- Ground is treated as flat. On the valley floor and the coasts the relief is tens of metres against towers of hundreds, but a unit below a ridge — in Ampang, Bukit Antarabangsa, Damansara's hills or under Penang Hill — loses light this does not account for.
- The register describes what was approved, which is not always what was built.
- Towers still to come are off until you switch them on. The map as it opens draws only what the register records as completed. Switched on, a project under construction or not yet started is drawn at the storey count its developer filed, on the outline OpenStreetMap holds for the site, and the shade it will add is shown in its own colour. 374 sites here carry one; 2,825 more projects under construction or planned have no outline in any public map. Those of ten storeys or more are marked where the register places them and, with the switch on, a pin lists when each would shade it — as an estimate, kept out of the hours of sun, because without an outline neither the tower's shape nor its exact position is known. Cancelled and abandoned projects are left out entirely.
- A multi-tower development becomes one block at the height of its tallest tower, because the register files storeys per unit type rather than per tower.
- It knows what OpenStreetMap has outlined, and that varies by town. Every building mapped in Malaysia is here, and nothing from across the border. The big cities are mapped thoroughly and their towers carry register heights; many smaller towns hold outlines with few heights, so their shade is the most incomplete. Where nobody has mapped the buildings the map is empty, and that means no data rather than no buildings.
The solar geometry is the same one behind the sun and facing tool, checked against published almanac times in both hemispheres. See methodology.