shapewrite

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

Описание

пример

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

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

Примеры

свернуть все

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

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

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

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

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

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

shapewrite(S,'main_concord_roads.shp')

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

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

Считайте файл shapefile, содержащий вектор мировых городов, и сохраните данные в векторе madboint.

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 к вектору mappoint. Обратите внимание, что размер 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}

Запишите обновленный вектор mappoint в файл shapefile.

shapewrite(p,'worldcities_updated')

Входные параметры

свернуть все

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

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

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

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

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

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

Атрибуты функции для включения в файл shapefile, заданные как скалярный 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