Как сохранить маркеры? - PullRequest
0 голосов
/ 25 марта 2012

У меня есть приложение, которое сохраняет маркеры карты Google, я в основном сохраняю координаты / переменные широты в массиве, а затем сохраняю их в своем mongodb. Когда я перезагружаю эти маркеры, я делаю цикл в массиве и создаю маркеры из сохраненной переменной lat lng.

Моя проблема в том, что когда я в первый раз сохранял свои маркеры, лат назывался Pa и lng Oa, затем 1 месяц назад я сохранял маркеры, а затем пытался загрузить их, но мой цикл не распознает латинские переменные были заменены на Sa, Ta. Поэтому я изменил свой клиентский код, чтобы вместо него использовать переменные Sa, Ta, ничего страшного.

Сегодня я сохраняю еще один массив маркеров, пытаюсь загрузить его, и он не работает, опять же их родные имена переменных API Google меняются на lat Ua и lng Va ... Мой код клиента не работает для любой новый сохраненный маркер.

Я явно не сохраняю маркеры "google", что я делаю не так?

Спасибо

Ответы [ 3 ]

3 голосов
/ 25 марта 2012

Вы не должны полагаться на имена переменных минимизированного кода. Назовите их "lat" и "lon" или что-то в этом роде. Внутренние имена, такие как Pa, потенциально теряются при каждой перекомпиляции . В частности, они могут измениться, когда Google исправит ошибку или выпустит новую версию API.

Так что не просто слепо кодируйте маркерные объекты. Преобразуйте их в стабильное представление, которое вы контролируете сами (а не автоматический компилятор кода Google поддерживает и изменяет по своему усмотрению).

0 голосов
/ 25 марта 2012

mongodb не подходит для хранения широты / долготы, поскольку в BSON нет произвольной точности или десятичного типа данных. типы данных Монго

0 голосов
/ 25 марта 2012

Поскольку API, похоже, время от времени меняется, возможно, вы захотите отделить от него свою реализацию.Сохраняйте значения по своему усмотрению, а затем пишите адаптер, который сопоставляет эти данные с Google API, подходящим и снова сохраняет данные.

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