Если диапазон значений ограничен, выберите желаемую точность. Теперь ключ (1,2,3) будет указывать на связанный список (или более интересную структуру данных) всех точек, которые находятся в пределах Манхэттена. Расстояние 3 * d (d = 0,5? - зависит от деталей) из (1, 2,3). Вы лучше знаете свое приложение, поэтому можете лучше выбирать d. Подход к оптимизации будет зависеть от того, как распределяются данные.
EDIT:
Слабость здесь в том, что если у вас есть много точек, сосредоточенных в одном кубе, то мало что можно сделать, используя хеш-таблицу для гарантии O (1) ... больше как O (n):)
Какая-то древовидная структура данных может гарантировать O (log n).