【问题标题】:Tile generator from an image to Android Google Maps从图像到 Android 谷歌地图的平铺生成器
【发布时间】:2013-10-26 14:25:27
【问题描述】:

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

我有一张高分辨率 png 格式的地图,其中包含角落的地理坐标,我想在我的 Android 应用中与 Google Maps Api 集成。

到目前为止我做了什么:

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

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

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

这是我的问题:

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

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

【问题讨论】:

    标签: android google-maps google-maps-api-2 maptiler


    【解决方案1】:

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

    以下是使其工作的步骤:

    1. 使用谷歌地图,放大所需区域,粘贴到图形编辑程序中作为背景层。
    2. 将您的叠加地图粘贴到另一层的图形程序中,并对其进行转换以匹配背景中的地图
    3. 使用 Google 地图尽可能准确地读取最大/最小纬度和经度
    4. 使用my 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;
      }
      

    我已经为这个过程录制了一个简短的视频。它可以在 youtube 上找到:Map Tile Generator Instructions。 不幸的是,它是波兰语,但在阅读以上几点后,信息应该很清楚了。

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

    【讨论】:

    • 好吧,我需要你的帮助。我试图实现这一点,但它不起作用。如果问题不多,请联系我:vulovicv@hotmail.com
    猜你喜欢
    • 1970-01-01
    • 2019-07-27
    • 1970-01-01
    • 1970-01-01
    • 2019-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多