gpt4 book ai didi

android - 从图像到 Android 谷歌地图的图 block 生成器

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:49:25 27 4
gpt4 key购买 nike

这是我的第一个问题,所以让我们进入正题

我有一张高分辨率 png 格式的 map ,带有角的地理坐标,我想将其与我的 Android 应用程序中的 Google Maps Api 集成。

到目前为止我做了什么:

  • 我已将 map 切割成 256x256 像素的图 block 并编写了一个 URITileProvider。事实证明, map 有偏移,倾斜并且必须重新调整大小

  • 我找到了 MapTiler并试了一下。它允许设置角坐标并生成图 block 。当前的免费版本会产生水印,所以我也检查了以前的测试版 - 但“y”图 block 坐标位于另一个半球上。当然我可以尝试映射它们,但这并不能解决我的倾斜问题

  • 我还找到了 Android 应用 CustomMaps .太棒了!除了不生成图 block 外,它几乎完全符合我的要求。有一个选项可以获取图像文件,通过从图像中选择点并将它们链接到谷歌地图将其放在 map 上。它还提供了一个很好的概述。

所以这是我的问题:

有没有结合了 MapTiler 和 CustomMaps 两种功能的免费工具,我可以使用它来对齐我的图像以映射并将其分割成有效的图 block ?

我想过编辑源图像并通过反复试验的方法,但这绝对不是走这里的路。目前,我正在考虑创建自己的工具,但从逻辑上讲,我认为应该已经有解决方案了。

最佳答案

我已经设法解决了这个问题,我想我会与你分享。我写了自己的瓷砖生成器。该解决方案肯定不理想,可能需要做更多的工作。欢迎任何贡献。

以下是使其工作的步骤:

  1. 使用谷歌地图,放大所需区域,粘贴到图形编辑程序中作为背景层。
  2. 将您的叠加 map 粘贴到另一层的图形程序中,并对其进行转换以匹配背景中的 map
  3. 使用谷歌地图尽可能准确地读取最大/最小纬度和经度
  4. 使用my MapTileGenerator生成图 block 。
  5. 在 Android 中使用 URITileProvider

    @Override
    public URL getTileUrl(int x, int y, int zoom) {

    String url = MAP_FILES_URL + x + "-" + y + "-" + zoom + ".png";
    try {
    return new URL(url);
    } catch (MalformedURLException e) {
    // ignore
    }
    return null;
    }

我已经为这个过程录制了一个简短的视频。它在 youtube 上可用:Map Tile Generator Instructions .不幸的是,它是经过润色的,但在阅读以上几点后,信息应该非常清楚。

我很清楚我写的脚本在内存管理方面有问题,应该引入多线程。我希望我能尽快恢复。

关于android - 从图像到 Android 谷歌地图的图 block 生成器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19607827/

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