Igo*_*pov 1 maps android osmdroid
我已经检查了这个答案,但是这个例子除了显示灰色瓷砖(我处于离线模式)之外什么也没做,因为缩放级别大于我给出的限制(在我的情况下是4)...
OnlineTileSourceBase source = new XYTileSource("tiles", ResourceProxy.string.offline_mode, 0, 4, 256, ".png", "");
Run Code Online (Sandbox Code Playgroud)
以下代码显示maxZoom=4:
int zoomLevel = source.getMaximumZoomLevel();
Toast.makeText(this, "maxZoom=" + zoomLevel, Toast.LENGTH_SHORT).show();
Run Code Online (Sandbox Code Playgroud)
对于0到4之间的缩放级别,我的代码按预期工作:它从SD卡加载地图图块.我对这个问题的理解是,代码显示了它找到的每个缩放的所有切片,当没有找到其他缩放时,它仍然会放大.
API明确指定在XYTileSource(final int aZoomMaxLevel)的构造函数中设置最大缩放级别:
public XYTileSource(final String aName, final string aResourceId, final int aZoomMinLevel,
final int aZoomMaxLevel, final int aTileSizePixels, final String aImageFilenameEnding,
final String... aBaseUrl)
Run Code Online (Sandbox Code Playgroud)
任何解决方法?我究竟做错了什么?如何阻止缩放以使用户无法超越4级?
小智 10
在MapView类定义的公共职能getMaxZoomLevel().一个简单的扩展MapView将允许您覆盖该函数以返回您想要的任何内容,而无需将osmdroid源重新编译为JAR:
public class ZoomLimitMapView extends MapView
{
/* snip the constructors */
@Override
public int getMaxZoomLevel()
{
return 4;
}
}
Run Code Online (Sandbox Code Playgroud)
您不需要最小缩放级别,但如果您这样做,getMinZoomLevel()也是公开的,可以被覆盖.显然使用常量字面值4可能是一个坏主意; SharedPreferences除非您知道您的图像永远不会改变,否则最好动态加载.
| 归档时间: |
|
| 查看次数: |
3372 次 |
| 最近记录: |