0

現在、私はiPhoneアプリケーションで作業しており、UIWebviewを使用して「アメリカ」などのアドレスをロードしてから、アプリケーションを実行します。マップは画面に表示されません。ユーザー入力検索バーフィールドから場所を表示したいのですが、この問題を修正するにはどうすればよいですか?私を助けてください

前もって感謝します

私はこれを試しました:

    webView=[[UIWebView alloc]initWithFrame:CGRectMake(0, 40, 320,376)];
    webView.delegate=self;
    webView.scalesPageToFit=YES;
    NSString *mapurl = @"http://maps.google.com/maps?q=";
    NSString *urlString1 = [mapurl stringByAppendingFormat:@"America"];    
    NSString *OmitSpace = [urlString1 stringByReplacingOccurrencesOfString:@" " withString:@"%20"];

    NSURL *url=[NSURL URLWithString:OmitSpace];
    NSURLRequest *requestObj=[NSURLRequest requestWithURL:url];
    [webView loadRequest:requestObj];

スクリーンショット: ここに画像の説明を入力してください

4

2 に答える 2

1

もう1つの解決策は、googleapisを使用してAPIのJSON応答の緯度と経度を見つけ、それらを使用してMKMapViewその特定の地域を表示することです。

例..

http://maps.googleapis.com/maps/api/geocode/json?address=america&sensor=true

結果はJSON出力であり、緯度と経度を取得して、さらに緯度と経度を取得できます。MKMapView

またはiOS5以降の場合CLGeocoderMKMapView同じ出力を取得するには

CLGeocoder *geocoder = [[CLGeocoder alloc] init];
    [geocoder geocodeAddressString:@"America" completionHandler:^(NSArray *placemarks, NSError *error) {
        //Error checking

        CLPlacemark *placemark = [placemarks objectAtIndex:0];
        MKCoordinateRegion region;
        region.center.latitude = placemark.region.center.latitude;
        region.center.longitude = placemark.region.center.longitude;
        MKCoordinateSpan span;
        double radius = placemark.region.radius / 1000; // convert to km

        NSLog(@"Radius is %f", radius);
        span.latitudeDelta = radius / 112.0;

        region.span = span;

        [mapView setRegion:region animated:YES];
    }];
于 2012-10-26T10:36:59.347 に答える
0
NSString *OmitSpace = [urlString1 stringByReplacingOccurrencesOfString:@" " withString:@"%20"];

これにより、空白のみが省略されます。他のエスケープ文字は変換されません。したがって、上記の行をこれに置き換えます。

NSString *OmitSpace = [urlString1 stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]
于 2012-10-26T10:31:14.707 に答える