မင်္ဂလာပါ!

လှိုက်လှဲစွာကြိုဆိုပါသည်။ ယခု ပထမဆုံးအကြိမ် ရောက်ဖူးခြင်းဖြစ်ပါသလား? ဝင်ရောက် ဆွေးနွေး မေးမြန်းလိုပါလျှင် အောက်တွင်ဖော်ပြထားသော button များမှတဆင့် ဝင်ရောက် ဆွေးနွေးနိုင်သကဲ့သို့ အဖွဲ့ဝင်အသစ်အနေဖြင့်လည်း လျှောက်ထားနိုင်ပါတယ်။

MYSTERY ZILLION တွင် English သို့မဟုတ် Unicode ဖြင့်သာ အသုံးပြုခွင့်ရှိသည်။ ဇော်ဂျီ ၊ ဧရာ စသည်တို့ကို အသုံးပြုခွင့် မရှိ။ Unicode fonts များမှာ Mon3,Yunghkio, Myanamr3 စသည်များ အသုံးပြုနိုင်သည်။ Unicode Guide ကို ဒီမှာ Download ချပါ။ Zawgyi to Unicode Converter
Don't share ebook or software if nobody request. You can find free book websites on here. We are welcome for discussion or asking question instead.

Get Latitude and Longitude variable value

- (void)textFieldDidEndEditing:(UITextField *)textField
{
    if (!resultString) {
        if (!(self.courtOther.text == (id)[NSNull null] || self.courtOther.text.length == 0)) {
            geoEnabledTouch = FALSE;
            CLGeocoder *geocoder = [[CLGeocoder alloc] init];
            [geocoder geocodeAddressString:self.courtOther.text completionHandler:^(NSArray *placemarks, NSError *error) {
                if (error)
                {
                    NSLog(@Geocode failed with error: %@", error);
                    return;
                }
                CLPlacemark *placemark = placemarks[0];
                CLLocationDegrees latitude = placemark.location.coordinate.latitude;
                CLLocationDegrees longitude = placemark.location.coordinate.longitude;
                lat = [NSString stringWithFormat:@%.8F,latitude];
                lon = [NSString stringWithFormat:@%.8F,longitude];
                geoEnabledTouch = TRUE;
            }];
        }
    }
}

- (void)geocode:(NSString *)str :(BOOL)isCity
{
    resultString = [str stringByReplacingOccurrencesOfString:@\" withString:@""];    
    if (!(resultString == (id)[NSNull null] || resultString.length == 0)) {
        geoEnabledTouch = FALSE;
        CLGeocoder *geocoder = [[CLGeocoder alloc] init];
        [geocoder geocodeAddressString:resultString completionHandler:^(NSArray *placemarks, NSError *error) {
            if (error)
            {
                NSLog(@Geocode failed with error: %@", error);
                return;
            }
            CLPlacemark *placemark = placemarks[0];
            CLLocationDegrees latitude = placemark.location.coordinate.latitude;
            CLLocationDegrees longitude = placemark.location.coordinate.longitude;
            if (isCity) {
                latCity = [NSString stringWithFormat:@%.8F,latitude];
                lonCity = [NSString stringWithFormat:@%.8F,longitude];
            }
            else{
                lat = [NSString stringWithFormat:@%.8F,latitude];
                lon = [NSString stringWithFormat:@%.8F,longitude];
            }
            geoEnabledTouch = TRUE;
        }];
        
    }
}

lat နဲ့ lon ဆိုတဲ့ variable ကို

NSString * lat;
NSString * lon;

ဆိုပြီး @implementation အောက်မှာ global ကြေငြာထားတာပါ။
တစ်ခြားmethod တစ်ခုကနေlat နဲ့ lon တန်ဖိုးကိုထုတ်တာ မပါလာဘူးဖြစ်နေလို့ပါ။
textFieldDidEndEditing method ထဲက lat နဲ့ lon တန်ဖိုးကိုထုတ်ရင် ရပြီး
geocode method ထဲက lat နဲ့ lon တန်ဖိုးကို ထုတ်ရင် null ပဲ ထွက်လာလို့ပါ။
ဘယ်လိုလုပ်ရမလဲ။

Tagged:

မှတ်ချက်များ

  • edited August 2014 Administrators

    when did you call lat and lon ? lat and lon value in the block. You need to wait until it finish.

    You shouldn't call like that

    [self geocode:"Clementi" city:NO];
    NSLog(@%@ %@",self.lat,self.long);
    

    You should call with callback block , example :

    - (void)geocode:(NSString *)str city:(BOOL)isCity OnComplete:(void (^)(String *lat, String * long))completion
    {
        resultString = [str stringByReplacingOccurrencesOfString:@\" withString:@""];    
        if (!(resultString == (id)[NSNull null] || resultString.length == 0)) {
            geoEnabledTouch = FALSE;
            CLGeocoder *geocoder = [[CLGeocoder alloc] init];
            [geocoder geocodeAddressString:resultString completionHandler:^(NSArray *placemarks, NSError *error) {
                if (error)
                {
                    NSLog(@Geocode failed with error: %@", error);
                    return;
                }
                CLPlacemark *placemark = placemarks[0];
                CLLocationDegrees latitude = placemark.location.coordinate.latitude;
                CLLocationDegrees longitude = placemark.location.coordinate.longitude;
                if (isCity) {
                    latCity = [NSString stringWithFormat:@%.8F,latitude];
                    lonCity = [NSString stringWithFormat:@%.8F,longitude];
                }
                else{
                    lat = [NSString stringWithFormat:@%.8F,latitude];
                    lon = [NSString stringWithFormat:@%.8F,longitude];
                }
                geoEnabledTouch = TRUE;
                completion(lat,lon);
            }];
             
        }
    }
    
    [self geocode:"Clementi" city:NO OnComplete:^(String lat , String *long) {
    NSLog(@%@ %@",lat,long);
    }];
    
Sign In or Register to comment.