exponenta event banner

shapewrite

Запись структуры данных географического вектора в файл формы

Описание

пример

shapewrite(S,filename) записывает векторные географические элементы, сохраненные в файле формы S в файл, указанный filename в формате shapefile.

shapewrite(S,filename,'DbfSpec',dbfspec) записывает файл формы, в котором содержимое и макет файла DBF управляются dbfspec, спецификация DBF.

Примеры

свернуть все

Вывести файл формы из concord_roads.shp в каких дорогах CLASS 5 и больше опущены.

Получение информации о содержимом файла формы. Обратите внимание, что он содержит 609 элементов (NumFeatures).

shapeinfo('concord_roads')  
ans = 
       Filename: [3x67 char]
      ShapeType: 'PolyLine'
    BoundingBox: [2x2 double]
    NumFeatures: 609
     Attributes: [5x1 struct]

Считывание выборки данных в файле в mapstruct. Обратите внимание на использование 'Selector' опция в shaperead, вместе с анонимной функцией, считывать только основные дороги из исходного файла формы.

S = shaperead('concord_roads','Selector', ...
              {@(roadclass) roadclass < 4, 'CLASS'});

Запишите данные в новый файл формы.

shapewrite(S,'main_concord_roads.shp')

Получение информации о содержимом нового файла формы.

shapeinfo('main_concord_roads')  % 107 features
ans = 
       Filename: [3x24 char]
      ShapeType: 'PolyLine'
    BoundingBox: [2x2 double]
    NumFeatures: 107
     Attributes: [5x1 struct]

Прочитайте файл формы, содержащий вектор городов мира, и сохраните данные в векторе сопоставления.

p = mappoint(shaperead('worldcities.shp'))
p = 

 318x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [1x318 double]
           Y: [1x318 double]
        Name: {1x318 cell}

Добавьте Paderborn Germany к вектору сопоставления. Обратите внимание, что размер p увеличился на 1.

x = 51.715254;
y = 8.75213;
p = append(p,x,y,'Name','Paderborn')
p = 

 319x1 mappoint vector with properties:

 Collection properties:
    Geometry: 'point'
    Metadata: [1x1 struct]
 Feature properties:
           X: [1x319 double]
           Y: [1x319 double]
        Name: {1x319 cell}

Запишите обновленный вектор сопоставления в файл формы.

shapewrite(p,'worldcities_updated')

Входные аргументы

свернуть все

Векторные географические элементы, указанные как mappoint вектор, mapshape вектор, mapstruct (с X и Y поля координат), geopoint вектор, geoshape вектор или геострукт (с 'Lat' и 'Lon' поля). A имеет следующие ограничения для полей атрибутов:

  • Каждое значение поля атрибута должно быть вещественным, конечным, скалярным double или вектор символов.

  • Тип данного атрибута должен быть согласован для всех элементов.

  • Если S - вектор геопоинты, вектор геошапы или геострукт, shapewrite записывает значения широты и долготы в виде координат Y и X соответственно.

  • Если данный атрибут имеет целочисленное значение для всех элементов, shapewrite записывает его в [basename '.dbf'] файл как целое число. Если атрибут не является целым значением для любого элемента,shapewrite записывает его как десятичное значение с фиксированной точкой с шестью цифрами справа от десятичного знака.

Имя файла и расположение создаваемого файла формы, указанное как строковый скалярный или символьный вектор. Если имя файла включает расширение файла, оно должно быть '.shp' или '.SHP'. shapewrite создает три выходных файла: [basename '.shp'], [basename '.shx'], и [basename '.dbf'], где basename является filename без его продления.

Атрибуты элемента для включения в файл формы, указанные как скалярная структура MATLAB ®, содержащая одно поле для каждого атрибута элемента. Назначьте этому полю скалярную структуру со следующими четырьмя полями:

  • FieldName - Имя поля, которое будет использоваться в файле

  • FieldType - Тип поля, используемого в файле: 'N' (числовое) или 'C' (символ)

  • FieldLength - длина поля в файле, в байтах;

  • FieldDecimalCount - Количество цифр справа от десятичного знака для числовых полей

Чтобы создать спецификацию DBF, вызовите makedbfspec а затем измените выходные данные, чтобы удалить атрибуты или изменить FieldName, FieldLength, или FieldDecimalCount для одного или нескольких атрибутов.

Чтобы включить атрибут в выходной файл, укажите поле в dbfspec с тем же именем, что и атрибут, указанный в S.

Совет

  • xBASE (.dbf) спецификации файлов требуют, чтобы имена атрибутов geostruct и mapstruct были усечены до 11 символов при копировании в виде имен полей DBF. Рассмотрите возможность сокращения длинных имен полей перед вызовом shapewrite. Это позволяет сделать имена полей в файле DBF более удобочитаемыми и избежать дублирования имен в результате усечения.

  • Не забудьте установить схему кодирования символов в соответствии со структурой экспортируемых географических данных. Например, при экспорте карты с японским текстом настройте компьютер для поддержки Shift-JIS кодировка символов.

Представлен до R2006a