![]() |
Chilkat HOME Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi DLL Go Java Node.js Objective-C PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Visual FoxPro) Google Maps Geolocation RequestDemonstrates how make a Google Maps Geolocation REST API request. Note: This example requires Chilkat v11.1.0 or greater.
LOCAL lnSuccess LOCAL loRest LOCAL lnBTls LOCAL lnPort LOCAL lnBAutoReconnect LOCAL loJson LOCAL loACellTowers LOCAL loOCellTower LOCAL loAWifi LOCAL loOPoint LOCAL lcResponseJson LOCAL loJsonResp LOCAL loJsonLoc LOCAL lcLatitude LOCAL lcLongitude LOCAL lcAccuracy lnSuccess = 0 * This example duplicates the following CURL request: * curl -d @your_filename.json -H "Content-Type: application/json" -i "https://www.googleapis.com/geolocation/v1/geolocate?key=YOUR_API_KEY" * This example requires the Chilkat API to have been previously unlocked. * See Global Unlock Sample for sample code. loRest = CreateObject('Chilkat.Rest') * Connect to the Google API REST server. lnBTls = 1 lnPort = 443 lnBAutoReconnect = 1 lnSuccess = loRest.Connect("www.googleapis.com",lnPort,lnBTls,lnBAutoReconnect) * Add the Content-Type request header. loRest.AddHeader("Content-Type","application/json") * Add your API key as a query parameter loRest.AddQueryParam("key","YOUR_API_KEY") * The JSON query is contained in the body of the HTTP POST. * This is a sample query (which we'll dynamically build in this example) * { * "homeMobileCountryCode": 310, * "homeMobileNetworkCode": 260, * "radioType": "gsm", * "carrier": "T-Mobile", * "cellTowers": [ * { * "cellId": 39627456, * "locationAreaCode": 40495, * "mobileCountryCode": 310, * "mobileNetworkCode": 260, * "age": 0, * "signalStrength": -95 * } * ], * "wifiAccessPoints": [ * { * "macAddress": "01:23:45:67:89:AB", * "signalStrength": 8, * "age": 0, * "signalToNoiseRatio": -65, * "channel": 8 * }, * { * "macAddress": "01:23:45:67:89:AC", * "signalStrength": 4, * "age": 0 * } * ] * } loJson = CreateObject('Chilkat.JsonObject') loJson.AppendInt("homeMobileCountryCode",310) loJson.AppendInt("homeMobileNetworkCode",260) loJson.AppendString("radioType","gsm") loJson.AppendString("carrier","T-Mobile") loACellTowers = CreateObject('Chilkat.JsonArray') loJson.AppendArray2("cellTowers",loACellTowers) loOCellTower = CreateObject('Chilkat.JsonObject') loACellTowers.AddObjectAt2(0,loOCellTower) loOCellTower.AppendInt("cellId",39627456) loOCellTower.AppendInt("locationAreaCode",40495) loOCellTower.AppendInt("mobileCountryCode",310) loOCellTower.AppendInt("mobileNetworkCode",260) loOCellTower.AppendInt("age",0) loOCellTower.AppendInt("signalStrength",-95) loAWifi = CreateObject('Chilkat.JsonArray') loJson.AppendArray2("wifiAccessPoints",loAWifi) loOPoint = CreateObject('Chilkat.JsonObject') loAWifi.AddObjectAt2(0,loOPoint) loOPoint.AppendString("macAddress","01:23:45:67:89:AB") loOPoint.AppendInt("signalStrength",8) loOPoint.AppendInt("age",0) loOPoint.AppendInt("signalToNoiseRatio",-65) loOPoint.AppendInt("channel",8) loAWifi.AddObjectAt2(1,loOPoint) loOPoint.AppendString("macAddress","01:23:45:67:89:AC") loOPoint.AppendInt("signalStrength",4) loOPoint.AppendInt("age",0) lcResponseJson = loRest.FullRequestString("POST","/geolocation/v1/geolocate",loJson.Emit()) IF (loRest.LastMethodSuccess = 0) THEN ? loRest.LastErrorText RELEASE loRest RELEASE loJson RELEASE loACellTowers RELEASE loOCellTower RELEASE loAWifi RELEASE loOPoint CANCEL ENDIF * When successful, the response code is 200. IF (loRest.ResponseStatusCode <> 200) THEN * Examine the request/response to see what happened. ? "response status code = " + STR(loRest.ResponseStatusCode) ? "response status text = " + loRest.ResponseStatusText ? "response header: " + loRest.ResponseHeader ? "response JSON: " + lcResponseJson ? "---" ? "LastRequestStartLine: " + loRest.LastRequestStartLine ? "LastRequestHeader: " + loRest.LastRequestHeader RELEASE loRest RELEASE loJson RELEASE loACellTowers RELEASE loOCellTower RELEASE loAWifi RELEASE loOPoint CANCEL ENDIF loJson.EmitCompact = 0 ? "JSON request body: " + loJson.Emit() * The JSON response should look like this: * { * "location": { * "lat": 37.4248297, * "lng": -122.07346549999998 * }, * "accuracy": 1145.0 * } ? "JSON response: " + lcResponseJson loJsonResp = CreateObject('Chilkat.JsonObject') loJsonResp.Load(lcResponseJson) loJsonLoc = CreateObject('Chilkat.JsonObject') loJsonResp.ObjectOf2("location",loJsonLoc) * Any JSON value can be obtained as a string.. lcLatitude = loJsonLoc.StringOf("lat") ? "latitude = " + lcLatitude lcLongitude = loJsonLoc.StringOf("lng") ? "longitude = " + lcLongitude lcAccuracy = loJsonResp.StringOf("accuracy") ? "accuracy = " + lcAccuracy RELEASE loRest RELEASE loJson RELEASE loACellTowers RELEASE loOCellTower RELEASE loAWifi RELEASE loOPoint RELEASE loJsonResp RELEASE loJsonLoc |
© 2000-2025 Chilkat Software, Inc. All Rights Reserved.