【问题标题】:Influence the Tile size in Android Maps TileProvider?影响 Android Maps TileProvider 中的 Tile 大小?
【发布时间】:2013-06-10 11:58:27
【问题描述】:

我一直在使用 Android Maps v2 中的TileOverlay,并且我构建了一个自定义的TileProvider,与this one 非常相似

但有一点让我觉得很奇怪。无论我将哪个数字传递给Tile 构造函数,屏幕上的图像始终相同 - 4 到 9 个 Tiles 均匀地共享屏幕空间,如下所示:

当然,这是您阅读documentation 所期望的:

图块的坐标是从地图的左上角(西北)测量的。在缩放级别 N 时,瓦片坐标的 x 值范围从 0 到 2N - 1,从西向东增加,y 值从 0 到 2N - 1,从北到南增加。

但您可能会从Constructors documentationConstructors documentation 中猜到 实际上有这样的功能

构造一个图块。

参数
width图片的宽度(以像素为单位)
height图片的高度(以像素为单位)
数据 包含图像数据的字节数组。将通过调用 decodeByteArray(byte[], int, int) 从此数据创建图像。

很明显我在这里误解了一些东西。我个人的猜测是瓷砖必须覆盖整个“地图瓷砖”,因此不能缩小

我的目标是让我的图块在屏幕上大约10dp。因此,我再次向您提出问题:

我可以使用TileOverlay 实现这一点,还是我最终会使用自定义Markers?

【问题讨论】:

  • 你解决问题了吗?
  • 不,抱歉,我现在知道我可以用Markers 做我想做的事,但是关于Tiles 的一般问题还不清楚
  • 你也可以简单地使用地面覆盖来做到这一点
  • 你有什么问题?大多数图块提供商使用的默认图块大小是 256x256px
  • Tile 应该有 256dp X 256dp,但构造函数希望有 px 值。我没有找到任何文档,但从我的测试来看,没有真正使用任何其他值,并且图像最终被缩放以适合 256dp

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


【解决方案1】:

构造函数中指定的图块大小是您提供给地图的(每个)位图图块的大小。如果您有这样的资源,这允许您为不同的屏幕提供不同密度的图块。 它不会更改在地图上绘制的图像的大小。地图瓦片的物理大小由缩放级别定义,其中 0 的缩放级别是覆盖整个世界的单个瓦片,1 是 2x2 瓦片等。这是地图瓦片的开放网络地图标准的一部分,而不是由 Google 定义。

API 文档: https://developers.google.com/maps/documentation/android/tileoverlay

参考: http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/

【讨论】:

  • 这是正确答案。在问题发生几个月后得到一个而不是解决方法真的很好。 +1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-10-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多