Поиск в Googlemaps с использованием наилучшей геопространственной стратегии mongodb - PullRequest
4 голосов
/ 28 ноября 2011

У меня есть веб-сайт, где люди могут просматривать некоторые места на карте Google, которые хранятся с координатами широта / долгота. Хранение mongodb. Теперь, когда пользователь перемещается по карте, мне нужно посмотреть, какие места сейчас находятся в видимой части карты.

Я новичок в монго, но посмотрел на пространственную часть. Мой вопрос теперь является эффективным способом сделать этот поиск.

Нужно ли указывать sureIndex каждый раз, когда пользователь перемещается по карте, и как мне затем запрашивать все места в пределах видимых границ карты?

1 Ответ

8 голосов
/ 28 ноября 2011

Согласно документам Монго, вы можете делать запросы внутри ограничивающего прямоугольника, например, так:

box = [[40.73083, -73.99756], [40.741404,  -73.988135]]
db.places.find({"loc" : {"$within" : {"$box" : box}}})

Ключевым моментом здесь является использование в для запроса внутри ограничивающего прямоугольника.

Чтобы получить значения для вашего ящика, просто получите границы карты Google следующим образом:

map.getBounds()

Где map - это ваш объект карт Google.getBounds вернет LatLngBounds объект, из которого вы можете построить свой ящик для запроса монго.

Что касается sureIndex, вы должны сделать это один раз, насколько я знаю.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...