Google Geolocation возвращает разные результаты в зависимости от того, где я запускаю запрос - PullRequest
0 голосов
/ 21 октября 2019

Я не могу понять, почему служба геолокации Google дает мне разные координаты в зависимости от того, где я выполняю запрос.

Для тестирования я использовал почтальон, установленный на моем компьютере, на тестовом сервере и на рабочем сервере. и от каждого я получаю разные координаты.

Это мой код:

    RestClient client = new RestClient($"https://www.googleapis.com/geolocation/v1/geolocate");

RestRequest request = new RestRequest(Method.POST);
request.RequestFormat = DataFormat.Json;
request.AddParameter("key", _googleMapsApiKey, ParameterType.QueryString);

request.AddParameter("homeMobileCountryCode", gsmCellInfo.MobileCountryCode, ParameterType.RequestBody);
request.AddParameter("homeMobileNetworkCode", gsmCellInfo.MobileNetworkCode, ParameterType.RequestBody);
request.AddParameter("considerIp", false, ParameterType.RequestBody);

var cellTowers = new Dictionary<string, object>();
cellTowers.Add("cellId ", gsmCellInfo.CellIdentifier);
cellTowers.Add("locationAreaCode", gsmCellInfo.LocationAreaCode);
cellTowers.Add("mobileCountryCode", gsmCellInfo.MobileCountryCode);
cellTowers.Add("mobileNetworkCode", gsmCellInfo.MobileNetworkCode);

JsonObject o = new JsonObject();

foreach (var cellTower in cellTowers)
{
    o.Add(cellTower);
}

JsonArray arr = new JsonArray();
arr.Add(o);

request.AddParameter("cellTowers", arr.ToString(), ParameterType.RequestBody);

IRestResponse response = client.Execute(request);

JObject ob = JObject.Parse(response.Content);

JsonSerializer serializer = new JsonSerializer();
GoogleGeoLocationResult googleGeoLocationResult = (GoogleGeoLocationResult)serializer.Deserialize(new JTokenReader(ob), typeof(GoogleGeoLocationResult));

if (response.StatusCode == HttpStatusCode.OK)
{
    coordinatesData.Latitude = Convert.ToString(googleGeoLocationResult.Location.Latitude, CultureInfo.InvariantCulture);
    coordinatesData.Longitude = Convert.ToString(googleGeoLocationResult.Location.Longitude, CultureInfo.InvariantCulture);

    WriteToLog(LogType.INFO, $"Coordinates using gsm cell info ({gsmCellInfo.ToString()}) [RETRIEVED] -> Lat {coordinatesData.Latitude} - Long {coordinatesData.Longitude}", LogTableType.TRACKER_LOG);

}
else
    WriteToLog(LogType.ERROR, $"GetGpsCoordinatesFromGsmCellInformations Error -> [{gsmCellInfo.ToString()}] - {googleGeoLocationResult
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...