Unicode C
Unicode C
Azure Maps Get Search Address
See more Azure Maps Examples
Get information for a given address.Chilkat Unicode C Downloads
#include <C_CkHttpW.h>
#include <C_CkJsonObjectW.h>
void ChilkatSample(void)
{
HCkHttpW http;
const wchar_t *url;
const wchar_t *strResp;
HCkJsonObjectW jsonResponse;
const wchar_t *summaryQuery;
const wchar_t *summaryQueryType;
int summaryQueryTime;
int summaryNumResults;
int summaryOffset;
int summaryTotalResults;
int summaryFuzzyLevel;
int i;
int count_i;
const wchar_t *v_type;
const wchar_t *id;
const wchar_t *score;
const wchar_t *addressStreetNumber;
const wchar_t *addressStreetName;
const wchar_t *addressMunicipalitySubdivision;
const wchar_t *addressMunicipality;
const wchar_t *addressCountrySecondarySubdivision;
const wchar_t *addressCountryTertiarySubdivision;
const wchar_t *addressCountrySubdivision;
const wchar_t *addressPostalCode;
const wchar_t *addressExtendedPostalCode;
const wchar_t *addressCountryCode;
const wchar_t *addressCountry;
const wchar_t *addressCountryCodeISO3;
const wchar_t *addressFreeformAddress;
const wchar_t *addressCountrySubdivisionName;
const wchar_t *positionLat;
const wchar_t *positionLon;
const wchar_t *viewportTopLeftPointLat;
const wchar_t *viewportTopLeftPointLon;
const wchar_t *viewportBtmRightPointLat;
const wchar_t *viewportBtmRightPointLon;
int j;
int count_j;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
http = CkHttpW_Create();
CkHttpW_putAccept(http,L"application/json");
url = L"https://atlas.microsoft.com/search/address/{$format}?subscription-key=[subscription-key]&api-version=1.0&query={$query}";
CkHttpW_SetUrlVar(http,L"format",L"json");
CkHttpW_SetUrlVar(http,L"query",L"15127 NE 24th Street, Redmond, WA 98052");
strResp = CkHttpW_quickGetStr(http,url);
if (CkHttpW_getLastMethodSuccess(http) != TRUE) {
wprintf(L"%s\n",CkHttpW_lastErrorText(http));
CkHttpW_Dispose(http);
return;
}
wprintf(L"Response Status Code: %d\n",CkHttpW_getLastStatus(http));
jsonResponse = CkJsonObjectW_Create();
CkJsonObjectW_Load(jsonResponse,strResp);
CkJsonObjectW_putEmitCompact(jsonResponse,FALSE);
wprintf(L"%s\n",CkJsonObjectW_emit(jsonResponse));
if (CkHttpW_getLastStatus(http) != 200) {
wprintf(L"Failed.\n");
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(jsonResponse);
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
// }
// }
// ]
// }
// ]
// }
//
summaryQuery = CkJsonObjectW_stringOf(jsonResponse,L"summary.query");
summaryQueryType = CkJsonObjectW_stringOf(jsonResponse,L"summary.queryType");
summaryQueryTime = CkJsonObjectW_IntOf(jsonResponse,L"summary.queryTime");
summaryNumResults = CkJsonObjectW_IntOf(jsonResponse,L"summary.numResults");
summaryOffset = CkJsonObjectW_IntOf(jsonResponse,L"summary.offset");
summaryTotalResults = CkJsonObjectW_IntOf(jsonResponse,L"summary.totalResults");
summaryFuzzyLevel = CkJsonObjectW_IntOf(jsonResponse,L"summary.fuzzyLevel");
i = 0;
count_i = CkJsonObjectW_SizeOfArray(jsonResponse,L"results");
while (i < count_i) {
CkJsonObjectW_putI(jsonResponse,i);
v_type = CkJsonObjectW_stringOf(jsonResponse,L"results[i].type");
id = CkJsonObjectW_stringOf(jsonResponse,L"results[i].id");
score = CkJsonObjectW_stringOf(jsonResponse,L"results[i].score");
addressStreetNumber = CkJsonObjectW_stringOf(jsonResponse,L"results[i].address.streetNumber");
addressStreetName = CkJsonObjectW_stringOf(jsonResponse,L"results[i].address.streetName");
addressMunicipalitySubdivision = CkJsonObjectW_stringOf(jsonResponse,L"results[i].address.municipalitySubdivision");
addressMunicipality = CkJsonObjectW_stringOf(jsonResponse,L"results[i].address.municipality");
addressCountrySecondarySubdivision = CkJsonObjectW_stringOf(jsonResponse,L"results[i].address.countrySecondarySubdivision");
addressCountryTertiarySubdivision = CkJsonObjectW_stringOf(jsonResponse,L"results[i].address.countryTertiarySubdivision");
addressCountrySubdivision = CkJsonObjectW_stringOf(jsonResponse,L"results[i].address.countrySubdivision");
addressPostalCode = CkJsonObjectW_stringOf(jsonResponse,L"results[i].address.postalCode");
addressExtendedPostalCode = CkJsonObjectW_stringOf(jsonResponse,L"results[i].address.extendedPostalCode");
addressCountryCode = CkJsonObjectW_stringOf(jsonResponse,L"results[i].address.countryCode");
addressCountry = CkJsonObjectW_stringOf(jsonResponse,L"results[i].address.country");
addressCountryCodeISO3 = CkJsonObjectW_stringOf(jsonResponse,L"results[i].address.countryCodeISO3");
addressFreeformAddress = CkJsonObjectW_stringOf(jsonResponse,L"results[i].address.freeformAddress");
addressCountrySubdivisionName = CkJsonObjectW_stringOf(jsonResponse,L"results[i].address.countrySubdivisionName");
positionLat = CkJsonObjectW_stringOf(jsonResponse,L"results[i].position.lat");
positionLon = CkJsonObjectW_stringOf(jsonResponse,L"results[i].position.lon");
viewportTopLeftPointLat = CkJsonObjectW_stringOf(jsonResponse,L"results[i].viewport.topLeftPoint.lat");
viewportTopLeftPointLon = CkJsonObjectW_stringOf(jsonResponse,L"results[i].viewport.topLeftPoint.lon");
viewportBtmRightPointLat = CkJsonObjectW_stringOf(jsonResponse,L"results[i].viewport.btmRightPoint.lat");
viewportBtmRightPointLon = CkJsonObjectW_stringOf(jsonResponse,L"results[i].viewport.btmRightPoint.lon");
j = 0;
count_j = CkJsonObjectW_SizeOfArray(jsonResponse,L"results[i].entryPoints");
while (j < count_j) {
CkJsonObjectW_putJ(jsonResponse,j);
v_type = CkJsonObjectW_stringOf(jsonResponse,L"results[i].entryPoints[j].type");
positionLat = CkJsonObjectW_stringOf(jsonResponse,L"results[i].entryPoints[j].position.lat");
positionLon = CkJsonObjectW_stringOf(jsonResponse,L"results[i].entryPoints[j].position.lon");
j = j + 1;
}
i = i + 1;
}
CkHttpW_Dispose(http);
CkJsonObjectW_Dispose(jsonResponse);
}