0

ユーザーの現在の場所 (緯度、経度、都市、州、国) が検出され、場所が変更されると随時更新され、青いアイコンのズームでマップ キットに表示される優れたチュートリアルが必要です。

MKMapViewをview.xibに配置することでそれを行い、ユーザーの現在の場所(シミュレーターのデフォルト:SanFransisco)を初めて青いドットズームで表示します。しかし、次にアプリを実行すると、青い点のズームが表示されません。コードを書く必要がありますか?今までコードを書いていませんでした。xib で Show UserLocation をオンにしてマップキットを配置しました。青い点を取得するにはどうすればよいですか?

また、ユーザーの場所から近くの医師を見つけて、同じマップに赤いマーカーで表示する必要があります。

グーグルを通過しましたが、多くのことを混乱させました。この点に関して、いくつかの良いチュートリアルを私に提案してください。

編集:

- (void)viewDidLoad
{
    [super viewDidLoad];
    self.mapView.delegate = self;
    locationManager = [[CLLocationManager alloc] init];
    [locationManager setDelegate:self];
    [locationManager setDistanceFilter:kCLDistanceFilterNone];
    [locationManager setDesiredAccuracy:kCLLocationAccuracyBest];
    [self.mapView setShowsUserLocation:YES];
    [locationManager startUpdatingLocation];
    [self queryGooglePlaces:@"doctor"];
}

-(void) queryGooglePlaces: (NSString *) googleType {

    // https://developers.google.com/maps/documentation/places/#Authentication
    NSString *url = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/search/json?location=%f,%f&radius=300&types=doctor&sensor=true&key=%@",  coord.latitude, coord.longitude,kGOOGLE_API_KEY];


    NSURL *googleRequestURL=[NSURL URLWithString:url];

        dispatch_async(kBgQueue, ^{
        NSData* data = [NSData dataWithContentsOfURL: googleRequestURL];
        [self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];
    });
}

//ここでは、緯度と経度が 0.000 として渡されるため、配列データを null として取得しています ..

viewDidLoad で両方を取得するにはどうすればよいですか?

4

2 に答える 2

0

Add this Delegate method of ccl location manager

.h file

double currentLatitude;
double currentLongitude;

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

        currentLatitude = newLocation.coordinate.latitude;

        currentLongitude = newLocation.coordinate.longitude;

        [self  queryGooglePlaces:somestring];
    }

-(void) queryGooglePlaces: (NSString *) googleType {

    // https://developers.google.com/maps/documentation/places/#Authentication
    NSString *url = [NSString stringWithFormat:@"https://maps.googleapis.com/maps/api/place/search/json?location=%f,%f&radius=300&types=doctor&sensor=true&key=%@",  currentLatitude , currentLongitude,kGOOGLE_API_KEY];


    NSURL *googleRequestURL=[NSURL URLWithString:url];

        dispatch_async(kBgQueue, ^{
        NSData* data = [NSData dataWithContentsOfURL: googleRequestURL];
        [self performSelectorOnMainThread:@selector(fetchedData:) withObject:data waitUntilDone:YES];
    });
}

pass the current latitude and longitude in your -(void) queryGooglePlaces: (NSString *) googleType { } method

于 2012-12-03T11:44:12.183 に答える
0

最寄りの医師の住所を検索する場合は、「GOOGLE PLACE API」を使用する必要があります

//ユーザーの現在地について

CLLocationCoordinate2D location = [[[mapview userLocation] location] 座標];
NSLog(@"地図から見つかった場所: %f %f",location.latitude,location.longitude);

このリンクを確認してください Google Place APIの良い例

于 2012-12-03T06:48:59.607 に答える