Since the vast majority of nodes are not able to keep global routing tables (both because they lack the storage, and also because they lack the bandwidth needed to keep such tables up to date) you have two choices: 1. A subset of nodes are "supernodes" which know how to get anywhere (aka. our current internet topology), or 2. Addresses carry enough semantic meaning to allow nodes to guess which way to forward them (e.g., "I don't know who this packet is going to, but it's somewhere in San Francisco").
That second option would require a complete renumbering of the Internet, and it's still not clear that it would work; purely geographic routing would result in packets from Plymouth to New York getting stuck at Land's End because they want to go West but the cables all land East of there.
Note: This problem doesn't exist with small mesh networks, because for small networks you can have every node maintain a copy of the entire routing table.