2014-12-30 4 views
-2

В моей системе есть следующая проблема: моя система - архитектура клиент-сервер. моя заявка касается создания узнавания в городе. Так что я решаю разделить карту города на сетки, каждая сетка имеет площадь, равную 30 х 30 м. для каждой области сетки i хранится центральная точка сетки (lat, long). , так что мой вопрос в том, что пользователь находится в определенной сетке x это местоположение отправляется на сервер, как я могу решить, в какой сетке пользователь находится?Что лучше представлять пространственные данные

Вот фото прояснить проблему:

City organization as grids

ответ

1

Я предполагаю, что ваши сети все точно такого же размера и расположены в идеальном прямоугольнике, как показано на изображении. Как насчет хранения всех сеток в простой 2D-массиве? Затем вы можете найти индекс любой сетки, выполнив

grid_size = 30; 
index_x = math.floor(user.x/grid_size); 
index_y = math.floor(user.y/grid_size); 
+0

спасибо Kevin замечательный трюк, как насчет того, если ситуация беспорядочна, а сетки не близки. Я думаю, мне нужно использовать kd-дерево в этой ситуации? есть ли у вас другое мнение? –

+0

Да, kd-tree, вероятно, подходит, если сетки не выровнены хорошо. – Kevin

+0

Спасибо Kevin, еще один вопрос, нужны ли данные gps для предварительной обработки (т. Е. Квантовать значение lat & long) до или исходных значений ok? - –

Смежные вопросы