标签: mapkit

自定义地图注释中的警告iPhone

我在iPhone中使用自定义地图注释类进行地图视图.每当我从导航栏堆栈弹出我的地图视图时,我通常会在控制台中看到一些警告.

MapAnnotation已取消分配,而键值观察者仍在其中注册.观察信息被泄露,甚至可能被错误地附加到其他物体上.在NSKVODeallocateBreak上设置断点以在调试器中停止.这是目前的观察信息:

我没有在我的代码中使用KVO,因此无法理解为什么我收到这些警告

mapkit mkannotation ios

7
推荐指数
2
解决办法
1727
查看次数

Bing地图比iOS上的Map Kit有什么优缺点

微软最近发布了Bing地图目标c组件.

看到这里这里

他们提到限制条款较少:

我们认为您会发现使用条款的限制性比您在Apple Map Kit中找到的限制更少,不会牺牲功能.

这到底是什么意思呢?我们现在可以将地图图像保存在我们的应用程序中以供离线使用吗?

  • 还有什么其他优点?
  • 使用Bing地图而不是地图套件有什么缺点?

iphone mapkit bing-maps ios

7
推荐指数
1
解决办法
2801
查看次数

MKCoordinateSpan和CLLocationCoordinate2D有什么区别

我正在阅读示例MapKitCoreLocation框架示例.我发现这两个结构(MKCoordinateSpanCLLocationCoordinate2D)在声明中是相似的.这些功能有何不同,有人可以请一个例子(使用两者)来清除它们的含义.

谢谢!

core-location mapkit ios

7
推荐指数
2
解决办法
5406
查看次数

移动MKOverlayPathView消失在瓷砖后面

我正在开发一个应用程序,我想展示飞往机场的虚构飞机.这可能不是我想要代表飞过地图的唯一事情.

为此,我使用了LocationReminders(他们拥有的MKOverlayPathView子类,ReminderCircleView)中的示例代码,并将其连接到我自己的代表该平面的MKOverlay.此类在overlay类的坐标和radius属性上订阅KVO通知,并在每次更新时使其路径无效.

叠加层以每秒几帧的速度更新它的位置,我也会更新它的半径,这样我就可以模拟透视图(考虑到它是一个模型对象但不是很聪明,但仍然是我找到的最佳解决方案).

我正在使用一个简单的圆形路径进行测试.

此设置工作正常.叠加视图会更新并且行为正确,可以与地图一起缩放.

问题在于,在模拟飞行中,不会在通常靠近目的地的一些区块上绘制覆盖图.圆圈看起来像是在这些瓷砖后面.

我能够理解这个问题中的一件事:每当我观察到圆圈没有被绘制在一些瓷砖上时,如果我缩小,圆圈将被正确绘制.放大或平移并不能解决任何问题.

我的理论是,一些瓷砖(或它们的地图部分)没有被标记为重绘,所以,只有通过缩小我才能强制它.但我认为这与放大似乎没有帮助的事实并不一致.

我不知道我做错了什么,或者我是否碰到了一个小虫或什么东西.我已经使用了注释而且它正在工作但是我失去了表示如果你缩小而不自己观察缩放比例而变小的平面的能力.

我已经在版本5.1,6.0和6.1中进行了测试,行为是一样的.

objective-c mapkit ios mkoverlay

7
推荐指数
1
解决办法
291
查看次数

使用mapkit显示地图上两点之间的路线:ios7

我想在我的应用程序中显示地图上两点之间的点对点路线.我正在使用MKDirectionsRequest这个.我正在努力找到浦那到孟买之间的路线.我收到一个错误作为回应.

错误信息 :

Error Domain=MKErrorDomain Code=5 "Directions Not Available" UserInfo=0x9d80dd0 {
NSLocalizedFailureReason=A route to the nearest road cannot be determined., NSLocalizedDescription=Directions Not Available, MKDirectionsErrorCode=6, MKErrorGEOError=-403
}
Run Code Online (Sandbox Code Playgroud)

MKDirectionsRequest 用于显示仅在地图应用的路线?如何在不使用Google API或任何路由应用的情况下在iOS7中找到两点之间的点对点路由?

你可以帮我解决一下吗?期待您的任何参考链接或示例代码.

谢谢

mapkit ios7

7
推荐指数
2
解决办法
8046
查看次数

如何在iOS MKMapView上获得最大缩放级别

我的一个应用程序在非常高(最大)的zoomLevel(高细节图)上使用MKMapView随着iOS7的推出,我几乎不能像以前那样接近地图.

我正在使用mapView setRegion:方法.

我一直在运行测试,结果如下:

跨全屏纵向模式mapview跨iOS版本:

 iOS 5.1:   140 meters
 iOS 6.1:    70 meters
 iOS 7.0.3: 281 meters
 iOS 7.0.3: 160 meters (if pinched manually!!)
