11

foursquare または他のローカル検索プロバイダーの 1 つの API 制限を回避するために、iOS 6.1 から MKLocalSearch を使用したいと考えています。次のコード:

MKLocalSearchRequest *localSearchRequest = [[MKLocalSearchRequest alloc] init];
MKCoordinateRegion localSearchRegion = MKCoordinateRegionMakeWithDistance(CLLocationCoordinate2DMake([theLocationChange.latitude floatValue], [theLocationChange.longitude floatValue]), 500.0f, 500.0f);
localSearchRequest.naturalLanguageQuery = @"restaurants";
localSearchRequest.region = localSearchRegion;
MKLocalSearch *localSearch = [[MKLocalSearch alloc] initWithRequest:localSearchRequest];

[localSearch startWithCompletionHandler:^(MKLocalSearchResponse *response, NSError *error)
{
    if (error)
    {
        NSLog([error localizedDescription]);
    }
    for (MKMapItem* mapItem in response.mapItems)
    {
        NSLog(@"mapitem name is: %@",mapItem.name);
    }

}];

指定された場所の近くのレストランを正しく取得して表示します。localSearchRequest.naturalLanguageQuery「hotels」に変更すると、ホテルが取得されて表示されます。同じことが「病院」、「バー」などにも当てはまります。ただし、空の文字列、または「 」、「*」、または「?」を試してみると、の場合localSearchRequest.naturalLanguageQuery、結果は返されません。

foursquare API を使用して場所を送信すると、あらゆる種類のローカル ビジネスを含む場所のリストを簡単に取得できます。MKLocalSearch を使用してすべての会場または地元の企業を返す方法はありますか?

4

1 に答える 1

0

Apple のドキュメントによると、localSearchRequest.naturalLanguageQuery は自然言語クエリと見なされます。つまり、何でも入力して、クエリに関連する結果を取得できます。ただし、Apple マップ データベースは期待どおりに値を返さない可能性があります。

于 2016-03-08T15:43:23.507 に答える