Sample code for 30+ languages & platforms
Perl

Azure Maps Get Search Address

See more Azure Maps Examples

Get information for a given address.

Chilkat Perl Downloads

Perl
use chilkat();

# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.

$http = chilkat::CkHttp->new();

$http->put_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->get_LastMethodSuccess() != 1) {
    print $http->lastErrorText() . "\r\n";
    exit;
}

print "Response Status Code: " . $http->get_LastStatus() . "\r\n";

$jsonResponse = chilkat::CkJsonObject->new();
$jsonResponse->Load($strResp);
$jsonResponse->put_EmitCompact(0);
print $jsonResponse->emit() . "\r\n";

if ($http->get_LastStatus() != 200) {
    print "Failed." . "\r\n";
    exit;
}

# 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) {
    $jsonResponse->put_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) {
        $jsonResponse->put_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;
    }

    $i = $i + 1;
}