0

目前我在 iPhone 应用程序中工作,使用 UIWebview 加载地址,如“美国”,然后运行应用程序,地图未显示在屏幕上。我想从用户输入搜索栏字段中显示位置,如何解决这个 iuissue?请帮我

提前致谢

我试过这个:

    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

另一种解决方案是使用 googleapis 查找 api 的 JSON 响应的纬度和经度,并使用它们MKMapView来显示该特定区域。

一个例子..

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

结果是 JSON 输出,您可以在其中获取纬度和经度,进一步对其进行处理MKMapView

或用于 iOS 5 及更高版本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 回答