Ну ок, а как именно вы вершины размечаете?
Как, например, происходит нахождение вершин в радиусе от данной первичной?
Есть геоиндекс, который отвечает на вопрос дай мне все вершины, в таком-то радиусе, с учетом кривизны Земли. Он работает очень быстро и считается заранее, т.е. на момент разметки он уже есть и считай, что стоит O(1). Дальше вычисляется реальное, а не эвклидово (с учетом радиуса кривизны нашей чудесной планеты) расстояние от текущей (еще не размеченной) вершины до всех уже найденных (первая принудительно в крайней левой точке, например). Если текущая точка в радиусе уже известной первичной, она маркируется как принадлежащая ей; если в радиусе нескольких привичных, есть детерменированное правило, по которой выигрывает строго одна из первичных; если после расчета реального пути список ближайших первчиных пуст, она сама становится первичной. Примерно так.