Visual Basic 6.0
Visual Basic 6.0
Google Maps Geolocation Request
See more REST Examples
Demonstrates how make a Google Maps Geolocation REST API request.Chilkat Visual Basic 6.0 Downloads
Dim success As Long
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.
Dim rest As New ChilkatRest
' Connect to the Google API REST server.
Dim bTls As Long
bTls = 1
Dim port As Long
port = 443
Dim bAutoReconnect As Long
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
' }
' ]
' }
Dim json As New ChilkatJsonObject
success = json.AppendInt("homeMobileCountryCode",310)
success = json.AppendInt("homeMobileNetworkCode",260)
success = json.AppendString("radioType","gsm")
success = json.AppendString("carrier","T-Mobile")
Dim aCellTowers As New ChilkatJsonArray
success = json.AppendArray2("cellTowers",aCellTowers)
Dim oCellTower As New ChilkatJsonObject
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)
Dim aWifi As New ChilkatJsonArray
success = json.AppendArray2("wifiAccessPoints",aWifi)
Dim oPoint As New ChilkatJsonObject
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)
Dim responseJson As String
responseJson = rest.FullRequestString("POST","/geolocation/v1/geolocate",json.Emit())
If (rest.LastMethodSuccess = 0) Then
Debug.Print rest.LastErrorText
Exit Sub
End If
' When successful, the response code is 200.
If (rest.ResponseStatusCode <> 200) Then
' Examine the request/response to see what happened.
Debug.Print "response status code = " & rest.ResponseStatusCode
Debug.Print "response status text = " & rest.ResponseStatusText
Debug.Print "response header: " & rest.ResponseHeader
Debug.Print "response JSON: " & responseJson
Debug.Print "---"
Debug.Print "LastRequestStartLine: " & rest.LastRequestStartLine
Debug.Print "LastRequestHeader: " & rest.LastRequestHeader
Exit Sub
End If
json.EmitCompact = 0
Debug.Print "JSON request body: " & json.Emit()
' The JSON response should look like this:
' {
' "location": {
' "lat": 37.4248297,
' "lng": -122.07346549999998
' },
' "accuracy": 1145.0
' }
Debug.Print "JSON response: " & responseJson
Dim jsonResp As New ChilkatJsonObject
success = jsonResp.Load(responseJson)
Dim jsonLoc As New ChilkatJsonObject
success = jsonResp.ObjectOf2("location",jsonLoc)
' Any JSON value can be obtained as a string..
Dim latitude As String
latitude = jsonLoc.StringOf("lat")
Debug.Print "latitude = " & latitude
Dim longitude As String
longitude = jsonLoc.StringOf("lng")
Debug.Print "longitude = " & longitude
Dim accuracy As String
accuracy = jsonResp.StringOf("accuracy")
Debug.Print "accuracy = " & accuracy