Sample code for 30+ languages & platforms
Delphi DLL

Azure Maps Get Search Address

See more Azure Maps Examples

Get information for a given address.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, JsonObject, Http;

...

procedure TForm1.Button1Click(Sender: TObject);
var
http: HCkHttp;
url: PWideChar;
strResp: PWideChar;
jsonResponse: HCkJsonObject;
summaryQuery: PWideChar;
summaryQueryType: PWideChar;
summaryQueryTime: Integer;
summaryNumResults: Integer;
summaryOffset: Integer;
summaryTotalResults: Integer;
summaryFuzzyLevel: Integer;
i: Integer;
count_i: Integer;
v_type: PWideChar;
id: PWideChar;
score: PWideChar;
addressStreetNumber: PWideChar;
addressStreetName: PWideChar;
addressMunicipalitySubdivision: PWideChar;
addressMunicipality: PWideChar;
addressCountrySecondarySubdivision: PWideChar;
addressCountryTertiarySubdivision: PWideChar;
addressCountrySubdivision: PWideChar;
addressPostalCode: PWideChar;
addressExtendedPostalCode: PWideChar;
addressCountryCode: PWideChar;
addressCountry: PWideChar;
addressCountryCodeISO3: PWideChar;
addressFreeformAddress: PWideChar;
addressCountrySubdivisionName: PWideChar;
positionLat: PWideChar;
positionLon: PWideChar;
viewportTopLeftPointLat: PWideChar;
viewportTopLeftPointLon: PWideChar;
viewportBtmRightPointLat: PWideChar;
viewportBtmRightPointLon: PWideChar;
j: Integer;
count_j: Integer;

begin
// 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) then
  begin
    Memo1.Lines.Add(CkHttp__lastErrorText(http));
    Exit;
  end;

Memo1.Lines.Add('Response Status Code: ' + IntToStr(CkHttp_getLastStatus(http)));

jsonResponse := CkJsonObject_Create();
CkJsonObject_Load(jsonResponse,strResp);
CkJsonObject_putEmitCompact(jsonResponse,False);
Memo1.Lines.Add(CkJsonObject__emit(jsonResponse));

if (CkHttp_getLastStatus(http) <> 200) then
  begin
    Memo1.Lines.Add('Failed.');
    Exit;
  end;

// 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 do
  begin
    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 do
      begin
        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;
      end;

    i := i + 1;
  end;

CkHttp_Dispose(http);
CkJsonObject_Dispose(jsonResponse);

end;