1

在我的 Android 项目中,我使用 OSMdroid 的 mapquest 数据。我想知道缩放级别提供的地图比例(例如 1:10000 等)。我刚刚发现缩放级别取决于 DPI(地图的比例是否还取决于我正在显示的地图视图的宽度和高度?)。如果我使用mapquest 地图站点,我只会在左下角看到一个地图比例,但不是像 1:10000 这样的比例,这是我真正需要的。

缩放级别 16,15,14 的 1:x 比例是多少?

4

2 回答 2

5

这里发生了一些事情。让我按照我的理解逐步完成它。

首先,我相信您在 Mapquest 链接中看到的是比率。所以对于缩放级别 16、15、14:

14 = 1:27083
15 = 1:13541
16 = 1:6770

虽然链接没有指定它,但应该以米为单位。所以在缩放级别 14 中,每个像素代表 27083 米。

此外,Bing 地图比率可在此处找到。它们与 Mapquest 报告的数字非常接近,但并不相同。

那么,为什么数字不一样呢?因为每像素米的比率会根据您所在的纬度而变化。由于墨卡托投影产生的失真,当您改变纬度时,每像素米数不是恒定的。Bing 地图值是赤道处的值。我不知道 Mapquest 值从何而来。

最后 - 要计算 osmdroid 中的每像素米数,您可以调用:

TileSystem.GroundResolution(latitude, zoomLevel);

这将为您提供特定纬度的每像素米数。我建议您查看 osmdroid 的ScaleBarOverlay示例,了解如何应用此信息。

于 2013-09-11T13:24:22.857 回答
0

停留在0°纬度或赤道线(地图地球模型地球半径6372.7982km,赤道周长约40041.472km):

  • 缩放级别 0 表示在赤道线上 40'041km 的窗口(256px)中的 360°
  • 在20020km的同一窗口中仅缩放1 180°
  • 变焦 2 为 90°,或 10010km
  • 等等总是减半。

比例尺(总是在赤道线上)取决于窗户的大小,如果它是 1 公里宽,它是:

  • 缩放 0 为 1:40041
  • 放大 1 为 1:20020
  • 缩放 x 为 1:40041/2^x
  • ETC

如果窗口是 1 英寸宽:

  • 缩放 0 为 1in:40041km 或 1:1'576'417'322
  • 变焦 10 为 1in:40041/1024km 或 1:1'539'470
  • 放大 16 为 1:24054

如果窗口是 200 像素宽(对于 180 DPI 屏幕):

  • 缩放 0 为 200px:40041km 或 1:1'418'775'590
  • 缩放 18 为 200px:40041km/2^18 或 1:5412

这只是在赤道线上(0°纬度)。在北方或南方,有一个校正因子要应用,即 cos(纬度)。

于 2015-10-15T19:18:39.250 回答