https://www.youtube.com/watch?v=CN9ctgk62aw

/*********************************************************************
  This is the code for Fetching your location from Google Geolocation API
*********************************************************************/
#define BLYNK_PRINT Serial

#include <ESP8266WiFi.h>
#include <BlynkSimpleEsp8266.h>

#include <ESP8266HTTPClient.h>
#include <ArduinoJson.h>
#include "ESP8266WiFi.h"
char auth[] = "YourAuthToken";

// Your WiFi credentials.
// Set password to "" for open networks.
char ssid[] = "Don'ttakemyssid";
char pass[] = "forgetaboutthepassword";

WidgetMap myMap(V1);

//Credentials for Google GeoLocation API...
const char* Host = "www.googleapis.com";
String thisPage = "/geolocation/v1/geolocate?key=";
String key = "GooglegeolocationAPIKEY";

int status = WL_IDLE_STATUS;
String jsonString = "{\\n";

double latitude    = 0.0;
double longitude   = 0.0;
double accuracy    = 0.0;
int more_text = 1; // set to 1 for more debug output

BlynkTimer timer;

void loopgeo() {

  char bssid[6];
  DynamicJsonBuffer jsonBuffer;

  // WiFi.scanNetworks will return the number of networks found
  int n = WiFi.scanNetworks();

  // now build the jsonString...
  jsonString = "{\\n";
  jsonString += "\\"homeMobileCountryCode\\": 234,\\n"; // this is a real UK MCC
  jsonString += "\\"homeMobileNetworkCode\\": 27,\\n";  // and a real UK MNC
  jsonString += "\\"radioType\\": \\"gsm\\",\\n";         // for gsm
  jsonString += "\\"carrier\\": \\"Vodafone\\",\\n";      // associated with Vodafone
  jsonString += "\\"wifiAccessPoints\\": [\\n";
  for (int j = 0; j < n; ++j)
  {
    jsonString += "{\\n";
    jsonString += "\\"macAddress\\" : \\"";
    jsonString += (WiFi.BSSIDstr(j));
    jsonString += "\\",\\n";
    jsonString += "\\"signalStrength\\": ";
    jsonString += WiFi.RSSI(j);
    jsonString += "\\n";
    if (j < n - 1)
    {
      jsonString += "},\\n";
    }
    else
    {
      jsonString += "}\\n";
    }
  }
  jsonString += ("]\\n");
  jsonString += ("}\\n");
  //--------------------------------------------------------------------

  WiFiClientSecure client;

  //Connect to the client and make the api call

  if (client.connect(Host, 443)) {

    client.println("POST " + thisPage + key + " HTTP/1.1");
    client.println("Host: " + (String)Host);
    client.println("Connection: close");
    client.println("Content-Type: application/json");
    client.println("User-Agent: Arduino/1.0");
    client.print("Content-Length: ");
    client.println(jsonString.length());
    client.println();
    client.print(jsonString);
    delay(500);
  }

  //Read and parse all the lines of the reply from server
  while (client.available()) {
    String line = client.readStringUntil('\\r');
    if (more_text) {

    }
    JsonObject& root = jsonBuffer.parseObject(line);
    if (root.success()) {
      latitude    = root["location"]["lat"];
      longitude   = root["location"]["lng"];
      accuracy   = root["accuracy"];
    }
  }

  client.stop();
  int index = 1;
  float lat = latitude;
  float lon = longitude;
  Serial.println(lat);
  Serial.println(lon);
  myMap.location(index, lat, lon, accuracy);

}

void setup()   {
  Serial.begin(115200);
  Blynk.begin(auth, ssid, pass);

}

void loop() {
  Blynk.run();
  loopgeo();
}