Perl
Perl
Azure Maps Get Search Address
See more Azure Maps Examples
Get information for a given address.Chilkat Perl Downloads
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;
}