Эффективный способ сопоставить точку с регионами - PullRequest
2 голосов
/ 29 февраля 2012

У меня есть список круговых областей, определенных центром (широтой, долготой) и радиусом. И у меня есть список точек на земле, идентифицированных по их широте и долготе. Для каждой точки я хочу найти регионы, к которым она относится. Обратите внимание, что оба списка могут исчисляться миллионами.

Какой самый эффективный способ сделать это?

Привет! * * 1005

1 Ответ

0 голосов
/ 29 февраля 2012

MongoDB имеет встроенную поддержку запросов границ, поэтому вы можете искать точки в заданной фигуре.Круги (центр + радиус) являются одним из поддерживаемых типов.Итак, если у вас есть геопространственный индекс, определенный в поле местоположения (db.places.ensureIndex( { loc : "2d" } ) или аналогичный), вы можете сделать что-то вроде этого:

> center = [50, 50]
> radius = 10
> db.places.find({"loc" : {"$within" : {"$center" : [center, radius]}}})

Более подробную информацию можно найти здесь:

http://www.mongodb.org/display/DOCS/Geospatial+Indexing#GeospatialIndexing-BoundsQueries

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