Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 存储用于地图覆盖的大型图像_Ios_Swift_Mapkit_Mkoverlay - Fatal编程技术网

Ios 存储用于地图覆盖的大型图像

Ios 存储用于地图覆盖的大型图像,ios,swift,mapkit,mkoverlay,Ios,Swift,Mapkit,Mkoverlay,我有一个问题,在哪里存储一个大型图像的地图覆盖 图像大小约为100MB,无法缩小或在线存储(按要求)。我一直在考虑使用资产目录(xcassets),但它似乎是用于图标和图像,当涉及到不同的设备时,需要调整大小。使用它来存储地图覆盖图像可能不是最合适的。我想知道你对在哪里存储这个图像文件有什么建议 谢谢 欢迎来到SO。因为这是你的第一篇文章,我会同情你的。通常我会问您是否对MapKit对覆盖的支持进行过任何研究 如果要处理如此大的重叠图像,您需要使用MKTileOverlay。否则,您可能会耗尽内

我有一个问题,在哪里存储一个大型图像的地图覆盖

图像大小约为100MB,无法缩小或在线存储(按要求)。我一直在考虑使用资产目录(xcassets),但它似乎是用于图标和图像,当涉及到不同的设备时,需要调整大小。使用它来存储地图覆盖图像可能不是最合适的。我想知道你对在哪里存储这个图像文件有什么建议


谢谢

欢迎来到SO。因为这是你的第一篇文章,我会同情你的。通常我会问您是否对MapKit对覆盖的支持进行过任何研究

如果要处理如此大的重叠图像,您需要使用
MKTileOverlay
。否则,您可能会耗尽内存并崩溃,即使您的应用程序没有崩溃,它也会在不同的缩放级别上缓慢而滞后地渲染覆盖

MKTileOverlay
类需要一个由小平铺组成的网格,这些小平铺组合在一起构成整个覆盖。此外,平铺是为多个缩放级别定义的,因此当您放大时,可以获得越来越多的细节

您为平铺覆盖提供了一个URL模板,它使用该模板查找平铺。该URL可以指向internet,也可以包含指向本地设备文件系统上的一组文件的文件URL。如果图像平铺是固定的,并且随应用程序一起提供,那么您应该能够将它们放入应用程序包中


有关更多信息,请查看MKTileOverlay的文档。

谢谢您的回复。我研究了MKTIleOverlay和MKTIleOverlay渲染器,出现了一个新问题。iOS如何知道在哪里绘制这些瓷砖?MKOverlay类要求您使用feed center坐标和boundingMapRect来定义区域,但在MKTileOverlay中似乎没有指定绘制瓷砖的位置。抱歉,我错过了后续问题。迟到总比不做好简单的回答是你没有。地图视图要求瓷砖,然后管理在何处绘制瓷砖。