There is no perfect, perfectly-acceptable way to fairly apportion political districts. When we value local representation, we have to draw some kind of boundary to make "local" meaningful. Sadly, though, gerrymandering lets entrenched political powerhouses stay that way. Now that the Supreme Court has ruled that redistricting can take place at any time, with few restrictions, how can we avoid this or this?*
Wikipedia mentions several mathematical solutions. They fail not because they're theoretically poor, but because they're incomprehensible to the Average American, who took Algebra only because he had to and would gladly live in a world without math.
Which is why I offer a simple solution that would allow political parties to continue drawing up districts, but with one clear guideline.
Anderson's Geometric Gerrymandering Guideline
Any polygon created by a redistricting effort could have no more than ten sides.
Geometric, aesthetic, and comprehensible. No more natural boundaries, no more quibbling over neighborhoods, no more wondering which district you're voting in this time. Let Pythagoras rule politics.
*As an aside, I note that gerrymanderers have stuck with two-dimensional boundaries. What's to stop them from taking advantage of all three? Maybe highrises and condos and apartment complexes vote differently by floor.