Хранение нескольких координат GPS в MySQL - PullRequest
1 голос
/ 27 января 2012

Я создаю приложение для Android, которое отслеживает пользователя и отображает его местоположение в режиме реального времени.У меня это работает, но у меня проблемы с хранением координат в базе данных должным образом.Прямо сейчас местоположение пользователя будет обновляться каждую секунду, и оно сохраняет местоположение в базе данных, а затем веб-приложение извлекает самое последнее из базы данных.Я хочу иметь возможность хранить список мест в одной строке для конкретного пользователя.Я читал некоторые сведения о GeoSpatial в MySQL и думаю, что тип данных linestring будет работать, но я не могу найти достаточно информации о том, как реализовать запрос в PHP.Может ли кто-нибудь привести пример того, как продолжать добавлять координаты в базу данных в виде линейных строк с использованием PHP?Или предложите, как постоянно хранить координаты, используя одну строку базы данных.

Спасибо

Ответы [ 4 ]

2 голосов
/ 27 января 2012

Просто сохраните каждую точку, в которой находится пользователь, в таблицу вместе с ID и отметкой времени.Затем вы можете собрать точки с помощью запроса.

Не храните всю дорожку в одной строке, иначе вы не сможете много сделать с данными позже.

Изменить: Вот как будет выглядеть ваша таблица:

gps_points

  • id (bigint)
  • user_id (int)
  • отметка времени (отметка времени или дата-время, в зависимости от ваших потребностей)
  • широта (двойная)
  • длинная (двойная)
0 голосов
/ 22 декабря 2018

Или вы можете просто использовать Firebase для своей базы данных, которая очень гибкая, и вы можете легко работать в Firebase

0 голосов
/ 27 января 2012

Мой опыт показывает, что формат UTM легче хранить в базе данных, поскольку он ортогональн и имеет действительно удобный синтаксис. И это подходит для однострочной строки тоже. Вы можете найти информацию и удобный класс, который легко конвертирует между GPS и UTM здесь:

http://www.ibm.com/developerworks/java/library/j-coordconvert/index.html

0 голосов
/ 27 января 2012

Координата GPS - это набор значений с плавающей запятой X, Y и Z, а не набор точек для интерполяции кривой (что, по сути, является тем, для чего предназначен тип данных линейной строки).Поэтому я буду хранить точки в 3 столбцах с плавающей запятой с дополнительной информацией, такой как отметка времени.Если вам нужно, вы можете затем экстраполировать линейную строку из данных для отображения на карте.

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