编辑注意:这个文件被选为MATLAB中心挑选本周
导入点,线条,多边形或组合的Google地球文件,作为MATLAB结构,与映射工具箱功能兼容,以及使用Shaperead()导入的shapefiles。
structs由以下字段组成:
- 几何学
- 名称
——描述
- lon
——纬度
- 边界箱
映射工具箱多边形需要顺时针惯例,以指定负面和正区域。这些未在.kml文件中指定,因此所有多边形都转换为顺时针方向,以保证它们代表正空间。
詹姆斯骑术(2021年)。kml2struct(https://www.mathwands.com/matlabcentral/fileexchange/35642-kml2struct),matlab中央文件exchange。检索到。
惊人的!
请注意,Davide Lovell提出的修复涉及致命的漏洞:2和3的倍数怎么样?如果您有12个值,您如何知道它是否是4x(Lat,Lon,Alt)或6x(Lat,Lon)?当然,您可以比较所有LAT值和所有LON值以及关于相似性的原因,但是一个人不应该将太多的智能添加到基本功能中。在我的版本中,我用一个可选参数来处理它。(它也读取了KMZ文件,不仅是KML)。发表https://se.mathworks.com/matlabcentral/fileexchange/80083-kml2struct_multi
这只能在每个地点导入一个几何图形。因此,我修改了代码并在此发布它:
https://se.mathworks.com/matlabcentral/fileexchange/80083-kml2struct_multi
需要映射工具。没有workee
如果你加载的KML文件只有2-D几何图形,Davide Lovell对这个文件的评论是非常必要的。在第77行插入该代码可以使代码在仅2d数据上毫无错误地运行。
描述包含纬度和经度之后的每个点的高度值。然后在另一个高度列出之前有一个东部和北部。哪个高度,第一个或第二个是高度?一点的两个高度值不同。他们代表什么,为什么他们有所不同?
你能帮我做一下KML文件的二维矩阵表示来绘制3D曲面吗?
非常感谢!你的功能很好!
当我放入KML文件名作为参数时,它告诉我它需要更多的参数。为什么?
加载通过Google Eartn Engine API生成的KML文件时出错。KML仅包含点,无行或多边形。也如上所述,您需要映射工具箱来工作。
我遇到了一个只有二维几何结构的kml文件,它是用这个文件生成的。不过,这可以通过计算逗号来解决。以下代码可在本文件的相关部分中替换:
numOfCommas = length(strfind(coordStr, ','));
[m, n] =大小(coordMat);
if(m * n / numofcommas == 2)
%重新排列坐标,形成一个x × 2矩阵
coordMat =重塑(coordMat 2 m * n / 2) ';
其他的
%重新排列坐标以形成X-BY-3矩阵
coordMat =重塑(coordMat 3 m * n / 3) ';
结尾
一旦我写了一个函数,允许我读取Google地球生成的文件,并获取该文件中包含的点或路径的名称和坐标。但是,这些文件必须由Google地球生成。此M文件使我能够克服这个问题。
谢谢你。
但是,这些文件必须由Google地球生成。此M文件使我能够克服这个问题。
谢谢你。
这个函数完美解决了我的问题,很容易使用。感谢分享。
找到了一个用于匹配XML字段的正则表达式的错误。'。+?'用于匹配XML标记对之间的值,但这与空案例不匹配。'。*'将匹配空标记对。
这正是我所需要的,而我不需要付出任何努力-谢谢
重复Brian Emery的观点:“必需的产品”列表包含映射工具箱是很重要的。下载188bet金宝搏在撰写这篇评论时,它并没有按要求列出。
注意,这需要poly2ccw。M在映射工具箱中。
这效果很好,但它有几个小错误。标记。
1.第77行中的“cell2double”函数应该替换为“str2double”。
2.第44-45行正则表达式没有删除