1

さまざまな会場の情報を含むアプリを作成しています。Apple Maps アプリから位置情報画面を開く機能をユーザーに提供したいと考えています。次のようなコードを使用して、アプリで MKMapItem を開く方法を知っています。

- (void) showMoreInfoFor:(MKPlacemark*) destination {
    MKLocalSearchRequest* searchRequest = [[MKLocalSearchRequest alloc] init];
    searchRequest.naturalLanguageQuery = self.venue.name;
    MKCoordinateRegion region = MKCoordinateRegionMakeWithDistance(destination.coordinate, 50.0f, 50.0f);
    searchRequest.region = region;
    MKLocalSearch* search = [[MKLocalSearch alloc] initWithRequest:searchRequest];
    [search startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error) {
        if ([response.mapItems count] > 0) {
            [[response.mapItems objectAtIndex:0] openInMapsWithLaunchOptions:nil];
        }
    }];
}

(また、ローカル検索をスキップして、目印を使用して新しい MKMapItem を直接作成してみましたがdestination、まったく同じ結果が得られました。)

ただし、これによりユーザーは次のような画面に移動します。

目印のピンが表示された地図画面

ユーザーが場所マークの開示インジケーターをタップする必要があるのではなく、ユーザーが次の画面に直接移動することをお勧めします。

地図事業者情報画面

また、次のようにAppleマップリンクを使用してみました(マップリンクのApple URLスキームリファレンスに従って):

NSString* url = [NSString stringWithFormat:@"http://maps.apple.com/?sll=%f,%f&q=%@", destination.coordinate.latitude, destination.coordinate.longitude, [self.venue.name stringByReplacingOccurrencesOfString:@" " withString:@"+"]];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:url]];

ただし、多くの場合、URL で指定された緯度/経度とはかけ離れた場所にピンが表示される点が異なります (たとえば、まったく異なる都市で)。また、位置情報画面にもドリルインしません。

上の 2 番目のスクリーンショットに示されているように、iOS アプリから Apple Maps アプリに移動して、ビジネス/位置情報の画面に直接移動することはできますか?

4

0 に答える 0