gpt4 book ai didi

wolfram-mathematica - 在 Mathematica 中处理 KMZ

转载 作者:行者123 更新时间:2023-12-04 22:24:31 26 4
gpt4 key购买 nike

我被困在转换上。

我有一个带有一些坐标的 KMZ 文件。我像这样阅读文件:

m=Import["~/Desktop/locations.kmz","Data"]

我得到这样的东西:
{{LayerName->Point Features,
Geometry->{
Point[{-120.934,49.3321,372}],
Point[{-120.935,49.3275,375}],
Point[{-120.935,49.323,371}]},
Labels->{},LabeledData->{},ExtendedData->{},
PlacemarkNames->{1,2,3},
Overlays->{},NetworkLinks->{}
}}

我想从每个点中提取 {x,y,z} 以及与这些点关联的地标名称 {1,2,3}。即使我可以从 Geometry->{} 中获取点也可以,因为我可以使用 List@@@ 将它们提取到列表中,但是我迷失在无法提取 Geometry 的基本部分“规则”。

谢谢你的帮助,

罗恩

最佳答案

尽管 Leonid 的回答是正确的,但您可能会发现它不适用于您的代码。原因是 Import 命令的输出包含字符串,例如 "LayerNames" ,而不是符号,例如 LayerNames 。我已将 KML 文件上传到我的网站空间,因此我们可以使用实际的 Import 命令进行尝试。尝试类似以下内容:

in = Import["http://facstaff.unca.edu/mcmcclur/my.kml", "Data"];
pointList = "Geometry" /.
Cases[in, Verbatim[Rule]["Geometry", _], Infinity];
pointList /. Point[stuff_] -> stuff

再次注意 "Geometry" 是一个字符串。实际上, in 的内容是这样的(在 InputForm 中):
{{"LayerName" -> "Waypoints", 
"Geometry" -> {Point[{-82.5, 32.5, 0}]},
"Labels" -> {}, "LabeledData" -> {},
"ExtendedData" -> {}, "PlacemarkNames" -> {"asheville"},
"Overlays" -> {}, "NetworkLinks" -> {}}}

上下文:KML 是指 Keyhole 标记语言。 Keyhole 是一家开发工具的公司,这些工具在被谷歌收购后最终成为了谷歌地球。 KMZ 是 KML 的压缩版本。

关于wolfram-mathematica - 在 Mathematica 中处理 KMZ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6217584/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com