Есть несколько способов сделать это, но сначала вы должны спросить себя, каковы ваши предположения и условия.
Итак, предполагая, что ваше пространство ограничено по размеру и вы знаете, какова максимальная точность, вы можете сформировать функцию, которая с учетом (x, y, z) преобразует их в уникальное число или строку - это может быть сделано только если вы знаете, что ваша точность ограничена (например, никакие два объекта не могут занимать один и тот же кубический сантиметр).
Кодирование координаты позволяет использовать одну карту / хэш с O (1).
Если это не так, вы всегда можете использовать 3 встроенные карты, как вы предлагали, или перейти к алгоритмам пространственного разделения (таким, как упомянутое OcTree), которые хотя и дают O (logN) в среднем поиске, они также дают вам может потребоваться дополнительная информация (соседи, население и т. д.), но, конечно, ее сложнее реализовать.