问题是我发现如果提供354到6度之间的任何值,摄像机标题将恢复为0.例如,当我将摄像机标题设置为2时,它将在2和0之间不断反d,直到我将手机转向另一个标题.
我的解决方案是在此范围之间将其锁定为0,但这不是最佳选择.有没有人知道为什么会这样?在标题更改时调用的方法如下所示:
- (voID)setMapCameraposition { //354,6 if (self.heading <= 6 || self.heading >= 354) { NSLog(@"****nulling heading. self.heading: %d camera.heading: %f",self.heading,self.mapVIEw.camera.heading); self.mapVIEw.camera.heading = 0.0f; } else { NSLog(@"changing heading. self.heading: %d camera.heading: %f",self.mapVIEw.camera.heading); self.mapVIEw.camera.heading = (double)self.heading; }}
如果我没有if语句并且只是将摄像机设置为我的标题,那么我的输出结果是:
self.heading: 357 camera.heading: -0.000000self.heading: 357 camera.heading: -0.000000self.heading: 357 camera.heading: -0.000000
因此,如果我给出一个接近北方的值,那么接缝将会在一瞬间自动恢复到北方 – 使地图永远跳转.
如果没有地图删除我想要的标题,如何将标题设置为接近但实际上不是北方的程度?
解决方法 目前这个问题似乎无法解决.我也遇到了这个问题,我担心你需要使用Apple提供的技术支持.虽然我担心目前的SDK无法解决这个问题.此外,地图应用程序具有相同的行为.在我的测试中,我发现捕捉发生在< 7度和> 353度.我使用滑块在一个独立的应用程序中测试MKMapCamera标题功能,以创建一个可重现的问题. 所以你的解决方案现在是最好的.但是我不仅会拍摄零,还会拍摄353和7度.
float heading = self.heading;if( roundf( heading ) >= round( 353.0f ) && roundf( heading ) < round( 356.5f ) ) { heading = 353.0f;} else if( roundf( heading ) >= round( 356.5f ) && roundf( heading ) <= round( 360.0f ) ) { heading = 360.0f;} else if( roundf( heading ) >= round( 0.0f ) && roundf( heading ) < round( 3.5f ) ) { heading = 0.0f;} else if( roundf( heading ) >= round( 3.5f ) && roundf( heading ) <= round( 7.0f ) ) { heading = 7.0f;}[[[self mapvIEw] camera] setheading: heading];
但这完全取决于你.
总结以上是内存溢出为你收集整理的iOS MapKit相机重置标题值在6到354之间全部内容,希望文章能够帮你解决iOS MapKit相机重置标题值在6到354之间所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)