我在Android中开发了一个应用程序,我使用Google Map捕获位置。我有一个大的卫星图像(大于500 mb),这个图像是地理编码的。我们需要将其显示为地图中的一个图层,例如Google地图可以选择卫星图像。怎么做到呢。 提前谢谢。
答案 0 :(得分:0)
要向地图添加自定义想象,您可以使用x
:
来自TileOverlay
的{{3}}
TileOverlay定义了一组添加在基本地图图块上方的图像。您还可以使用切片叠加层通过提供透明切片图像为地图添加额外的功能。您需要为要支持的每个缩放级别提供切片。如果您有多个缩放级别的图块,则可以为整个地图补充Google的地图数据。
如果要向地图添加大量图像(通常覆盖较大的地理区域),则平铺叠加非常有用。相比之下,当您希望在地图上的一个区域固定单个图像时,地面叠加非常有用。
要使用TileOverlay
,您需要实现TileOverlay
,为地图请求的每个图块返回正确的TileProvider
对象。
考虑到您的数据(图片)需要进行地理配准以返回要在地图上绘制的正确图块。
显示您的数据后,您可能希望Tile
停止询问Google磁贴。
根据评论进行更新:
正如您所说,您希望为不同的图像格式自动化平铺,您需要为希望能够加载的每种图像格式实现map.setMapType(GoogleMap.MAP_TYPE_NONE);
。
要返回正确的TileProvider
,您需要在平铺x,y和缩放(Tile
界面的public Tile getTile(int x, int y, int zoom)
函数的参数)和坐标之间进行转换(和地理参考图像的像素)。您可以查看the documentation以了解有关平铺系统的更多信息。
此外,如果图片的srid不是WGS84,则需要对数据进行地理转换。
考虑到如果您的图片很大且显示的区域较大,则可能会发现OutOfMemory错误,您可能需要查看http://www.maptiler.org/google-maps-coordinates-tile-bounds-projection/以加载图片的缩小版本作为瓷砖返回。