В настоящее время тестируется HERE API для использования в приложении позиционирования GSM. Похоже, что триангуляция соты не происходит, но тогда почему можно передать несколько точек данных GSM в API?
Я пытался передать до 7 позиций соты GSM, но расчетное местоположение всегда заканчивается на одной изячеек и не близко к фактическому положению устройства.
###############################################################################
# cell tower info for HERE API
###############################################################################
here_cell_0 = {"cid": 17078,
"lac": 314,
"mcc": 234,
"mnc": 15,
"rxlevel": -52,
"nmr": [{"bsic": 18, "bcch": 25, "rxlevel": -52}]}
here_cell_1 = {"cid": 13491,
"lac": 165,
"mcc": 234,
"mnc": 15,
"rxlevel": -61,
"nmr": [{"bsic": 27, "bcch": 33, "rxlevel": -61}]}
here_cell_2 = {"cid": 16191,
"lac": 316,
"mcc": 234,
"mnc": 15,
"rxlevel": -62,
"nmr": [{"bsic": 38, "bcch": 26, "rxlevel": -62}]}
here_cell_3 = {"cid": 13492,
"lac": 165,
"mcc": 234,
"mnc": 15,
"rxlevel": -65,
"nmr": [{"bsic": 8, "bcch": 30, "rxlevel": -65}]}
here_cell_4 = {"cid": 18119,
"lac": 316,
"mcc": 234,
"mnc": 15,
"rxlevel": -65,
"nmr": [{"bsic": 35, "bcch": 36, "rxlevel": -65}]}
here_cell_5 = {"cid": 13564,
"lac": 165,
"mcc": 234,
"mnc": 15,
"rxlevel": -66,
"nmr": [{"bsic": 37, "bcch": 29, "rxlevel": -66}]}
here_cell_6 = {"cid": 17079,
"lac": 314,
"mcc": 234,
"mnc": 15,
"rxlevel": -69,
"nmr": [{"bsic": 41, "bcch": 37, "rxlevel": -69}]}
ALL_CELLS_HERE = [here_cell_0,here_cell_1,here_cell_2,here_cell_3,here_cell_4,here_cell_5,here_cell_6]
###############################################################################
# HERE API data
###############################################################################
# API KEY
APP_ID = ""
APP_CODE = ""
APP_ID_RESOURCE = "app_id=" + APP_ID
APP_CODE_RESOURCE = "app_code=" + APP_CODE
# position API
POS_BASE_URL = "https://pos.api.here.com/positioning/v1/locate"
POS_URL = POS_BASE_URL + "?" + APP_ID_RESOURCE + "&" + APP_CODE_RESOURCE
###############################################################################
# get positions of cells and estimated position
###############################################################################
CELL_COORDINATES = []
# get cell tower postions
for CELL in ALL_CELLS_HERE:
POST_BODY = {"gsm": [CELL]}
headers = {'Content-type': 'application/json'}
r = requests.post(url = POS_URL, json = POST_BODY, headers=headers)
if( r.status_code == 200):
data = r.json()
print(data)
CELL_COORDINATES.append(data)
else:
print("Request failed, status code: " + str(r.status_code) )
# get estimated position HERE API
POST_BODY = {"gsm": ALL_CELLS_HERE}
headers = {'Content-type': 'application/json'}
r = requests.post(url = POS_URL, json = POST_BODY, headers=headers)
if( r.status_code == 200):
ESTIMATED_COORDINATE_HERE_API = r.json()
print(ESTIMATED_COORDINATE_HERE_API)
else:
print("Request failed, status code: " + str(r.status_code) )
В настоящее время я так называю API.