У меня есть шейп-файл, и я хочу изменить порядок функций. Это возможно?
Я хочу отсортировать функции в шейп-файле, потому что я встраиваю этот шейп-файл в мобильное приложение. Приложение отобразит список функций, и хотя я мог бы выполнить сортировку во время загрузки, я бы предпочел отсортировать их.
Ответы:
Вы всегда можете открыть таблицу атрибутов в ArcMap и щелкнуть правой кнопкой мыши заголовок столбца и выбрать Sort Ascending ... / Descending ... для отдельных полей.
Для нескольких полей вы бы вместо этого щелкнули Расширенную сортировку, чтобы выбрать несколько полей.
ПРИМЕЧАНИЕ. Добавление, например, поля последовательного идентификатора на основе текущей сортировки (которая является временной, хранится только в этой карте / mxd) при использовании вышеуказанного метода будет упорядочено по исходному OID / ObjectID класса объектов.
Доступен ArcScripts, который будет постоянно сортировать записи и выводить новый шейп-файл: http://arcscripts.esri.com/details.asp?dbid=16771
Я очень надеюсь, что когда вы заявляете «порядок элементов», это порядок, найденный в таблице атрибутов, а не порядок рисования для уровней содержания / символов.
источник
Я не знаю насчет Arc *, но для QGIS есть плагин Sort: http://michaelminn.com/linux/mmqgis/
источник
Вот решение переписать новый и отсортированный шейп-файл с помощью инструмента командной строки GDAL / OGR
ogr2ogr
.Например, шейп-файл
orig.shp
имеет числовое полеvolume
для сортировки. Этот конкретный оператор SQL выполняет обратную сортировку (сDESC
), чтобы объекты с большимиvolume
значениями отображались перед (под) объектами с небольшими значениями:источник
Если у вас есть доступ к лицензии arcinfo, вы можете использовать Сортировку в ( Набор инструментов управления данными), который записывает записи в новые шейп-файлы или пространственную сортировку атрибутов на основе GDB или сортировку атрибутов.
источник
Утилита MapServer (бесплатная и с открытым исходным кодом) может сортировать фигуры в соответствии со значениями атрибутов:
http://mapserver.org/utilities/sortshp.html
источник
Очень, очень БЫСТРЫЙ и простой способ сортировки слоя шейп-файла (с использованием различных полей)
1 - Экспорт шейп-файла в CSV (выберите хороший разделитель, например точку с запятой) и добавьте GEOMETRY, используя «параметры слоя» -> «AS WKT»
2 - Откройте файл file.csv с помощью LIBREOFFICE (calc) и используйте MENU-> DATA-> SORT (очень интуитивно понятный, мощный и ОЧЕНЬ БЫСТРЫЙ (сортировка на лету 50000 функций с использованием 3 столбцов, таких как ключ сортировки, параметры возрастания и убывания, и я иметь очень медленную тетрадь;))
3 - Снова сохраните файл из LIBREOFFICE (calc) как «Текст CSV» (пометьте «Редактировать настройки фильтра» и выберите разделитель как «точку с запятой», не обращайте внимания на предупреждение из libreoffice, сохраните как CSV и выберите «точку с запятой» в качестве разделителя)
4 - В Qgis откройте новый файл .csv (и отсортированный) из меню «Добавить слой» -> Добавить разделитель текстового слоя.
ПРОФИ: - Очень, очень быстро, сортировка по различным полям - Работает нормально с данными в кодировке UTF_8
Минусы: - Нужно LIBREOFFICE (но это программное обеспечение с открытым исходным кодом)
Альтернативный метод сортировки (точки 2 и 3 и самый быстрый) с использованием консоли (BASH)
Откройте консоль и перейдите туда, где у вас есть файл .csv
Предположим, вы хотите отсортировать файл с ключом:
field6 (по убыванию) + поле1 (ascen) + field3 (desce)
поэтому команда будет:
сортировать -t ';' -k6,6r -k1,1 -k3,3r file.csv> file_sort.csv
ПРИМЕЧАНИЯ:
источник
источник