代码之家  ›  专栏  ›  技术社区  ›  user1248568

从邮政编码或城市/州获取坐标

  •  2
  • user1248568  · 技术社区  · 11 年前

    我现在正在使用地图套件和核心位置,需要获取 地方 来自的信息 邮政编码 城市/州 。有什么办法吗?

    3 回复  |  直到 11 年前
        1
  •  9
  •   Mike Weller    11 年前

    您可以使用 CLGeocoder 类,该类支持将地址转换为坐标,反之亦然。例如:

    [geocoder geocodeAddressString:@"<postcode here>"
                 completionHandler:^(NSArray* placemarks, NSError* error){
                     for (CLPlacemark* aPlacemark in placemarks)
                     {
                         // Process the placemark.
                     }
    }];
    

    你可能想使用很多不同的方法。例如,您可以将搜索限制在特定区域。

        2
  •  0
  •   nkkumawat    3 年前

    您可以使用 https://thezipcodes.com/ 从邮政编码中获取位置。

    要与您的网站集成,请关注 http://thezipcodes.com/docs

        3
  •  -1
  •   Nishant Tyagi    11 年前

    使用此

    -(CLLocationCoordinate2D) getLocationFromAddressString:(NSString*) addressStr {
    
    double latitude = 0, longitude = 0;
    NSString *esc_addr =  [addressStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding];
    NSString *req = [NSString stringWithFormat:@"http://maps.google.com/maps/api/geocode/json?sensor=false&address=%@", esc_addr];
    NSString *result = [NSString stringWithContentsOfURL:[NSURL URLWithString:req] encoding:NSUTF8StringEncoding error:NULL];
    if (result) {
        NSScanner *scanner = [NSScanner scannerWithString:result];
        if ([scanner scanUpToString:@"\"lat\" :" intoString:nil] && [scanner scanString:@"\"lat\" :" intoString:nil]) {
            [scanner scanDouble:&latitude];
            if ([scanner scanUpToString:@"\"lng\" :" intoString:nil] && [scanner scanString:@"\"lng\" :" intoString:nil]) {
                [scanner scanDouble:&longitude];
            }
        }
    }
    CLLocationCoordinate2D center;
    center.latitude = latitude;
    center.longitude = longitude;
    return center;
    

    }

    此方法返回 协调 当您将地址作为参数传递时,请使用googleapi。