我不得不得到用户触摸MKMapView的点的协调.我没有使用Interface Builder.你能给我一个例子或链接吗?
非常感谢
(使用iOS 5和Xcode 4.2)
我有一个MKMapView,想在用户位置周围绘制一个1000米半径的圆.
从表面上看,似乎实现mapView:viewForAnnotation: map view delegate方法,并为用户位置添加自定义MKAnnotationView,将是一个完美的解决方案.它看起来像这样:
- (MKAnnotationView *)mapView:(MKMapView *)mapView
viewForAnnotation:(id <MKAnnotation>)annotation
{
// If it's the user location, return my custom MKAnnotationView.
if ([annotation isKindOfClass:[MKUserLocation class]]) {
return myCustomAnnotationView;
} else {
return nil;
}
}
Run Code Online (Sandbox Code Playgroud)
但是,当您放大和缩小地图时,地图上的注释不会缩放.
所以我尝试添加叠加层(因为叠加层与地图一起缩放),使用MKCircle类并将其坐标设置为来自locationManger/map视图委托的最新坐标.但是由于MKCircle 的坐标属性是readonly,我不得不删除叠加层,然后每次用户移动时添加一个新叠加层.当它发生时引起明显的闪烁.
当地图视图缩小和缩小时,有没有办法无缝地制作注释比例?或者是否有一种很好的方法可以使叠加层随着用户位置的变化无缝移动?
我非常感谢你的帮助:)
有没有其他人,他们在iOS 6应用程序中使用地图,注意到极高的内存使用,一直到接收内存警告到崩溃的应用程序?
我通过仪器运行应用程序,我没有看到任何泄漏,直到创建地图视图,应用程序始终以大约3mb Live Bytes运行.创建地图并下载切片后,Live Bytes会跳至~13mb Live Bytes.然后,当我移动地图并放大和缩小Live Bytes连续体时,直到应用程序崩溃在大约40mb Live Bytes.顺便提一下,这是在iPhone 4上.在iPod touch上它甚至更早崩溃.
我正在重复使用注释视图,没有任何泄漏.是否有其他人在使用新的iOS 6地图时看到了相同的高内存使用量?还有,有没有人有解决方案?
我有一个注释列表(MKPointAnnotation).我有一个UIViewController这是整个视图,执行的MKMapView控制,我认为是用于检测与地图,告诉您如何显示注释的用户互动,我自己MKPointAnnotation实现(子类)控制器有用.
然而,我对用户检测到轻敲事件感到震惊.
谷歌搜索告诉我,我必须通过实现以下功能来做一些事情.
- (void)mapView:(MKMapView *)mapView annotationView:(MKAnnotationView *)view calloutAccessoryControlTapped:(UIControl *)control
Run Code Online (Sandbox Code Playgroud)
而且我必须在一些实现MapViewDelegate(协议)的类中实现它.
但我很困惑,无法前进.谁能告诉我在哪做什么?
抱歉所有的大惊小怪!
我正在尝试通过删除可见区域外的所有注释来更新MKMapView,并在可见区域内添加和删除一些注释.这是我的代码:
NSSet *visibleAnnotations = [mapView annotationsInMapRect:[mapView visibleMapRect]];
NSSet *allAnnotations = [NSSet setWithArray:[mapView annotations]];
NSMutableSet *nonVisibleAnnotations = [NSMutableSet setWithSet:allAnnotations];
[nonVisibleAnnotations minusSet:visibleAnnotations];
[mapView removeAnnotations:(NSArray *)nonVisibleAnnotations];
NSMutableSet *newAnnotations = [NSMutableSet setWithArray:[_zoomLevels objectAtIndex:clusterLevel]];
[newAnnotations minusSet:visibleAnnotations];
[mapView addAnnotations:(NSArray *)newAnnotations];
Run Code Online (Sandbox Code Playgroud)
这给了我错误- [__ NSCFSet objectAtIndex:]:在我将newAnnotations转换为NSArray的最后一行之后发送到实例0x13cd40的无法识别的选择器然后添加注释.是否有关于将数组转换为集合导致此问题的内容?如果是这样,有没有办法围绕它?
我正在学习如何使用新的Swift语言(只有Swift,没有Objective-C).要做到这一点,我想用map(MKMapView)做一个简单的视图.我想查找并更新用户的位置(例如在Apple Map应用程序中).
我试过了,但没有发生任何事:
import MapKit
import CoreLocation
class MapView : UIViewController, CLLocationManagerDelegate {
@IBOutlet weak var map: MKMapView!
var locationManager: CLLocationManager!
override func viewDidLoad() {
super.viewDidLoad()
if (CLLocationManager.locationServicesEnabled())
{
locationManager = CLLocationManager()
locationManager.delegate = self
locationManager.desiredAccuracy = kCLLocationAccuracyBest
locationManager.requestAlwaysAuthorization()
locationManager.startUpdatingLocation()
}
}
}
Run Code Online (Sandbox Code Playgroud)
请你帮助我好吗?
我有一个应用程序需要具有类似的搜索功能,如Apple"地图"应用程序(包括在iPhone,iPod Touch和iPad中).
有问题的功能应该不是一件很难的事情,但我真的对如何在搜索栏中输入街道地址,然后获取该地址的坐标或者可以帮助我实际移动地图的东西毫无头绪在那个地方居中.
我的意思是,我需要查询什么,Apple是否提供"地址搜索API方法"?或者我需要直接使用谷歌地图API?
我很想知道应该怎么做.
我想创建一个自定义的MKAnnotationView标注,如图所示.我已经测试了几种解决方案,但它们只允许自定义左/右图像和标题/副标题.有人可以给我一些源代码或教程链接吗?
目前我很无能为力.请帮忙.

我试图在iOS7应用程序中创建MKMapView的快照,就像之前iOS版本推荐的那样:
- (UIImage*) renderMapViewToImage
{
UIGraphicsBeginImageContextWithOptions(mapView.frame.size, NO, 0.0);
[mapView.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return image;
}
Run Code Online (Sandbox Code Playgroud)
但是,返回的图像是一个黑色矩形,顶部有一个蓝色的当前位置点.我也试过使用mapView的不同子层,但结果总是一样的.
有谁知道如何在iOS7中拍摄MKMapView快照?
我removeAnnotations用来删除我的注释,mapView但同样删除用户位置ann.我该如何防止这种情况,或者如何让用户回来查看?
NSArray *annotationsOnMap = mapView.annotations;
[mapView removeAnnotations:annotationsOnMap];
Run Code Online (Sandbox Code Playgroud) mkmapview ×10
ios ×9
iphone ×3
mapkit ×2
mkannotation ×2
objective-c ×2
cocoa-touch ×1
ios5 ×1
ios6 ×1
ios6-maps ×1
ios7 ×1
ipad ×1
memory ×1
mkoverlay ×1
nsarray ×1
nsset ×1
pushpin ×1
swift ×1
userlocation ×1
xcode ×1