Malaysia learning maps — reviewed 22 October 2026 Boundaries, river lines and marine polygons: Natural Earth, 1:10m data, public domain. https://www.naturalearthdata.com/about/terms-of-use/ Pinned source revision: ca96624a56bd078437bca8184e78163e5039ad19 https://github.com/nvkelso/natural-earth-vector/tree/ca96624a56bd078437bca8184e78163e5039ad19/geojson Files: ne_10m_admin_1_states_provinces.geojson, ne_10m_rivers_lake_centerlines.geojson, ne_10m_geography_marine_polys.geojson. Retrieved 22 October 2026. Selected original vertices are checked in as scripts/malaysia-admin-source.geojson and scripts/malaysia-water-source.geojson. scripts/malaysia-context-land-source.geojson dissolves all administrative land inside the map frame, including neighbouring countries, from the same source. All thirteen states and three federal territories are retained separately. ISO 3166-2 keys MY-01 through MY-16 identify the sixteen areas. Penang is shown with its island and mainland sections. Kuala Lumpur and Putrajaya are separate from Selangor, and Labuan is separate from Sabah. Display name Penang replaces Natural Earth's Pulau Pinang. The boundaries are teaching references, not survey data or a representation of international or maritime claims. Shared boundaries are simplified together with Shapely coverage_simplify at 0.001 degrees. Six-decimal coordinate precision is retained in output. Small territories remain selectable by zooming. Natural Earth's coastline is generalised; actual city coordinates at Kota Kinabalu, Sandakan and Tawau can lie up to approximately 2.3 km outside the reference coastline. They have not been moved inland to fit it. Parent-area validation allows a 0.03-degree margin. The source labels the Rajang/Rejang main course "Bajang". Its course across central Sarawak and through Sibu is mapped explicitly to Rajang River; it is not a separate river named Bajang. River control locations and independent geographic tests check the Pahang, Rajang and Baram. River lines are clipped to Malaysia with a 0.03-degree margin for source generalisation. They do not show every tributary, navigability, seasonal flow or current flooding. Marine polygons show the Strait of Malacca and South China, Sulu and Celebes seas inside the displayed frame. All source land, including neighbouring land, is removed from their hit areas. They identify named bodies of water, not territorial seas, exclusive economic zones or sovereignty claims. Twenty city coordinates, clues and explanatory notes are curated in scripts/malaysia-map-places.json. Coordinates use [longitude, latitude]. Names and city identities can be checked through the corresponding Wikipedia articles linked by the map. The twenty-city set is selective, not a ranking or a complete list of Malaysian cities. Rebuild at the repository root: python3 -m pip install shapely==2.1.2 python3 scripts/build-malaysia-maps.py The builder uses only checked-in inputs and writes the three public GeoJSON files, src/lib/atlas/my.ts and src/lib/atlas/malaysia-places.ts. The same geometry supplies both the playable rounds and the atlas previews.