Sample code for 30+ languages & platforms
Delphi ActiveX

Azure Maps Get Search Address

See more Azure Maps Examples

Get information for a given address.

Chilkat Delphi ActiveX Downloads

Delphi ActiveX
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;

...

procedure TForm1.Button1Click(Sender: TObject);
var
http: TChilkatHttp;
url: WideString;
strResp: WideString;
jsonResponse: TChilkatJsonObject;
summaryQuery: WideString;
summaryQueryType: WideString;
summaryQueryTime: Integer;
summaryNumResults: Integer;
summaryOffset: Integer;
summaryTotalResults: Integer;
summaryFuzzyLevel: Integer;
i: Integer;
count_i: Integer;
v_type: WideString;
id: WideString;
score: WideString;
addressStreetNumber: WideString;
addressStreetName: WideString;
addressMunicipalitySubdivision: WideString;
addressMunicipality: WideString;
addressCountrySecondarySubdivision: WideString;
addressCountryTertiarySubdivision: WideString;
addressCountrySubdivision: WideString;
addressPostalCode: WideString;
addressExtendedPostalCode: WideString;
addressCountryCode: WideString;
addressCountry: WideString;
addressCountryCodeISO3: WideString;
addressFreeformAddress: WideString;
addressCountrySubdivisionName: WideString;
positionLat: WideString;
positionLon: WideString;
viewportTopLeftPointLat: WideString;
viewportTopLeftPointLon: WideString;
viewportBtmRightPointLat: WideString;
viewportBtmRightPointLon: WideString;
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 := TChilkatHttp.Create(Self);

http.Accept := 'application/json';

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

http.SetUrlVar('format','json');
http.SetUrlVar('query','15127 NE 24th Street, Redmond, WA 98052');

strResp := http.QuickGetStr(url);
if (http.LastMethodSuccess <> 1) then
  begin
    Memo1.Lines.Add(http.LastErrorText);
    Exit;
  end;

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

jsonResponse := TChilkatJsonObject.Create(Self);
jsonResponse.Load(strResp);
jsonResponse.EmitCompact := 0;
Memo1.Lines.Add(jsonResponse.Emit());

if (http.LastStatus <> 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 := jsonResponse.StringOf('summary.query');
summaryQueryType := jsonResponse.StringOf('summary.queryType');
summaryQueryTime := jsonResponse.IntOf('summary.queryTime');
summaryNumResults := jsonResponse.IntOf('summary.numResults');
summaryOffset := jsonResponse.IntOf('summary.offset');
summaryTotalResults := jsonResponse.IntOf('summary.totalResults');
summaryFuzzyLevel := jsonResponse.IntOf('summary.fuzzyLevel');
i := 0;
count_i := jsonResponse.SizeOfArray('results');
while i < count_i do
  begin
    jsonResponse.I := 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');
    while j < count_j do
      begin
        jsonResponse.J := 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;
      end;

    i := i + 1;
  end;
end;