Objective-C
Objective-C
Azure Maps Get Search Address
See more Azure Maps Examples
Get information for a given address.Chilkat Objective-C Downloads
#import <CkoHttp.h>
#import <NSString.h>
#import <CkoJsonObject.h>
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
CkoHttp *http = [[CkoHttp alloc] init];
http.Accept = @"application/json";
NSString *url = @"https://atlas.microsoft.com/search/address/{$format}?subscription-key=[subscription-key]&api-version=1.0&query={$query}";
[http SetUrlVar: @"format" value: @"json"];
[http SetUrlVar: @"query" value: @"15127 NE 24th Street, Redmond, WA 98052"];
NSString *strResp = [http QuickGetStr: url];
if (http.LastMethodSuccess != YES) {
NSLog(@"%@",http.LastErrorText);
return;
}
NSLog(@"%@%d",@"Response Status Code: ",[http.LastStatus intValue]);
CkoJsonObject *jsonResponse = [[CkoJsonObject alloc] init];
[jsonResponse Load: strResp];
jsonResponse.EmitCompact = NO;
NSLog(@"%@",[jsonResponse Emit]);
if ([http.LastStatus intValue] != 200) {
NSLog(@"%@",@"Failed.");
return;
}
// Sample output...
// (See the parsing code below..)
//
// Use this online tool to generate parsing code from sample JSON:
// Generate Parsing Code from JSON
// {
// "summary": {
// "query": "15127 NE 24th Street, Redmond, WA 98052",
// "queryType": "NON_NEAR",
// "queryTime": 58,
// "numResults": 1,
// "offset": 0,
// "totalResults": 1,
// "fuzzyLevel": 1
// },
// "results": [
// {
// "type": "Point Address",
// "id": "US/PAD/p0/19173426",
// "score": 14.51,
// "address": {
// "streetNumber": "15127",
// "streetName": "NE 24th St",
// "municipalitySubdivision": "Redmond",
// "municipality": "Redmond, Adelaide, Ames Lake, Avondale, Earlmount",
// "countrySecondarySubdivision": "King",
// "countryTertiarySubdivision": "Seattle East",
// "countrySubdivision": "WA",
// "postalCode": "98052",
// "extendedPostalCode": "980525544",
// "countryCode": "US",
// "country": "United States Of America",
// "countryCodeISO3": "USA",
// "freeformAddress": "15127 NE 24th St, Redmond, WA 980525544",
// "countrySubdivisionName": "Washington"
// },
// "position": {
// "lat": 47.6308,
// "lon": -122.1385
// },
// "viewport": {
// "topLeftPoint": {
// "lat": 47.6317,
// "lon": -122.13983
// },
// "btmRightPoint": {
// "lat": 47.6299,
// "lon": -122.13717
// }
// },
// "entryPoints": [
// {
// "type": "main",
// "position": {
// "lat": 47.6315,
// "lon": -122.13852
// }
// }
// ]
// }
// ]
// }
//
NSString *summaryQuery = 0;
NSString *summaryQueryType = 0;
int summaryQueryTime;
int summaryNumResults;
int summaryOffset;
int summaryTotalResults;
int summaryFuzzyLevel;
int i;
int count_i;
NSString *v_type = 0;
NSString *id = 0;
NSString *score = 0;
NSString *addressStreetNumber = 0;
NSString *addressStreetName = 0;
NSString *addressMunicipalitySubdivision = 0;
NSString *addressMunicipality = 0;
NSString *addressCountrySecondarySubdivision = 0;
NSString *addressCountryTertiarySubdivision = 0;
NSString *addressCountrySubdivision = 0;
NSString *addressPostalCode = 0;
NSString *addressExtendedPostalCode = 0;
NSString *addressCountryCode = 0;
NSString *addressCountry = 0;
NSString *addressCountryCodeISO3 = 0;
NSString *addressFreeformAddress = 0;
NSString *addressCountrySubdivisionName = 0;
NSString *positionLat = 0;
NSString *positionLon = 0;
NSString *viewportTopLeftPointLat = 0;
NSString *viewportTopLeftPointLon = 0;
NSString *viewportBtmRightPointLat = 0;
NSString *viewportBtmRightPointLon = 0;
int j;
int count_j;
summaryQuery = [jsonResponse StringOf: @"summary.query"];
summaryQueryType = [jsonResponse StringOf: @"summary.queryType"];
summaryQueryTime = [[jsonResponse IntOf: @"summary.queryTime"] intValue];
summaryNumResults = [[jsonResponse IntOf: @"summary.numResults"] intValue];
summaryOffset = [[jsonResponse IntOf: @"summary.offset"] intValue];
summaryTotalResults = [[jsonResponse IntOf: @"summary.totalResults"] intValue];
summaryFuzzyLevel = [[jsonResponse IntOf: @"summary.fuzzyLevel"] intValue];
i = 0;
count_i = [[jsonResponse SizeOfArray: @"results"] intValue];
while (i < count_i) {
jsonResponse.I = [NSNumber numberWithInt: i];
v_type = [jsonResponse StringOf: @"results[i].type"];
id = [jsonResponse StringOf: @"results[i].id"];
score = [jsonResponse StringOf: @"results[i].score"];
addressStreetNumber = [jsonResponse StringOf: @"results[i].address.streetNumber"];
addressStreetName = [jsonResponse StringOf: @"results[i].address.streetName"];
addressMunicipalitySubdivision = [jsonResponse StringOf: @"results[i].address.municipalitySubdivision"];
addressMunicipality = [jsonResponse StringOf: @"results[i].address.municipality"];
addressCountrySecondarySubdivision = [jsonResponse StringOf: @"results[i].address.countrySecondarySubdivision"];
addressCountryTertiarySubdivision = [jsonResponse StringOf: @"results[i].address.countryTertiarySubdivision"];
addressCountrySubdivision = [jsonResponse StringOf: @"results[i].address.countrySubdivision"];
addressPostalCode = [jsonResponse StringOf: @"results[i].address.postalCode"];
addressExtendedPostalCode = [jsonResponse StringOf: @"results[i].address.extendedPostalCode"];
addressCountryCode = [jsonResponse StringOf: @"results[i].address.countryCode"];
addressCountry = [jsonResponse StringOf: @"results[i].address.country"];
addressCountryCodeISO3 = [jsonResponse StringOf: @"results[i].address.countryCodeISO3"];
addressFreeformAddress = [jsonResponse StringOf: @"results[i].address.freeformAddress"];
addressCountrySubdivisionName = [jsonResponse StringOf: @"results[i].address.countrySubdivisionName"];
positionLat = [jsonResponse StringOf: @"results[i].position.lat"];
positionLon = [jsonResponse StringOf: @"results[i].position.lon"];
viewportTopLeftPointLat = [jsonResponse StringOf: @"results[i].viewport.topLeftPoint.lat"];
viewportTopLeftPointLon = [jsonResponse StringOf: @"results[i].viewport.topLeftPoint.lon"];
viewportBtmRightPointLat = [jsonResponse StringOf: @"results[i].viewport.btmRightPoint.lat"];
viewportBtmRightPointLon = [jsonResponse StringOf: @"results[i].viewport.btmRightPoint.lon"];
j = 0;
count_j = [[jsonResponse SizeOfArray: @"results[i].entryPoints"] intValue];
while (j < count_j) {
jsonResponse.J = [NSNumber numberWithInt: j];
v_type = [jsonResponse StringOf: @"results[i].entryPoints[j].type"];
positionLat = [jsonResponse StringOf: @"results[i].entryPoints[j].position.lat"];
positionLon = [jsonResponse StringOf: @"results[i].entryPoints[j].position.lon"];
j = j + 1;
}
i = i + 1;
}