对于iOS 6上的中国地图,MapKit似乎根据设备所在的位置选择地图提供者.如果你在中国,它将使用AutoNavi地图,否则它将使用默认的Apple地图.更复杂的是,AutoNavi地图的转换方式与谷歌iOS 5上的地图相同,而默认的Apple地图并未转换.
通过改造我正在谈论中国所有地图都被改造的事实,尽管事实并非如此.相反,中国的一些地图会被改造,而有些地图却没有.
此变换使得难以在地图上正确放置注释,因为地图通常偏移约500米.由于无法反转实际地图的变换,因此解决方案是将相同的偏移应用于注释.
至少对于有限的区域,存在逆转变换的非平凡方式.iOS 6中的问题是知道地图是否被转换为能够适当地补偿注释.在iOS 5上,由于一致地使用了转换后的地图,因此该问题不存在.
下面的上海地图说明了情况(未演示实际的变换偏移).
那么,在运行时是否有任何方法可以了解是否使用了转换或未转换的中国地图?处理这个的其他想法?
编辑:通过中国代理路由网络流量在模拟器中更改地图外观,因此地图提供商的选择必须基于IP.
我想基于CGPath为CALayer的位置设置动画,但我想向后播放它.
有没有办法让路径向后动画,或者反转CGPath?
我正在尝试调整CGImageRef的大小,以便我可以在屏幕上绘制我想要的大小.所以我有这个代码:
CGColorSpaceRef colorspace = CGImageGetColorSpace(originalImage);
CGContextRef context = CGBitmapContextCreate(NULL,
CGImageGetWidth(originalImage),
CGImageGetHeight(originalImage),
CGImageGetBitsPerComponent(originalImage),
CGImageGetBytesPerRow(originalImage),
colorspace,
CGImageGetAlphaInfo(originalImage));
if(context == NULL)
return nil;
CGRect clippedRect = CGRectMake(CGContextGetClipBoundingBox(context).origin.x,
CGContextGetClipBoundingBox(context).origin.y,
toWidth,
toHeight);
CGContextClipToRect(context, clippedRect);
// draw image to context
CGContextDrawImage(context, clippedRect, originalImage);
// extract resulting image from context
CGImageRef imgRef = CGBitmapContextCreateImage(context);
Run Code Online (Sandbox Code Playgroud)
所以这段代码允许我显然将图像绘制到我想要的大小,这很好.问题是我得到的实际图像一旦调整大小,即使它看起来在屏幕上调整大小它实际上没有调整大小.当我做:
CGImageGetWidth(imgRef);
它实际上返回了图像的原始宽度,而不是我在屏幕上看到的宽度.
那么我怎么能真正创建一个实际调整大小的图像,而不仅仅是我想要的正确尺寸?
谢谢
有没有办法使用wifi或其他方式向打印机发送打印请求?
编辑:必须有,因为有一些应用程序可以让你这样做.但他们是如何做到的呢?例如,
也许还有其他人.