Sample code for 30+ languages & platforms
VB.NET

Google Maps Geolocation Request

See more REST Examples

Demonstrates how make a Google Maps Geolocation REST API request.

Chilkat VB.NET Downloads

VB.NET
Dim success As Boolean = False

' 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 Chilkat.Rest

' Connect to the Google API REST server.
Dim bTls As Boolean = True
Dim port As Integer = 443
Dim bAutoReconnect As Boolean = True
success = rest.Connect("www.googleapis.com",port,bTls,bAutoReconnect)

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

' Add your API key as a query parameter
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 Chilkat.JsonObject
json.AppendInt("homeMobileCountryCode",310)
json.AppendInt("homeMobileNetworkCode",260)
json.AppendString("radioType","gsm")
json.AppendString("carrier","T-Mobile")

Dim aCellTowers As New Chilkat.JsonArray
json.AppendArray2("cellTowers",aCellTowers)

Dim oCellTower As New Chilkat.JsonObject
aCellTowers.AddObjectAt2(0,oCellTower)
oCellTower.AppendInt("cellId",39627456)
oCellTower.AppendInt("locationAreaCode",40495)
oCellTower.AppendInt("mobileCountryCode",310)
oCellTower.AppendInt("mobileNetworkCode",260)
oCellTower.AppendInt("age",0)
oCellTower.AppendInt("signalStrength",-95)

Dim aWifi As New Chilkat.JsonArray
json.AppendArray2("wifiAccessPoints",aWifi)

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

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

Dim responseJson As String = rest.FullRequestString("POST","/geolocation/v1/geolocate",json.Emit())
If (rest.LastMethodSuccess = False) Then
    Debug.WriteLine(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.WriteLine("response status code = " & rest.ResponseStatusCode)
    Debug.WriteLine("response status text = " & rest.ResponseStatusText)
    Debug.WriteLine("response header: " & rest.ResponseHeader)
    Debug.WriteLine("response JSON: " & responseJson)
    Debug.WriteLine("---")
    Debug.WriteLine("LastRequestStartLine: " & rest.LastRequestStartLine)
    Debug.WriteLine("LastRequestHeader: " & rest.LastRequestHeader)
    Exit Sub
End If


json.EmitCompact = False
Debug.WriteLine("JSON request body: " & json.Emit())

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

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

Dim jsonResp As New Chilkat.JsonObject
jsonResp.Load(responseJson)

Dim jsonLoc As New Chilkat.JsonObject
jsonResp.ObjectOf2("location",jsonLoc)

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

Dim accuracy As String = jsonResp.StringOf("accuracy")
Debug.WriteLine("accuracy = " & accuracy)