2016-06-28 2 views
1

Согласно https://docs.djangoproject.com/en/dev/ref/contrib/gis/tutorial/#defining-a-geographic-model, информация lat и lon хранится в floatfield в geodjango.Как использовать десятичное поле в geodjango?

  1. Я хочу знать, были ли lat и lon сохранены на floatfield, каково количество значащих цифр, используемых для представления координат?

  2. Есть ли способ изменить количество цифр на floatfield в geodjango?

  3. Могу ли я использовать decimalfield в geodjango вместо floatfield? Так как я могу это сделать?

Поскольку я строю службу, требующую большого вычисления расстояния, зависит от координаты, мне нужно уменьшить масштабность вычисления.

Спасибо, что прочитали мое плохое английское письмо.

ответ

1

Согласно https://docs.djangoproject.com/en/dev/ref/contrib/gis/tutorial/#defining-a-geographic-model, лат и долгота информация хранится на floatfield в GeoDjango.

Неправильная ссылка и заключение все вместе. То, что вы смотрите, - это учебник, в котором показано, как импортировать файл Shapefile World Borders в django. Здесь lat и long действительно не имеют значения. Важным является mpoly. Вероятно, поэтому lat и lng хранятся здесь как float. Но они могли избежать путаницы, не используя lat, lng в качестве отдельных полей.

Реальный путь хранения точек с использованием geodjango использует PointField, он позволяет хранить дополнительную информацию о местоположении, таком как SRID. Точное внутреннее представление варьируется от RDBMS до RDMBS.

Если вам нужны дистанционные расчеты, единственный способ - использовать GeometryField или один из его подклассов (из PointField - один), поэтому подтемы 1,2,3 в вашем вопросе не очень актуальны.

+0

Благодарим вас за ответ. – touchingtwist

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