从图像平铺生成器到Android Google Maps

Mar*_*ert 4 android google-maps google-maps-api-2 maptiler

这是我的第一个问题,所以让我们向右移动

我有一个高分辨率png格式的地图,该地图具有转角的地理坐标,我想将其与Android App中的Google Maps Api集成。

到目前为止,我所做的是:

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

  • 我找到了MapTiler并进行了尝试。它允许设置拐角坐标并生成图块。当前的免费版本会产生水印,因此我也检查了以前的beta版本-但是在另一半球上放置了“ y”图块坐标。我当然可以尝试将它们映射,但是它不能解决我的倾斜问题

  • 我还找到了Android应用和CustomMaps。太棒了!它几乎完全符合我的要求,只是它不会生成图块。有一个选项可以拍摄图像文件,通过从图像中选择点并将其链接到Google地图,将其放置在地图上。它还提供了一个很好的概述。

所以这是我的问题:

是否有一个免费工具,结合了MapTiler和CustomMaps两种功能,可以用来对齐我的图像以映射并将其拆分为有效的图块?

我曾考虑过通过反复试验的方法来编辑源图像,但这绝对不是解决之道。目前,我正在考虑创建自己的工具,但是从逻辑上来说,必须已经有了解决方案。

Mar*_*ert 5

我设法解决了这个问题,并且我想与您分享。我编写了自己的图块生成器。解决方案肯定不是理想的,可能需要做更多的工作。欢迎任何贡献。

以下是使其工作的步骤:

  1. 使用Google地图,放大所需的区域,并粘贴到图形编辑程序中作为背景图层。
  2. 将叠加图粘贴到另一层的图形程序中,然后对其进行转换以使其与背景中的图匹配
  3. 使用Google地图尽可能精确地读取最大/最小纬度和经度
  4. 使用我的MapTileGenerator生成图块。
  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;
    }
    
    Run Code Online (Sandbox Code Playgroud)

我已经为该过程录制了一个简短的视频。可在youtube上使用:“ 地图图块生成器说明”。不幸的是,它用波兰语书写,但是在阅读了以上几点之后,该信息应该非常清晰。

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