geopoint

地理点向量

描述

地理点向量是一个容器对象,它保存地理点坐标和属性。这些点是耦合的,因此纬度和经度坐标数组的大小总是相等的,并且与任何动态添加的属性数组的大小相匹配。坐标对和相关属性的每个条目(如果有的话)表示地理点向量中的一个离散元素。

创建

描述

例子

P = geopoint()使用以下默认属性设置构造一个空的位置向量:

集合属性:Geometry: 'point'元数据:[1x1 struct]特征属性:纬度:[]经度:[]

例子

地点(纬度经度设置纬度而且经度地点向量的性质p

例子

地点(纬度经度名称,值设置纬度而且经度属性,然后将动态属性添加到位置向量名称,值参数对。可以以任意顺序指定多个名值对参数Name1, Value1,…,的家

例子

地点(structArray构造一个新的geopoint从结构的场中得到的向量,structArray

  • 如果structArray包含字段纬度,且不包含字段纬度,然后纬度值被赋给纬度财产。类似的行为发生在structArray包含字段,且不包含该字段经度

  • 如果structArray既包含纬度而且纬度字段,那么两个字段值都被赋值p.类似的行为发生在而且经度中同时存在这两个字段时structArray

  • 其他领域structArray分配给p变成动态属性。中的字段值structArray非数值数据类型的、字符串标量、字符串数组、字符向量或数值数据类型或字符向量的单元格数组将被忽略。

例子

地点(纬度经度structArray设置纬度而且经度属性,并从结构的字段值设置动态属性,structArray

  • 如果structArray包含字段纬度纬度,或经度,那么这些字段值将被忽略。

属性

全部展开

地理点向量中的每个元素都被认为是一个特征。中属性类型的详细信息geopoint,请参阅属性集合而且功能属性

动态属性是添加到地理点矢量上的新特征,并应用于地理点矢量中的每个单独特征。方法可以在构造过程中将新的动态特性属性附加到对象名称,值Pair或after结构使用dot ()符号。这类似于向结构中添加动态字段。有关添加动态Feature属性的示例,请参见使用名称-值对构造地点向量

几何图形的类型,指定为“点”.为geopoint几何总是“点”

数据类型:字符|字符串

纬度坐标,指定为数字行或列向量。

数据类型:|

经度坐标,指定为数字行或列向量。

数据类型:|

作为标量结构指定的整个位置向量元素集的信息。可以向结构中添加任何数据类型。

  • 如果元数据是否作为动态属性提供的名字构造函数中,以及相应的价值那么是标量结构吗价值复制到元数据财产。否则,将发出错误。

  • 如果一个元数据字段由structArray,两者都有元数据而且structArray是标量结构,那么元数据字段值被复制到元数据属性值。如果structArray是标量,但元数据字段不是结构,则会发出错误。如果structArray不是标量,那么元数据字段被忽略。

数据类型:结构体

对象的功能

附加 附加特征到地理或平面向量
连接地理或平面向量
disp 显示地理或平面矢量
字段名 返回地理或平面向量的动态属性名称
isempty 确定地理或平面向量是否为空
isfield 确定在地理或平面矢量中是否存在动态特性
isprop 确定属性是否存在于地理或平面向量中
长度 返回地理或平面向量中的元素个数
属性 返回地理或平面向量的属性名称
rmfield 从地理或平面矢量删除动态属性
rmprop 从地理或平面向量中删除属性
大小 返回地理或平面向量的大小
结构体 将地理或平面向量转换为标量结构
vertcat 垂直连接地理或平面向量

例子

全部折叠

此示例演示如何创建geopoint向量,指定经纬度坐标,并显示它。

创建包含单点的地理点并显示它

创建一个geopoint矢量使用法国巴黎的经纬度,并显示它。当使用geopoint向量,被构造物体的几何形状总是“点”

里拉= 48.8566;Lon = 2.3522;P =地点(lat,lon)
集合属性:Geometry: 'point'元数据:[1×1 struct]特征属性:纬度:48.8566经度:2.3522

在图中显示点。你可以通过geopoint向量直接指向geoshow命令。geoshow是否可以读取纬度和经度值geopoint向量,也读取几何类型。

geoshow (p)

地图上的显示点

要用更多的上下文来显示您的点,可以使用web地图显示功能在地图上绘制您的点wmmarker.你可以通过geopoint向量直接指向wmmarker命令。

wmmarker (p)

wmmarker函数打开web地图并在地图上显示该点。

从带有一些欧洲国家首都经纬度的文本文件中导入数据。纬度坐标在第一列,经度坐标在第二列。坐标由单个空格字符分隔。

数据= importdata(“european_capitals.txt”);

创建一个geopoint包含纬度和经度数据的向量。

P = geopoint(data(:,1),data(:,2))
集合属性:Geometry: 'point'元数据:[1×1 struct]特性属性:纬度:[48.8566 51.5074 40.4168 41.9028 52.5200 52.3680 52.2297 47.4979 44.4268 50.0755 48.1486 48.2082 46.9480]经度:[2.3522 -0.1278 -3.7038 12.4964 13.4050 4.9036 21.0122 19.0402 26.1025 14.4378 17.1077 16.3738 7.4474]

在地图上画出欧洲大陆的点。

worldmap欧洲geoshow (“landareas.shp”“FaceColor”, [0.15 0.5 0.15]) geoshow(p)

方法在地图上绘制这些点geoplot函数。这个示例包含一个行规范参数,用于指定加号标记和红色。该示例还增加了线宽,以更好地显示标记。

图geoplot (p.Latitude p.Longitude,“+ r”“线宽”, 2)

创建一个地理点向量,指定纬度经度,温度,在那里温度是名称-值对的一部分。

点=地理点(42,-72,“温度”, 89)
集合属性:几何学:'point'元数据:[1x1 struct]特征属性:纬度:42经度:-72温度:89

构造一个指定名称的地理点对象。

P = geopoint([51.519 48.871], [-.]13 2.4131),...“名字”, {“伦敦”“巴黎”})
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:纬度:[51.5190 48.8710]经度:[-0.1300 2.4131]名称:{'London' 'Paris'}

将形状数据读入地质结构(包含纬度而且字段)。

S = shaperead(“worldcities”“UseGeoCoords”,真正的)
S = 318x1结构数组字段:几何Lon Lat名称

创建一个指定几何结构的地理点向量。

p =地点(S)
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:纬度:[1x318 double]经度:[1x318 double]名称:{1x318 cell}

添加一个文件名字段到元数据结构。的元数据属性属于位置点向量的所有元素。

p.Metadata.Filename =“worldcities.shp”;m = p
ans =文件名:'worldcities.shp'

创建一个结构数组。

[structArray, A] = shaperead(“worldcities”“UseGeoCoords”,真正的)
Geometry Lon Lat A = 318x1 struct array with fields: Name

使用数字数组和包含名称列表的结构来构造一个位置向量。

p = geopoint([structArray.]Lat]、[structArray。朗),)
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:纬度:[1x318 double]经度:[1x318 double]名称:{1x318 cell}

使用默认构造函数生成一个空的位置点向量,然后使用点表示法使用结构中的数据字段的属性填充位置点向量structArray

structArray = shaperead(“worldcities”“UseGeoCoords”,真正的);P = geopoint();p.Latitude = [structArray.Lat];p.Longitude = [structArray.Lon];p.Name = structArray.Name;p
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:纬度:[1x318 double]经度:[1x318 double]名称:{1x318 cell}

这个例子展示了如何向现有的地理点矢量添加新值。该示例将关于德国帕德伯恩的数据附加到关于世界城市的数据的地理点向量。

阅读世界城市数据使用shaperead命令。shaperead返回一个结构数组。

structArray = shaperead(“worldcities.shp”“UseGeoCoords”,真正的);

从结构数组中创建一个位置向量。显示向量中318个元素中的最后一个。

p = geopoint(structArray);p(结束)
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:纬度:34.8519经度:113.8061名称:'Zhengzhou'

将Paderborn数据添加到地理点向量的末尾。显示最后一个现有元素和新元素。

Lat = 51.715254;Lon = 8.75213;P = append(P, lat, lon,“名字”“帕德伯恩”);p (end-1:结束)
元数据:[1x1 struct]特性属性:纬度:[34.8519 51.7153]经度:[113.8061 8.7521]名称:{'Zhengzhou' 'Paderborn'}

另一种在向量末尾添加点的方法是使用线性索引。例如,将关于马萨诸塞州阿灵顿的数据添加到世界城市向量的末尾。注意,在初始赋值语句将值附加到Latitude属性向量之后,如何使用结束+ 1,所有其他属性向量自动扩展一个元素。显示最后一个现有元素和新元素。

p(+ 1)结束。纬度= 42.417060
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:纬度:[1x320 double]经度:[1x320 double]名称:{1x320 cell}
p(结束)。朗gitude = -71.170200; p(end).Name =“阿灵顿”;p (end-1:结束)
元数据:[1x1 struct]特性属性:纬度:[51.7153 44171]经度:[8.7521 -71.1702]名称:{'Paderborn' 'Arlington'}

构造一个包含两个特征的地理点向量,然后添加两个动态属性。

Lat = [51.519 48.871];Lon =[-]。13 2.4131);P =地点(lat, lon);p.Name = {“伦敦”“巴黎”};添加角色特征动态属性p.ID = [1 2]添加数字特性动态属性
元数据:[1x1 struct]特性属性:纬度:[51.5190 48.8710]经度:[-0.1300 2.4131]名称:{'London' 'Paris'} ID: [1 2]

为第三个特征添加坐标。

(3页)。纬度itude = 45.472; p(3).Longitude = 9.184
元数据:[1x1 struct]特性属性:纬度:[51.5190 48.8710 45.4720]经度:[-0.1300 2.4131 9.1840]名称:{'伦敦''巴黎' "}ID: [1 20]

注意,所有特性属性的长度都与默认值同步。

的值ID特性动态属性的值比所包含的值多纬度经度

p.ID = 1:4
元数据:[1x1 struct]特性属性:纬度:[51.5190 48.8710 45.4720 0]经度:[-0.1300 2.4131 9.1840 0]名称:{'London' 'Paris' '' ''} ID: [1 2 3 4]

注意,所有特性属性都进行了扩展以匹配大小。

控件中所包含的值小于ID特性动态属性的值纬度经度属性。

p.ID = 1:2
元数据:[1x1 struct]特性属性:纬度:[51.5190 48.8710 45.4720 0]经度:[-0.1300 2.4131 9.1840 0]名称:{'London' 'Paris' '' ''} ID: [1 20 0]

ID属性的值展开以匹配纬度而且经度属性值。

设置坐标属性的值(纬度经度)使用更少的值。

p.Latitude = [51.519 48.871]
元数据:[1x1 struct]特性属性:纬度:[51.5190 48.8710]经度:[-0.1300 2.4131]名称:{'London' 'Paris'} ID: [1 2]

所有属性都缩小到匹配的大小。

删除ID属性的值设置为[]。

p.ID = []
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:纬度:[51.5190 48.8710]经度:[-0.1300 2.4131]名称:{'London' 'Paris'}

删除所有动态属性,并通过将坐标属性值设置为[]将对象设置为空。

p.Latitude = []
集合属性:Geometry: 'point'元数据:[1x1 struct]特征属性:纬度:[]经度:[]

从shapefile读取数据。最初,类的字段名是随机顺序的。

structArray = shaperead(“海啸”“UseGeoCoords”,真正的);随机顺序的字段名p = geopoint(structArray)
元数据:[1x1 struct]特性属性:纬度:[1x162双]经度:[1x162双]年:[1x162双]月:[1x162双]日:[1x162双]小时:[1x162双]分钟:[1x162双]秒:[1x162双]Val_Code: [1x162双]有效性:{1x162 cell} Cause_Code: [1x162双]原因:{1x162 cell} Eq_Mag: [1x162双]国家:{1x162 cell}位置:{1x162 cell} Max_Height:[1x162 double] Iida_Mag: [1x162 double] Intensity: [1x162 double] Num_Deaths: [1x162 double] Desc_Deaths: [1x162 double .

使用方法字段名和典型的MATLAB®向量表示法,地理点向量中的字段名是按字母顺序排序的。

P = P (:, sort(字段名(P)))
Collection属性:Geometry: 'point'元数据:[1x1 struct]特性属性:纬度:[1x162 double] Longitude: [1x162 double] Cause: {1x162 cell} Cause_Code: [1x162 double] Country: {1x162 double] Day: [1x162 double] Desc_Deaths: [1x162 double] Eq_Mag: [1x162 double] Hour: [1x162 double] Iida_Mag: [1x162 double] Location: {1x162 cell} Max_Height: [1x162 double] Minute: [1x162 double] Month: [1x162 double] Num_Deaths:[1x162 double]秒:[1x162 double] Val_Code: [1x162 double]有效性:{1x162 cell}年:[1x162 double]

使用典型的MATLAB矢量表示法,将数据的子集从基本的地理点向量提取到一个地理点向量,尽管大小较小。

Subp = p(20:40,{“位置”“国家”“年”})%获取数据的子集
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:纬度:[1x21 double]经度:[1x21 double]位置:{1x21 cell}国家:{1x21 cell}年份:[1x21 double]

注意坐标属性纬度而且经度, Collection属性保留在这个位置点向量子集中。

方法设置属性值()操作符,或将数组值赋给相应的字段,或使用“。”用于分配新属性值的符号(object.property)。

PTS =地理点();分。纬度itude = [42 44 45]; pts.Longitude = [-72 -72.1 -71]; pts
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:纬度:[42 44 45]经度:[-72 -72.1000 -71]

使用()为字段赋值。

分(3)。纬度itude = 45.5; pts
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:纬度:[42 44 45.5000]经度:[-72 -72.1000 -71]

使用点表示法创建新的动态属性

分。的名字= {“point1”“卷帘窗”“point3”
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:纬度:[42 44 45.5000]经度:[-72 -72.1000 -71]名称:{'point1' 'point2' 'point3'}

获取属性值

分。的名字
Ans = 'point1' 'point2' 'point3'

删除动态属性。若要删除或删除动态属性,请将其设置为[]或设置纬度经度财产[]

分。温度= 1:3
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:纬度:[42 44 45.5000]经度:[-72 -72.1000 -71]名称:{'point1' 'point2' 'point3'}温度:[1 2 3]

通过设置温度财产[],此动态属性将被删除。

分。温度= []
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:纬度:[42 44 45.5000]经度:[-72 -72.1000 -71]名称:{'point1' 'point2' 'point3'}

中的所有字段geopoint向量,设置纬度经度财产[]

分。纬度itude = []
集合属性:Geometry: 'point'元数据:[1x1 struct]特征属性:纬度:[]经度:[]

如果您通常将经纬度坐标存储在N-by-2或2-by-数组,您可以将这些数值赋值给一个地理点向量。如果坐标是N-by-2时,第一列被分配给纬度属性和第二列的经度财产。如果坐标是2乘,则第一行被赋值给纬度属性和第二行经度财产。

负载海岸线;LTLN =[海岸线];% 9865x2数组PTS =地点;% null构造函数Pts (1:numel(coastal lat)) = ltln;%分配数组pts.Metadata.Name =“海岸线”;分
集合属性:Geometry: 'point'元数据:[1x1 struct]特性属性:纬度:[1x9865 double]经度:[1x9865 double]
分。米etadata
ans =带有字段的结构:名称:“海岸线”

更多关于

全部展开

提示

  • 如果纬度经度,或者将动态属性设置为比地理点向量中的特征值更多的值,那么所有其他属性的大小都将扩展,数值为0,字符向量为空(''),以获取单元格值。看到操纵一个地理点矢量这些行为的例子。

  • 如果动态属性设置的值小于特征的数量,则该动态属性通过插入0(如果值为数值)或空字符向量(''),如果值是一个单元格数组。

  • 如果纬度经度属性的值设置为小于对象中包含的值,则所有其他属性的大小都会缩小。

  • 如果任何一纬度经度都设置为[],那么两个坐标属性都设置为[],所有动态属性都被删除。

  • 如果一个动态属性被设置为[],那么它将从对象中删除。

另请参阅

功能

对象

在R2012a中介绍