Sample code for 30+ languages & platforms
Visual FoxPro

Azure Maps Get Search Address

See more Azure Maps Examples

Get information for a given address.

Chilkat Visual FoxPro Downloads

Visual FoxPro
LOCAL loHttp
LOCAL lcUrl
LOCAL lcStrResp
LOCAL loJsonResponse
LOCAL lcSummaryQuery
LOCAL lcSummaryQueryType
LOCAL lnSummaryQueryTime
LOCAL lnSummaryNumResults
LOCAL lnSummaryOffset
LOCAL lnSummaryTotalResults
LOCAL lnSummaryFuzzyLevel
LOCAL i
LOCAL lnCount_i
LOCAL lcV_type
LOCAL lcId
LOCAL lcScore
LOCAL lcAddressStreetNumber
LOCAL lcAddressStreetName
LOCAL lcAddressMunicipalitySubdivision
LOCAL lcAddressMunicipality
LOCAL lcAddressCountrySecondarySubdivision
LOCAL lcAddressCountryTertiarySubdivision
LOCAL lcAddressCountrySubdivision
LOCAL lcAddressPostalCode
LOCAL lcAddressExtendedPostalCode
LOCAL lcAddressCountryCode
LOCAL lcAddressCountry
LOCAL lcAddressCountryCodeISO3
LOCAL lcAddressFreeformAddress
LOCAL lcAddressCountrySubdivisionName
LOCAL lcPositionLat
LOCAL lcPositionLon
LOCAL lcViewportTopLeftPointLat
LOCAL lcViewportTopLeftPointLon
LOCAL lcViewportBtmRightPointLat
LOCAL lcViewportBtmRightPointLon
LOCAL j
LOCAL lnCount_j

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

loHttp = CreateObject('Chilkat.Http')

loHttp.Accept = "application/json"

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

loHttp.SetUrlVar("format","json")
loHttp.SetUrlVar("query","15127 NE 24th Street, Redmond, WA 98052")

lcStrResp = loHttp.QuickGetStr(lcUrl)
IF (loHttp.LastMethodSuccess <> 1) THEN
    ? loHttp.LastErrorText
    RELEASE loHttp
    CANCEL
ENDIF

? "Response Status Code: " + STR(loHttp.LastStatus)

loJsonResponse = CreateObject('Chilkat.JsonObject')
loJsonResponse.Load(lcStrResp)
loJsonResponse.EmitCompact = 0
? loJsonResponse.Emit()

IF (loHttp.LastStatus <> 200) THEN
    ? "Failed."
    RELEASE loHttp
    RELEASE loJsonResponse
    CANCEL
ENDIF

* 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
*           }
*         }
*       ]
*     }
*   ]
* }
* 

lcSummaryQuery = loJsonResponse.StringOf("summary.query")
lcSummaryQueryType = loJsonResponse.StringOf("summary.queryType")
lnSummaryQueryTime = loJsonResponse.IntOf("summary.queryTime")
lnSummaryNumResults = loJsonResponse.IntOf("summary.numResults")
lnSummaryOffset = loJsonResponse.IntOf("summary.offset")
lnSummaryTotalResults = loJsonResponse.IntOf("summary.totalResults")
lnSummaryFuzzyLevel = loJsonResponse.IntOf("summary.fuzzyLevel")
i = 0
lnCount_i = loJsonResponse.SizeOfArray("results")
DO WHILE i < lnCount_i
    loJsonResponse.I = i
    lcV_type = loJsonResponse.StringOf("results[i].type")
    lcId = loJsonResponse.StringOf("results[i].id")
    lcScore = loJsonResponse.StringOf("results[i].score")
    lcAddressStreetNumber = loJsonResponse.StringOf("results[i].address.streetNumber")
    lcAddressStreetName = loJsonResponse.StringOf("results[i].address.streetName")
    lcAddressMunicipalitySubdivision = loJsonResponse.StringOf("results[i].address.municipalitySubdivision")
    lcAddressMunicipality = loJsonResponse.StringOf("results[i].address.municipality")
    lcAddressCountrySecondarySubdivision = loJsonResponse.StringOf("results[i].address.countrySecondarySubdivision")
    lcAddressCountryTertiarySubdivision = loJsonResponse.StringOf("results[i].address.countryTertiarySubdivision")
    lcAddressCountrySubdivision = loJsonResponse.StringOf("results[i].address.countrySubdivision")
    lcAddressPostalCode = loJsonResponse.StringOf("results[i].address.postalCode")
    lcAddressExtendedPostalCode = loJsonResponse.StringOf("results[i].address.extendedPostalCode")
    lcAddressCountryCode = loJsonResponse.StringOf("results[i].address.countryCode")
    lcAddressCountry = loJsonResponse.StringOf("results[i].address.country")
    lcAddressCountryCodeISO3 = loJsonResponse.StringOf("results[i].address.countryCodeISO3")
    lcAddressFreeformAddress = loJsonResponse.StringOf("results[i].address.freeformAddress")
    lcAddressCountrySubdivisionName = loJsonResponse.StringOf("results[i].address.countrySubdivisionName")
    lcPositionLat = loJsonResponse.StringOf("results[i].position.lat")
    lcPositionLon = loJsonResponse.StringOf("results[i].position.lon")
    lcViewportTopLeftPointLat = loJsonResponse.StringOf("results[i].viewport.topLeftPoint.lat")
    lcViewportTopLeftPointLon = loJsonResponse.StringOf("results[i].viewport.topLeftPoint.lon")
    lcViewportBtmRightPointLat = loJsonResponse.StringOf("results[i].viewport.btmRightPoint.lat")
    lcViewportBtmRightPointLon = loJsonResponse.StringOf("results[i].viewport.btmRightPoint.lon")
    j = 0
    lnCount_j = loJsonResponse.SizeOfArray("results[i].entryPoints")
    DO WHILE j < lnCount_j
        loJsonResponse.J = j
        lcV_type = loJsonResponse.StringOf("results[i].entryPoints[j].type")
        lcPositionLat = loJsonResponse.StringOf("results[i].entryPoints[j].position.lat")
        lcPositionLon = loJsonResponse.StringOf("results[i].entryPoints[j].position.lon")
        j = j + 1
    ENDDO
    i = i + 1
ENDDO

RELEASE loHttp
RELEASE loJsonResponse