Sample code for 30+ languages & platforms
VBScript Requires Chilkat v11.1.0+

Google Maps Geolocation Request

See more REST Examples

Demonstrates how make a Google Maps Geolocation REST API request.

Chilkat VBScript Downloads

VBScript
Dim fso, outFile
Set fso = CreateObject("Scripting.FileSystemObject")
'Create a Unicode (utf-16) output text file.
Set outFile = fso.CreateTextFile("output.txt", True, True)

success = 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.

set rest = CreateObject("Chilkat.Rest")

'  Connect to the Google API REST server.
bTls = 1
port = 443
bAutoReconnect = 1
success = rest.Connect("www.googleapis.com",port,bTls,bAutoReconnect)

'  Add the Content-Type request header.
success = rest.AddHeader("Content-Type","application/json")

'  Add your API key as a query parameter
success = rest.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
'    }
'   ]
'  }

set json = CreateObject("Chilkat.JsonObject")
success = json.AppendInt("homeMobileCountryCode",310)
success = json.AppendInt("homeMobileNetworkCode",260)
success = json.AppendString("radioType","gsm")
success = json.AppendString("carrier","T-Mobile")

set aCellTowers = CreateObject("Chilkat.JsonArray")
success = json.AppendArray2("cellTowers",aCellTowers)

set oCellTower = CreateObject("Chilkat.JsonObject")
success = aCellTowers.AddObjectAt2(0,oCellTower)
success = oCellTower.AppendInt("cellId",39627456)
success = oCellTower.AppendInt("locationAreaCode",40495)
success = oCellTower.AppendInt("mobileCountryCode",310)
success = oCellTower.AppendInt("mobileNetworkCode",260)
success = oCellTower.AppendInt("age",0)
success = oCellTower.AppendInt("signalStrength",-95)

set aWifi = CreateObject("Chilkat.JsonArray")
success = json.AppendArray2("wifiAccessPoints",aWifi)

set oPoint = CreateObject("Chilkat.JsonObject")
success = aWifi.AddObjectAt2(0,oPoint)
success = oPoint.AppendString("macAddress","01:23:45:67:89:AB")
success = oPoint.AppendInt("signalStrength",8)
success = oPoint.AppendInt("age",0)
success = oPoint.AppendInt("signalToNoiseRatio",-65)
success = oPoint.AppendInt("channel",8)

success = aWifi.AddObjectAt2(1,oPoint)
success = oPoint.AppendString("macAddress","01:23:45:67:89:AC")
success = oPoint.AppendInt("signalStrength",4)
success = oPoint.AppendInt("age",0)

responseJson = rest.FullRequestString("POST","/geolocation/v1/geolocate",json.Emit())
If (rest.LastMethodSuccess = 0) Then
    outFile.WriteLine(rest.LastErrorText)
    WScript.Quit
End If

'  When successful, the response code is 200.
If (rest.ResponseStatusCode <> 200) Then
    '  Examine the request/response to see what happened.
    outFile.WriteLine("response status code = " & rest.ResponseStatusCode)
    outFile.WriteLine("response status text = " & rest.ResponseStatusText)
    outFile.WriteLine("response header: " & rest.ResponseHeader)
    outFile.WriteLine("response JSON: " & responseJson)
    outFile.WriteLine("---")
    outFile.WriteLine("LastRequestStartLine: " & rest.LastRequestStartLine)
    outFile.WriteLine("LastRequestHeader: " & rest.LastRequestHeader)
    WScript.Quit
End If

json.EmitCompact = 0
outFile.WriteLine("JSON request body: " & json.Emit())

'  The JSON response should look like this:
'  { 
'   "location": {
'    "lat": 37.4248297,
'    "lng": -122.07346549999998
'   },
'   "accuracy": 1145.0
'  }

outFile.WriteLine("JSON response: " & responseJson)

set jsonResp = CreateObject("Chilkat.JsonObject")
success = jsonResp.Load(responseJson)

set jsonLoc = CreateObject("Chilkat.JsonObject")
success = jsonResp.ObjectOf2("location",jsonLoc)

'  Any JSON value can be obtained as a string..
latitude = jsonLoc.StringOf("lat")
outFile.WriteLine("latitude = " & latitude)
longitude = jsonLoc.StringOf("lng")
outFile.WriteLine("longitude = " & longitude)

accuracy = jsonResp.StringOf("accuracy")
outFile.WriteLine("accuracy = " & accuracy)

outFile.Close