Sample code for 30+ languages & platforms
C

Azure Maps Get Search Address

See more Azure Maps Examples

Get information for a given address.

Chilkat C Downloads

C
#include <C_CkHttp.h>
#include <C_CkJsonObject.h>

void ChilkatSample(void)
    {
    HCkHttp http;
    const char *url;
    const char *strResp;
    HCkJsonObject jsonResponse;
    const char *summaryQuery;
    const char *summaryQueryType;
    int summaryQueryTime;
    int summaryNumResults;
    int summaryOffset;
    int summaryTotalResults;
    int summaryFuzzyLevel;
    int i;
    int count_i;
    const char *v_type;
    const char *id;
    const char *score;
    const char *addressStreetNumber;
    const char *addressStreetName;
    const char *addressMunicipalitySubdivision;
    const char *addressMunicipality;
    const char *addressCountrySecondarySubdivision;
    const char *addressCountryTertiarySubdivision;
    const char *addressCountrySubdivision;
    const char *addressPostalCode;
    const char *addressExtendedPostalCode;
    const char *addressCountryCode;
    const char *addressCountry;
    const char *addressCountryCodeISO3;
    const char *addressFreeformAddress;
    const char *addressCountrySubdivisionName;
    const char *positionLat;
    const char *positionLon;
    const char *viewportTopLeftPointLat;
    const char *viewportTopLeftPointLon;
    const char *viewportBtmRightPointLat;
    const char *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 = CkHttp_Create();

    CkHttp_putAccept(http,"application/json");

    url = "https://atlas.microsoft.com/search/address/{$format}?subscription-key=[subscription-key]&api-version=1.0&query={$query}";

    CkHttp_SetUrlVar(http,"format","json");
    CkHttp_SetUrlVar(http,"query","15127 NE 24th Street, Redmond, WA 98052");

    strResp = CkHttp_quickGetStr(http,url);
    if (CkHttp_getLastMethodSuccess(http) != TRUE) {
        printf("%s\n",CkHttp_lastErrorText(http));
        CkHttp_Dispose(http);
        return;
    }

    printf("Response Status Code: %d\n",CkHttp_getLastStatus(http));

    jsonResponse = CkJsonObject_Create();
    CkJsonObject_Load(jsonResponse,strResp);
    CkJsonObject_putEmitCompact(jsonResponse,FALSE);
    printf("%s\n",CkJsonObject_emit(jsonResponse));

    if (CkHttp_getLastStatus(http) != 200) {
        printf("Failed.\n");
        CkHttp_Dispose(http);
        CkJsonObject_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 = CkJsonObject_stringOf(jsonResponse,"summary.query");
    summaryQueryType = CkJsonObject_stringOf(jsonResponse,"summary.queryType");
    summaryQueryTime = CkJsonObject_IntOf(jsonResponse,"summary.queryTime");
    summaryNumResults = CkJsonObject_IntOf(jsonResponse,"summary.numResults");
    summaryOffset = CkJsonObject_IntOf(jsonResponse,"summary.offset");
    summaryTotalResults = CkJsonObject_IntOf(jsonResponse,"summary.totalResults");
    summaryFuzzyLevel = CkJsonObject_IntOf(jsonResponse,"summary.fuzzyLevel");
    i = 0;
    count_i = CkJsonObject_SizeOfArray(jsonResponse,"results");
    while (i < count_i) {
        CkJsonObject_putI(jsonResponse,i);
        v_type = CkJsonObject_stringOf(jsonResponse,"results[i].type");
        id = CkJsonObject_stringOf(jsonResponse,"results[i].id");
        score = CkJsonObject_stringOf(jsonResponse,"results[i].score");
        addressStreetNumber = CkJsonObject_stringOf(jsonResponse,"results[i].address.streetNumber");
        addressStreetName = CkJsonObject_stringOf(jsonResponse,"results[i].address.streetName");
        addressMunicipalitySubdivision = CkJsonObject_stringOf(jsonResponse,"results[i].address.municipalitySubdivision");
        addressMunicipality = CkJsonObject_stringOf(jsonResponse,"results[i].address.municipality");
        addressCountrySecondarySubdivision = CkJsonObject_stringOf(jsonResponse,"results[i].address.countrySecondarySubdivision");
        addressCountryTertiarySubdivision = CkJsonObject_stringOf(jsonResponse,"results[i].address.countryTertiarySubdivision");
        addressCountrySubdivision = CkJsonObject_stringOf(jsonResponse,"results[i].address.countrySubdivision");
        addressPostalCode = CkJsonObject_stringOf(jsonResponse,"results[i].address.postalCode");
        addressExtendedPostalCode = CkJsonObject_stringOf(jsonResponse,"results[i].address.extendedPostalCode");
        addressCountryCode = CkJsonObject_stringOf(jsonResponse,"results[i].address.countryCode");
        addressCountry = CkJsonObject_stringOf(jsonResponse,"results[i].address.country");
        addressCountryCodeISO3 = CkJsonObject_stringOf(jsonResponse,"results[i].address.countryCodeISO3");
        addressFreeformAddress = CkJsonObject_stringOf(jsonResponse,"results[i].address.freeformAddress");
        addressCountrySubdivisionName = CkJsonObject_stringOf(jsonResponse,"results[i].address.countrySubdivisionName");
        positionLat = CkJsonObject_stringOf(jsonResponse,"results[i].position.lat");
        positionLon = CkJsonObject_stringOf(jsonResponse,"results[i].position.lon");
        viewportTopLeftPointLat = CkJsonObject_stringOf(jsonResponse,"results[i].viewport.topLeftPoint.lat");
        viewportTopLeftPointLon = CkJsonObject_stringOf(jsonResponse,"results[i].viewport.topLeftPoint.lon");
        viewportBtmRightPointLat = CkJsonObject_stringOf(jsonResponse,"results[i].viewport.btmRightPoint.lat");
        viewportBtmRightPointLon = CkJsonObject_stringOf(jsonResponse,"results[i].viewport.btmRightPoint.lon");
        j = 0;
        count_j = CkJsonObject_SizeOfArray(jsonResponse,"results[i].entryPoints");
        while (j < count_j) {
            CkJsonObject_putJ(jsonResponse,j);
            v_type = CkJsonObject_stringOf(jsonResponse,"results[i].entryPoints[j].type");
            positionLat = CkJsonObject_stringOf(jsonResponse,"results[i].entryPoints[j].position.lat");
            positionLon = CkJsonObject_stringOf(jsonResponse,"results[i].entryPoints[j].position.lon");
            j = j + 1;
        }

        i = i + 1;
    }



    CkHttp_Dispose(http);
    CkJsonObject_Dispose(jsonResponse);

    }