将自定义图像添加到Google Maps的标记IOS SDK会增加大量内存

时间:2016-05-18 07:29:54

标签: ios google-maps google-maps-markers gmsmapview

我正在开发一个应用程序,要求用户在地图上显示,例如,当用户注册到应用程序时他/她上传其图片,当将图片与图片一起发送到服务器时我将图像缩放到0.1以便它大小可以减少。 事情是我必须显示用户图像 this is the base image on which user picture will be pasted

将用户图像粘贴到此标记的代码我使用了代码`

-(UIImage*) drawImage: (UIImage*) fgImage
          inImage:(UIImage*) bgImage
          atPoint:(CGPoint)  point
{  
        UIGraphicsBeginImageContextWithOptions(bgImage.size, FALSE, 0.0);
        [bgImage drawInRect:CGRectMake( 0, 0, bgImage.size.width, bgImage.size.height)];
        [fgImage drawInRect:CGRectMake( point.x, point.y, fgImage.size.width, fgImage.size.height)];
        UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();   
        return newImage;
}

fgImage是用户pic图像,bgImage是基本图像。 这个功能返回完整的图像,绿色标记和粘贴在其上的圆形用户图像。之后,我将此图像传递给Map Marker

 marker.icon =  [self drawImage:[self makeRoundedImage:img radius:25] inImage:markerImage atPoint:CGPointMake((markerImage.size.width/2)-25, (markerImage.size.width/2)-25)];

我面临的问题是我创建了70个测试用户,App内存增长到100 MB,上面有很多自定义标记。 请建议我处理这种情况的最佳解决方案。 感谢。

1 个答案:

答案 0 :(得分:0)

如果多个标记使用相同的图像,请确保它们引用相同的对象而不是同一内容的多个实例。您还可以查看此issue的解决方案。

另请查看此SO question以获取更多信息。