У меня есть некоторый опыт разработки картографического приложения с нуля. Я бы рекомендовал вам разделить весь мир на 16 уровней масштабирования. Уровень масштабирования 0 должен отображать весь мир, а уровень масштабирования 15 - данные улиц.
Как правило, вам придется использовать уровни масштабирования от 0 до 3, чтобы иметь границы стран. И каждый уровень масштабирования должен иметь диапазон масштабирования 1/4 от предыдущего диапазона масштабирования. Вы можете увеличить карту до таблицы (при условии, что вы используете базу данных для хранения данных, связанных с пространством). Определив уровни масштабирования и диапазон уровней масштабирования для сопоставления таблиц, вы сможете лучше контролировать запросы данных. И рекомендуется создать индексирование R-Tree для данных вашей карты.
Каждый раз, когда вы получаете слой / таблицу (при условии, что слой может быть границей страны, или железнодорожным путем, или улицей), рекомендуется определять уровень масштабирования самостоятельно, а не тратить время на поиск алгоритма, поскольку количество слоев не будет огромным.
Я могу продолжать идти, но если вам нужны конкретные ответы, я могу также обратиться к ним.