In the flight network, 65 of 126 routes begin or end in Java. Jakarta and Surabaya have
connections to every other island group. Routes elsewhere include links within Sulawesi,
from Jayapura to the Papuan highlands, and from Denpasar to Nusa Tenggara.
Switch to ferries to see the greater number of connections among Maluku, Papua and Nusa Tenggara.
Data limits
The flight table dates from 2014. Wings Air is missing, excluding many short eastern
routes. Medan also has no domestic routes in the file following its airport move.
Those omissions matter when comparing how well places are connected.
Pelni circuits were transcribed from Wikipedia’s fleet list. Routes change and ships go
into dock. Lines connect port coordinates directly and sometimes cross land; they do not
trace the actual sailing path.
Line width counts airlines or ships. It does not measure departure frequency, capacity
or passenger numbers.
How it is drawn
The map uses d3.geoMercator. Ferry legs follow geodesics; flight routes use curved paths
to help separate overlapping connections. Hovering changes CSS classes on the relevant
nodes and links.
The ring uses a country → island group → place hierarchy, laid out with d3.cluster. d3.lineRadial and d3.curveBundle draw routes through that hierarchy. Extra spacing
separates island groups. Both figures calculate the fewest legs from Jakarta for their tooltips.
Data
| File | Source | Notes |
|---|
network.json | OpenFlights routes.dat, airports.dat, airlines.dat (ODbL) | 126 domestic city pairs, codeshares removed, from the June 2014 snapshot |
| — | Pelni fleet list, English Wikipedia | 26 ships, 74 ports, coordinates entered by hand and cross-checked against Nominatim |
land.json | Natural Earth 1:50m via world-atlas | shared with the earthquake post |