React Native Requires Chilkat v11.1.0+
React Native
Google Maps Geolocation Request
See more REST Examples
Demonstrates how make a Google Maps Geolocation REST API request.Chilkat React Native Downloads
import { JsonArray, JsonObject, Rest } from '@chilkat/react-native'
async function chilkatExample() {
// 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.
const rest = new Rest();
// Connect to the Google API REST server.
const bTls = true;
const port = 443;
const bAutoReconnect = true;
await rest.connectAsync('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
// }
// ]
// }
const json = new JsonObject();
json.appendInt('homeMobileCountryCode', 310);
json.appendInt('homeMobileNetworkCode', 260);
json.appendString('radioType', 'gsm');
json.appendString('carrier', 'T-Mobile');
const aCellTowers = new JsonArray();
json.appendArray2('cellTowers', aCellTowers);
const oCellTower = new 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);
const aWifi = new JsonArray();
json.appendArray2('wifiAccessPoints', aWifi);
const oPoint = new 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);
let responseJson: string;
try {
responseJson = await rest.fullRequestStringAsync('POST', '/geolocation/v1/geolocate', json.emit());
} catch {
console.log(rest.lastErrorText);
return;
}
// When successful, the response code is 200.
if (rest.responseStatusCode !== 200) {
// Examine the request/response to see what happened.
console.log(`response status code = ${rest.responseStatusCode}`);
console.log(`response status text = ${rest.responseStatusText}`);
console.log(`response header: ${rest.responseHeader}`);
console.log(`response JSON: ${responseJson}`);
console.log('---');
console.log(`LastRequestStartLine: ${rest.lastRequestStartLine}`);
console.log(`LastRequestHeader: ${rest.lastRequestHeader}`);
return;
}
json.emitCompact = false;
console.log(`JSON request body: ${json.emit()}`);
// The JSON response should look like this:
// {
// "location": {
// "lat": 37.4248297,
// "lng": -122.07346549999998
// },
// "accuracy": 1145.0
// }
console.log(`JSON response: ${responseJson}`);
const jsonResp = new JsonObject();
jsonResp.load(responseJson);
const jsonLoc = new JsonObject();
jsonResp.objectOf2('location', jsonLoc);
// Any JSON value can be obtained as a string..
const latitude = jsonLoc.stringOf('lat');
console.log(`latitude = ${latitude}`);
const longitude = jsonLoc.stringOf('lng');
console.log(`longitude = ${longitude}`);
const accuracy = jsonResp.stringOf('accuracy');
console.log(`accuracy = ${accuracy}`);
}