Я использую Google Geolocation API для приблизительного определения местоположения на основе видимых вышек сотовой связи. Однако я всегда получаю одно и то же местоположение в качестве результата.
Используя следующее тело:
{
"considerIp": false,
"radioType": "lte",
"cellTowers": [{
"signalStrength": -78,
"cellId": 133978007,
"mobileNetworkCode": 410,
"mobileCountryCode": 310,
"locationAreaCode": 27196
}]
}
Создает следующий результат: {"location": {"lat": 31.968598800000002, "lng": -99.9018131}, "accuracy": 1457406}
Фактическое местоположение эта башня / клетка составляет приблизительно (32,783062, 96,795769). Фактически, указанная вышка ячейки берется непосредственно из базы данных OpenCellID (opencellid.org)
Если я затем выберу башню в другом месте (например, Пало-Альто)
{
"considerIp": false,
"radioType": "lte",
"cellTowers": [{
"signalStrength": -78,
"cellId": 84785686,
"mobileNetworkCode": 480,
"mobileCountryCode": 311,
"locationAreaCode": 7943
}]
}
Ответ: {"location": {"lat": 31.968598800000002, "lng": -99.9018131}, "accuracy": 1457406}
, что точно так же.
Если я смогу опубликовать свой c IP (через изменение местоположения конечной точки VPN), результаты действительно изменятся. Используя тот же запрос Пало-Альто, но переходя от конечного узла Техас к Чике go, мой результат изменяется на: {"location": {"lat": 37.09024, "lng": -95.712891}, "accuracy": 1488703}
Похоже, что аргумент deere = ложно игнорируется и используется только вместо предоставленной вышки сотовой связи.
Есть идеи как это исправить? Спасибо!