0

Я планирую написать приложение для Android, которое позволяет пользователям делиться небольшими фрагментами информации о месте, например, в баре, ресторане и т. П. Теперь я изучаю, что является лучшим способом хранения таких данных. Я особенно обеспокоен поиском: при показе (Google) Map я бы хотел наложить его на указанную информацию, поэтому мне нужно будет сделать геопространственные запросы в базу данных.Геопространственная база данных для Android-приложения

Возможно ли это с помощью Google Cloud Datastore? Каковы альтернативы?

ответ

1

Datastore не поддерживает геопространственные свойства как таковые, но вы можете легко создать класс удобства для работы с ним. В App Engine есть свойство GeoPt только для этой цели как в библиотеках Java, так и Python.

Если вас интересуют гео-запросы, то Datastore не может сделать для вас, но есть интересный lib в Python, чтобы справиться с этим, geomodel. Проблемы по-прежнему связаны с производительностью и затратами. Выполненные там операции, хотя и оптимизированы, являются тяжелыми.

Есть одна последняя альтернатива. Search API позволяет выполнять гео-запросы. Единственный недостаток этого - затраты и ограниченный свободный уровень.

1

Вы можете попробовать четырехъядерную клавиатуру. Это похоже на геохаш или геоячейку. Переведите точки в двоичный код и переместите его и обработайте его как номер базы-4. Это похоже на кривую заполнения пространства и имеет те же свойства. Вот хорошая статья о четырехъядерных процессорах: https://msdn.microsoft.com/en-us/library/bb259689.aspx.

1

Возможно, вы захотите посмотреть Postgresql и даже PostGIS для хранения геоданных. Они достаточно эффективны, масштабируемы и быстры. Я использовал Postgresql с геоданными в течение многих лет и на очень загруженных веб-сайтах и ​​приложениях для Android. Если все, что вам нужно, это найти вещи рядом с другими вещами, Postgresql отлично работает. Если вы хотите найти что-то в полигонах или выполнять более сложные запросы, PostGIS обладает множеством отличных функций.

Postgresql и PostGIS являются открытыми и бесплатными.

Если вы хотите отличную производительность, используйте SSD и машину с достаточной памятью для хранения всей базы данных. Вы будете поражены тем, насколько быстро эта настройка.

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