我在MKMapView中使用MKLocalSearch ..我正在执行如下 extension MYClass: SendLocationDelegate{ func sendCoOrdinates(loccoordinate:CLLocation, placemark:CLPlacemark){ println(" Google VC coordinate is as \(loccoordinate.coordinate.longitude) \(loccoordinate.coordinate.latitude)") let location:CLLocationCoordinate2D = CLLocationCoordinate2D(latitude:loccoordinate.coordinate.latitude, longitude: loccoordinate.coordinate.longitude) let theSpan : MKCoordinateSpan = MKCoordinateSpan(latitudeDelta: 0.01, longitudeDelta:0.01) let theRegion : MKCoordinateRegion = MKCoordinateRegion(center: location, span: theSpan) self.mapView.setRegion(theRegion, animated: false) let request = MKLocalSearchRequest() request.region = mapView.region let search = MKLocalSearch(request: request) search.startWithCompletionHandler({(response: […]
我想使用MKLocalSearch来显示一个预定义的string的结果,其结果与用户的位置相关,但是到目前为止我看到的所有例子都需要或者使用MKMapView来设置用户的位置,也许可以使用search栏来收集search所需的文本。 我只想在预定义的string上执行search,并在tableview中加载结果,而不是先有地图,有没有一个很好的例子来说明如何做到这一点? 编辑添加更多的细节,包括我目前正在尝试使用的代码。 此代码不会生成结果表。 进一步编辑:下面的Anna指出,这个问题可能是在UISearchDisplayController,但是我已经撕掉了当前的代码直接出一个工作的示例项目,所以我真的不知道哪里出了问题,或者为什么UISearchDisplayController没有显示结果。 头文件: #import <UIKit/UIKit.h> #import <MapKit/MapKit.h> #import <CoreLocation/CoreLocation.h> @interface CallACabViewController : UIViewController <CLLocationManagerDelegate, UITableViewDataSource, UITableViewDelegate, UISearchDisplayDelegate> { CLLocationManager *locationManager; MKLocalSearch *localSearch; MKLocalSearchResponse *results; } -(IBAction)closeButtonClicked:(id)sender; @end 执行文件: – (void)viewDidLoad { [super viewDidLoad]; locationManager = [[CLLocationManager alloc] init]; locationManager.delegate = self; [self.searchDisplayController setDelegate:self]; locationManager.distanceFilter = kCLDistanceFilterNone; locationManager.desiredAccuracy = kCLLocationAccuracyBest; [locationManager startUpdatingLocation]; } […]
我想使用MKLocalSearch在地图中search。 此function在iOS 6.1+中可用。 有谁知道如何使用这个或任何人都可以举例说明如何使用MKLocalSearch ? MKLocalSearchResponse文档
我正在开发一个应用程序,用户可以在其中search一个兴趣点,select一个search结果,然后MKMapView将中心到结果坐标。 我的问题是如何使autocompletion发生? 我已经做了MKLocalSearch和MKLocalSearchRequest研究,似乎是苹果build议在iOS6.1 +上进行位置search的API。 然而,我找不到任何自动完成或与MKLocalSearch和MKLocalSearchRequestbuild议的例子。 是否有可能自动完成位置search或显示build议列表,就像苹果的地图应用程序? 谢谢!
当我做println(localSearchResponse) ,我得到一个MapItem对象,其中包含了大量关于位置的细节。 在这个例子中,它的UCSD。 这里是我的日志中显示的输出。 <MKLocalSearchResponse: 0x1c53d640> { boundingRegion = "<center:+32.87514836, -117.23958822 span:+0.00725621, +0.00825332>"; mapItems = ( "<MKMapItem: 0x1c538090> {\n isCurrentLocation = 0;\n name = \"University of California, San Diego\";\n phoneNumber = \"+18585342230\";\n placemark = \"University of California, San Diego, 9500 Gilman Dr, La Jolla, CA 92093-5004, United States @ <+32.87529400,-117.23961000> +/- 0.00m, region CLCircularRegion (identifier:'<+32.87514837,-117.23958825> […]
我的代码实际上与以下示例相同: https://github.com/iamamused/Example-MKLocalSearch.git 这里有一些重要的部分: @interface ViewController : UIViewController @property (strong, nonatomic) IBOutlet MKMapView *ibMapView; @end @implementation ViewController { MKLocalSearch *localSearch; MKLocalSearchResponse *results; } – (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar { [localSearch cancel]; MKLocalSearchRequest *request = [[MKLocalSearchRequest alloc] init]; request.naturalLanguageQuery = searchBar.text; request.region = self.ibMapView.region; localSearch = [[MKLocalSearch alloc] initWithRequest:request]; [localSearch startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error){ [self.resultTable reloadData]; } } 当Sutter和Mason […]
我正在一个应用程序search地址实现自动完成(每个新字符添加一个search),我不断得到MKErrorDomain error 3 ,这是MKErrorLoadingThrottled 。 根据苹果开发 ,这个错误发生在什么时候 数据未被加载,因为数据限制是有效的。 如果应用程序在短时间内频繁请求数据,则会发生此错误。 我确切知道有多less个请求正在进行,每个search查询中的每个新的字符(就像你期望的自动完成工作)。 当然,我是一个快节奏的打字员,但只要10或15个请求就能达到极限似乎是荒唐的。 看看以下两个源引用,我不明白为什么我不断收缩。 根据苹果dev : 每个应用程序或开发人员ID都没有请求限制,所以正确操作的编写良好的应用程序应该没有问题。 但是,在编写不佳的应用程序中可能会产生限制,这会造成极大数量的请求。 正如詹姆斯·霍华德在WWDC上所说: 另外我想谈的是这个API的使用限制。 所以,我很高兴地宣布,没有应用程序或开发人员标识符的广泛使用限制。 所以,如果你有一个有很多用户的应用程序,你想要做很多的请求,那就好了。 它会工作。 而我们所拥有的节stream,实际上只是针对有问题的应用程序的第一道防线。 所以,如果你把方向请求或者本地search请求放在一个无限循环中,你就会有一个bug,最终你会被限制。 但是如果你做了一些合理的事情,你会说哦,我只是为了回应用户的input而做出一些指示,而且你知道可以做一些这样的事情,因为我们向他们展示了这个例子。 就像我们做了两个方向请求,以响应一个用户input,没关系。 但是,你知道,如果你每次用户点击屏幕上的10000次,那么你将会受到限制。 但是,保持合理,你会没事的。 任何想法,为什么这是发生?