是否有人知道是否可以使用osmdroid将图像用作mapview中的自定义maptile?例如,我希望用户能够从我的应用程序中选择存储在手机上的图像,然后将该图像替换为我的mapview中的图块。
有没有人对如何做到这一点有任何指示或想法?
答案 0 :(得分:1)
我不确定真正的需要。仅适用于一个特定的缩放级别?
然而,2个方向:
OSMBonusPack GroundOverlay可让您将位图图像放置在地图上的某个位置。您可以调整其大小,旋转和透明度。它不是替换瓷砖,它是上面绘制的。它适用于所有缩放级别。
您可以尝试在osmdroid文件系统缓存中用图像文件替换地图图块文件。这两个实用程序函数将帮助您获取给定(lat,lon,zoom)的确切文件路径:
public Point getMapTileFromCoordinates(final double aLat, final double aLon, final int zoom){
final int y = (int) Math.floor((1 - Math.log(Math.tan(aLat * Math.PI / 180) + 1 / Math.cos(aLat * Math.PI / 180)) / Math.PI) / 2 * (1 << zoom));
final int x = (int) Math.floor((aLon + 180) / 360 * (1 << zoom));
return new Point(x, y);
}
public File getFileName(ITileSource tileSource, MapTile tile){
final File file = new File(OpenStreetMapTileProviderConstants.TILE_PATH_BASE,
tileSource.getTileRelativeFilenameString(tile) + OpenStreetMapTileProviderConstants.TILE_PATH_EXTENSION);
return file;
}