Run Code Online (Sandbox Code Playgroud)

有没有办法在iOS 7.0.3上以编程方式实现160米(最大缩放级别)

(我知道水平跨度取决于纬度,所以米的数量只是比例的指示)

zoom region mapkit mkmapview ios7

7
推荐指数
1
解决办法
5286
查看次数

ios:mapkit如何在地图上启用curent location按钮?

我正在开发显示地图的应用程序.我在地图属性中启用了用户当前位置,现在显示点表示用户的当前位置,但现在我想在Pic下方的左下角启用按钮(iPhone中地图应用程序的快照).

请告诉我如何在地图上获取此信息

在此输入图像描述

iphone objective-c mapkit ipad ios

7
推荐指数
1
解决办法
3333
查看次数

iOS 8 beta - 位置管理器未注册用户位置

自从新的iOS 8测试版发布以来,我无法成功获取用户的位置.在更新到iOS 8之前,我没有任何问题,但现在它总是返回0.000000作为当前纬度和经度.这只是新版本中的一个错误吗?我的代码如下:

//from the .h file
@interface MasterViewController : PFQueryTableViewController<CLLocationManagerDelegate,UITextFieldDelegate, UISearchBarDelegate, UISearchDisplayDelegate> {

}
@property (nonatomic, strong) CLLocationManager *locationManager;

//from the .m file
@synthesize locationManager = _locationManager;

- (void)viewDidLoad {
  [super viewDidLoad];
  [self.locationManager startUpdatingLocation];
}


- (CLLocationManager *)locationManager {
   if (_locationManager != nil) {
       return _locationManager;
   }

   _locationManager = [[CLLocationManager alloc] init];
   _locationManager.delegate = self;
   _locationManager.desiredAccuracy = kCLLocationAccuracyBest;

   return _locationManager;
}

 - (void)locationManager:(CLLocationManager *)manager
        didUpdateToLocation:(CLLocation *)newLocation
               fromLocation:(CLLocation *)oldLocation { 
}

 - (void)locationManager:(CLLocationManager *)manager
                    didFailWithError:(NSError *)error {
}
Run Code Online (Sandbox Code Playgroud)

更新 此问题已得到解答( …

core-location mapkit ios ios8

7
推荐指数
1
解决办法
4643
查看次数

更改mapView Swift的区域(缩放)

我有一张地图,我在两个引脚之间画一个目的地,我也总是打开一个呼叫.

我的问题是我想要缩小一点,但我尝试用这个代码做它并没有用.

let span = MKCoordinateSpanMake(0.0275, 0.0275)
let coodinate = self.meLocation!
let region = MKCoordinateRegion(center: coodinate, span: span)
self.mapView.setRegion(region, animated: true)
Run Code Online (Sandbox Code Playgroud)

我假设为目的地制作线路会出现问题:

func mapView(mapView: MKMapView, rendererForOverlay overlay: MKOverlay) -> MKOverlayRenderer {
        let renderer = MKPolylineRenderer(overlay: overlay)
        renderer.strokeColor = UIColor(red: 2.0/255.0, green: 202.0/255.0, blue: 246.0/255.0, alpha: 1.0)
        renderer.lineWidth = 2.8



        return renderer

    }
Run Code Online (Sandbox Code Playgroud)

所以我的问题是如何默认缩小一点.

编辑:

我遵循了这个指南

mapkit polyline ios swift

7
推荐指数
1
解决办法
9002
查看次数

使用MKMapView上的叠加层进行缩放时出现异常:NSInvalidArgumentException NSSetM removeObject:object不能为零

我正在添加大约1000 MKPolygonMKMapView.将叠加层添加到MKMapView其上后,它可以正常工作.但是,如果我快速放大并缩小(偶尔放开缩放以便mapView进程是新的visibleMapRect),我发现应用程序(有时)会崩溃并出现以下异常堆栈跟踪:

*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[__NSSetM removeObject:]: object cannot be nil'
*** First throw call stack:
(
    0   CoreFoundation                      0x0000000107db6b0b __exceptionPreprocess + 171
    1   libobjc.A.dylib                     0x000000010781b141 objc_exception_throw + 48
    2   CoreFoundation                      0x0000000107d1712a -[__NSSetM removeObject:] + 538
    3   VectorKit                           0x000000010bae84fa -[VKRasterOverlayTileSource removeOverlay:] + 89
    4   VectorKit                           0x000000010b79a648 -[VKMapModel removeRasterOverlay:] + 68
    5   MapKit                              0x0000000106f93bf1 -[MKOverlayContainerView _removeDrawable:forOverlay:level:] + 502
    6   MapKit                              0x0000000106f92633 -[MKOverlayContainerView addAndRemoveOverlayViews] + 785 …
Run Code Online (Sandbox Code Playgroud)

xcode objective-c overlays mapkit ios

7
推荐指数
1
解决办法
470
查看次数