gpt4 book ai didi

android - 将未投影的雷达图像投影到 osmdroid 中

转载 作者:太空宇宙 更新时间:2023-11-03 11:14:51 25 4
gpt4 key购买 nike

我已经使用 osmdroid 编写了一个雷达天气应用程序用于 map 图 block ,并手动叠加 NOAA 山脊雷达数据。一切都很好,除了雷达图像未投影,而 openstreetmap 瓦片采用横向墨卡托投影。天气在应有的范围内,但数据失真。

我看到了三种解决此问题的方法(按优先顺序排列),但是这三种方法都遇到了问题:

1) 找到已经投影在墨卡托中的雷达数据源 - 谷歌搜索数小时后,我什么也没找到2)在我下载图像后立即以编程方式重新投影图像。有谁知道一个好的API吗?3) 动态投影它们,也许使用 openlayers.im 阅读可以 openlayers 重新投影,但它可以在 osmdroid mapview 之上使用吗?

有什么想法吗?谢谢你的帮助迈克

最佳答案

GDAL 是必经之路。据我所知,没有正式的 Android 版本,但是有些人已经成功地让它在 Android 上运行。例如,Nutiteq 在其 AdvancedMap3D 的 libs 文件夹中有一个构建。示例项目。将两个 armeabi 文件夹的内容放入项目的 lib 文件夹中,您应该能够访问 GDAL 包。

然后看看GDAL in Java页。查看 gdalinfo.java 示例,了解如何加载和检查 GDAL 数据集的各个部分。要重新投影您的数据集,您需要执行以下操作:

SpatialReference sr = new SpatialReference();
sr.ImportFromProj4("+proj=merc +datum=WGS84");
String result[] = new String[1];
sr.ExportToPrettyWkt(result, 1);
String oldProjection = mDataset.getProjection();
String newProjection = result[0];
Dataset newDataset = gdal.AutoCreateWarpedVRT(mDataset, oldProjection, newProjection, gdalconst.GRA_NearestNeighbour, 0.0);
Dataset savedDataset = mDriver.CreateCopy(outpath, newDataset, 0, new String[] { "COMPRESS=LZW", "PREDICTOR=2" }, null, null);
newDataset.delete();
savedDataset.delete();

您可能需要进行一些调整,但这应该可以帮助您完成大部分工作。

关于android - 将未投影的雷达图像投影到 osmdroid 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18028095/

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