Страница 1 из 1
Сортировка таблицы атрибутов.
Добавлено: 30 сен 2014, 02:33
Vahit ogli
Всем привет. Сразу скажу, что я ламер. Возникла необходимость в сортировке населенных пунктов РФ по численности населения. Я пытаюсь использовать фильтр вида ""POPULATION" > 5000", но в результате фильтруются те населенные пункты, где число населения начинается до 5 (например, 494567). Я заметил, что при сортировке таблицы атрибутов колонка Population принимает вид

- erwqwea.jpg (171.48 КБ) 12159 просмотров
, т.е числа идут не в прямом порядке возрастания(например,1 100 2 21 2154 22). Насколько я понял данная проблема не зависит от ПО, так как она повторялась у меня и в Map 3d, и в QGISе. Не подскажите как мне это исправить?
Re: Сортировка таблицы атрибутов.
Добавлено: 30 сен 2014, 03:38
trir
Какой тип данных столбца?
Re: Сортировка таблицы атрибутов.
Добавлено: 30 сен 2014, 10:56
rhot
Ага, поменяйте тип данных на числовой.
Re: Сортировка таблицы атрибутов.
Добавлено: 30 сен 2014, 11:40
Vahit ogli
Мммм, а как это сделать?

Re: Сортировка таблицы атрибутов.
Добавлено: 30 сен 2014, 11:52
Ariki
По логике, конечно, поле должно быть числовым. Но если по каким-либо причинам тип поля поменять неудобно или нежелательно, можно преобразовать на лету прямо в выражении:
Чтобы поменять тип поля, можно добавить новое поле нужного типа и использовать калькулятор полей, чтобы перенести в него значения из старого.
Re: Сортировка таблицы атрибутов.
Добавлено: 30 сен 2014, 12:43
Vahit ogli
К сожалению, мне не удается использовать калькулятор полей в QGISе, так как почему то режим редактирования мне недоступен.

- 31af.jpg (529.63 КБ) 12071 просмотр
Я пробовал использовать команды
в калькуляторе в Map 3d, но он выдает ошибку
"Failed to execute Fdo command.
The data type 'FdoDataType_Int64' is not supported by this provider."
Если я использую фильтр
то результата просто нет.

Re: Сортировка таблицы атрибутов.
Добавлено: 30 сен 2014, 13:29
Игорь Белов
Почему слой нередактируемый, неясно. Взятый
отсюда редактируется.
Все функции перечислены в меню. Не надо изобретать какое-то ToInt64(), если можно выбрать из списка toint().

- capture_20140930_142031.png (25.45 КБ) 12055 просмотров
Имена полей тоже можно выбрать из списка.
Открывая шейп, укажите явно кодировку UTF-8, а то кириллица не читается.

- capture_20140930_142125.png (66.43 КБ) 12054 просмотра
Re: Сортировка таблицы атрибутов.
Добавлено: 30 сен 2014, 13:56
trir
Странно, Civil 3D 2015 - работают ToInt64() и ToInt32()
Re: Сортировка таблицы атрибутов.
Добавлено: 30 сен 2014, 14:15
Игорь Белов
trir писал(а):Странно, Civil 3D 2015 - работают ToInt64() и ToInt32()
Кто же спорит? Просто на картинках QGIS.
Re: Сортировка таблицы атрибутов.
Добавлено: 30 сен 2014, 14:15
Игорь Белов
trir писал(а):Странно, Civil 3D 2015 - работают ToInt64() и ToInt32()
Кто же спорит? Просто на картинках QGIS.
Re: Сортировка таблицы атрибутов.
Добавлено: 30 сен 2014, 14:15
Игорь Белов
trir писал(а):Странно, Civil 3D 2015 - работают ToInt64() и ToInt32()
Кто же спорит? Просто на картинках QGIS.
Re: Сортировка таблицы атрибутов.
Добавлено: 01 окт 2014, 00:00
Vahit ogli
Всем спасибо. Наконец все получилось. Использовал калькулятор полей, преобразовал значения. Не все было гладко, так как в таблице значений были числа вида 1.0 или 2.0, которые пришлось вычистить вручную. После все было ОК.
Re: Сортировка таблицы атрибутов.
Добавлено: 01 окт 2014, 06:58
Игорь Белов
Vahit ogli писал(а):в таблице значений были числа вида 1.0 или 2.0, которые пришлось вычистить вручную
Лишняя работа. Просто надо было использовать функцию toreal() вместо toint().
Кроме того, QGIS выполняет неявно преобразования типов, и можно обойтись простым выражением вида
Правда, здесь надо держать ухо востро: по запросу могут быть выданы неконвертируемые значения. В моей версии settlement-point в выборке оказались записи с такими значениями POPULATION: "?", "1 147" и восемь штук "К".