2014-02-06 4 views
1

Я использую MongoDB для хранения твитов twitter с использованием API-интерфейсов twitter и php-кода. Как получить расположение твитов, которые хранятся в MongoDB по отношению к долготе и долготе?Обработка Lat-Long в mongoDB

+0

Вы посмотрели API геолокации? –

+0

Нет, у меня нет идеи об этом. Как я могу использовать его в своем php-коде для получения lat и long? – user3219417

+0

Я никогда не использовал twitter API. Если бы вы могли дать образец данных из него, я мог бы дать вам код –

ответ

1

Согласно документации Твиттера tweet fields, поле coordinates является объектом с нулевым значением GeoJSON. Очевидно, что не все твиты будут иметь координатные данные, поэтому вам придется учитывать эту возможность.

Удобно, формат GeoJSON - это то, что использует MongoDB 2.4+ для своего 2dsphere geospatial indexes. Если вы храните твит, так как это происходит из Twitter, вы должны иметь возможность создать такой индекс на поле coordinates и, соответственно, отслеживать его MongoDB. Если по какой-либо причине поле coordinates равно или объект GeoJSON, я бы просто удалил поле из документа перед хранением, так как MongoDB будет жаловаться, если вы попытаетесь индексировать недопустимое геопространственное значение.

В более ранних версиях MongoDB использовались 2d indexes, где значения были либо кортежем значений долготы и широты (в указанном порядке), либо объектом с долготой и широтой в качестве единственных свойств (в этом порядке). Я бы определенно рекомендовал использовать более новые индексы 2dsphere, если это возможно.

Полезный график всех операций геопространственного запроса MongoDB можно найти на this page. Это включает упоминание о том, какие запросы поддерживают 2dsphere и устаревшие 2d-индексы.

Два полезных сообщений в блоге введение 2dsphere индексов являются:

Последнее сообщение мое собственное, и говорит о использовании GeoJSON PHP library я написал вместе с Doctrine MongoDB. Независимо от того, хотите ли вы изучить Doctrine, библиотека GeoJSON может быть полезна для проверки полей coordinates, прежде чем хранить их в MongoDB.

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