美文网首页
地理编码及反编码

地理编码及反编码

作者: 陈水寒 | 来源:发表于2017-03-23 11:19 被阅读51次

    苹果自带地理编码,通过名称搜索获得相应的经纬度信息,反编码就是通过搜索经纬度获得相应的地理名称

    相应代码如下

    // 初始化
    CLGeocoder geocoder = [[CLGeocoder alloc] init];
    
    - (IBAction)geocode:(id)sender {
        
        NSString *address = self.addressTV.text;
        
        if ([address length] == 0) return;
        
        [self.geocoder geocodeAddressString:address completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
            
            if (error) {
                NSLog(@"发生错误");
                return ;
            }
            // 遍历数组
            [placemarks enumerateObjectsUsingBlock:^(CLPlacemark * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
    //            self.addressTV.text = obj.name;
                self.latitudeTF.text = @(obj.location.coordinate.latitude).stringValue;
                self.longitudeTF.text = @(obj.location.coordinate.longitude).stringValue;
            }];
        }];
        
    }
    
    - (IBAction)reverseGeocode:(id)sender {
        
        if ([self.latitudeTF.text length] == 0) {
            NSLog(@"请输入维度");
            return;
        }
        
        if ([self.longitudeTF.text length] == 0) {
            NSLog(@"请输入经度");
            return;
        }
        
        double latitudeD = [self.latitudeTF.text doubleValue];
        double longitudeD = [self.longitudeTF.text doubleValue];
        
        CLLocation *location = [[CLLocation alloc] initWithLatitude:latitudeD longitude:longitudeD];
        
        [self.geocoder reverseGeocodeLocation:location completionHandler:^(NSArray<CLPlacemark *> * _Nullable placemarks, NSError * _Nullable error) {
            if (error) {
                NSLog(@"发生错误");
                return ;
            }
            // 遍历数组
            [placemarks enumerateObjectsUsingBlock:^(CLPlacemark * _Nonnull obj, NSUInteger idx, BOOL * _Nonnull stop) {
                self.addressTV.text = obj.name;
    //            self.latitudeTF.text = @(obj.location.coordinate.latitude).stringValue;
    //            self.longitudeTF.text = @(obj.location.coordinate.longitude).stringValue;
            }];
        }];
    }
    
    编码及反编码演示效果.gif

    相关文章

      网友评论

          本文标题:地理编码及反编码

          本文链接:https://www.haomeiwen.com/subject/jwjznttx.html