ГСМ услуга локације СИМ800к модула и њен рад са Иандек.Лоцатор АПИ-јем

ГСМ услуга локације СИМ800к модула и њен рад са Иандек.Лоцатор АПИ-јем

Гугл је, на несрећу многих корисника ГСМ модула, пре 2-3 месеца блокирао и на плаћену основу пренео АПИ за одређивање локације на основу координата ћелијских торњева видљивих модулу. Због тога се на СИМ800 серији производи модули СИМЦом бежична решења, функционалност команде АТ+ЦИПГСМЛОЦ је престала да ради. У овом чланку ћу вам рећи како можете да решите овај проблем коришћењем сличне услуге коју пружа Иандек - Иандек.Лоцатор.

Хајде да прескочимо како Иандек прима координате торњева, главна ствар је да можемо да користимо ову бесплатну услугу и добијемо следеће податке: географску ширину, дужину, надморску висину, као и приближну грешку за сваки параметар. Главна сврха чланка је да пружи кратак водич о брзом преласку на Иандек АПИ, уместо више недоступне услуге од Гоогле-а.

У наставку, као пример, приказаћемо само географску ширину и дужину локације модула.

Па хајде да почнемо

Прво морате да прочитате кориснички уговор који се налази на: иандек.ру/легал/лоцатор_апи. Посебну пажњу треба обратити на тачку 3.6. овог корисничког уговора у којем се наводи да Иандек задржава право да промени/исправи или ажурира Иандек.Лоцатор АПИ у било ком тренутку, без претходног обавештења..

Иди на адресу иандек.ру/дев/лоцатор/кеис/гет и додајте свој претходно креирани Иандек налог у развојну групу. Ови кораци ће вам омогућити да добијете кључ за приступ овој услузи.

ГСМ услуга локације СИМ800к модула и њен рад са Иандек.Лоцатор АПИ-јем
Запишите или на други начин сачувајте кључ који добијете.

Након што завршите ове кораке, имаћете приступ страници иандек.ру/дев/лоцатор/доц/дг/апи/геолоцатион-апи-доцпаге где су дате основне информације о механизму рада услуге Иандек.Лоцатор.

Да бисте генерисали КСМЛ захтев у цУРЛ формату за услуге Иандек.Лоцатор, мораћете да добијете информације о торњевима мобилне телефоније које модул „виде“:

  • код земље – код земље
  • операторид – код мобилне мреже
  • целлид – идентификатор ћелије
  • лац – шифра локације

Ове информације се могу добити из модула слањем команде 'АТ+ЦНЕТСЦАН'.

Информације примљене од модула

Operator:"MegaFon",MCC:250,MNC:02,Rxlev:59,Cellid:2105,Arfcn:96,Lac:1E9E,Bsic:31<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:54,Cellid:2107,Arfcn:18,Lac:1E9E,Bsic:3A<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:45,Cellid:10A9,Arfcn:97,Lac:1E9E,Bsic:11<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:41,Cellid:2108,Arfcn:814,Lac:1E9E,Bsic:1F<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:43,Cellid:5100,Arfcn:13,Lac:1E9E,Bsic:2B<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:39,Cellid:5102,Arfcn:839,Lac:1E9E,Bsic:1A<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:38,Cellid:2106,Arfcn:104,Lac:1E9E,Bsic:0A<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:37,Cellid:0FE7,Arfcn:12,Lac:1E9E,Bsic:24<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:44,Cellid:14C8,Arfcn:91,Lac:1E9E,Bsic:24<CR><LF>
Operator:"MegaFon",MCC:250,MNC:02,Rxlev:37,Cellid:04B3,Arfcn:105,Lac:1E9E,Bsic:3A<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:47,Cellid:29A0,Arfcn:70,Lac:39BA,Bsic:09<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:43,Cellid:0FDD,Arfcn:590,Lac:39BA,Bsic:09<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:44,Cellid:29A1,Arfcn:84,Lac:39BA,Bsic:10<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:40,Cellid:8F95,Arfcn:81,Lac:39BA,Bsic:03<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:43,Cellid:0FDF,Arfcn:855,Lac:39BA,Bsic:24<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:37,Cellid:299C,Arfcn:851,Lac:39BA,Bsic:17<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:37,Cellid:0FDE,Arfcn:852,Lac:39BA,Bsic:1B<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:35,Cellid:299F,Arfcn:72,Lac:39BA,Bsic:10<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:33,Cellid:28A5,Arfcn:66,Lac:396D,Bsic:25<CR><LF>
Operator:"Bee Line GSM",MCC:250,MNC:99,Rxlev:33,Cellid:2A8F,Arfcn:71,Lac:39BA,Bsic:23<CR><LF>
Operator:"MOTIV",MCC:250,MNC:20,Rxlev:46,Cellid:39D2,Arfcn:865,Lac:4D0D,Bsic:14<CR><LF>
Operator:"MOTIV",MCC:250,MNC:20,Rxlev:36,Cellid:09EE,Arfcn:866,Lac:4D0D,Bsic:25<CR><LF>
Operator:"MOTIV",MCC:250,MNC:20,Rxlev:28,Cellid:09ED,Arfcn:869,Lac:4D0D,Bsic:22<CR><LF>
Operator:"MOTIV",MCC:250,MNC:20,Rxlev:28,Cellid:09EF,Arfcn:861,Lac:4D0D,Bsic:17<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:66,Cellid:58FE,Arfcn:1021,Lac:00EC,Bsic:0A<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:50,Cellid:58FD,Arfcn:1016,Lac:00EC,Bsic:08<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:49,Cellid:58FF,Arfcn:1023,Lac:00EC,Bsic:09<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:46,Cellid:F93B,Arfcn:59,Lac:00EC,Bsic:20<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:50,Cellid:381B,Arfcn:1020,Lac:00EC,Bsic:0A<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:37,Cellid:3819,Arfcn:42,Lac:00EC,Bsic:08<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:34,Cellid:4C0F,Arfcn:43,Lac:00EC,Bsic:0A<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:33,Cellid:0817,Arfcn:26,Lac:00EC,Bsic:27<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:34,Cellid:3A5D,Arfcn:1017,Lac:00E9,Bsic:34<CR><LF>
Operator:"MTS",MCC:250,MNC:01,Rxlev:33,Cellid:3D05,Arfcn:1018,Lac:00EC,Bsic:1F<CR><LF>

Важно је напоменути да ћете касније морати да конвертујете податке из Целлид и Лац одговора модула из хексадецималног у децимални.

Сада морамо да генеришемо КСМЛ податке да бисмо контактирали Иандек сервер, који ће накнадно бити комбиновани у један елемент.

табела података

Подаци
Коментар

xml=<ya_lbs_request><common><version>1.0</version><api_key>

...
Ово би требало да садржи 88-цифрени кључ примљен од Иандек-а

</api_key></common>
<gsm_cells>
<cell><countrycode>
250

Код земље (МЦЦ)

</countrycode><operatorid>
2

Код оператера (МНЦ)

</operatorid><cellid>
8453

Ћелија прве куле са листе примљене од модула и конвертоване из броја са основом 16 у број са основом 10 (вредност примљена од модула је 2105)

</cellid><lac>
7838

Лац првог торња, такође конвертован из броја са базом 16 у број са базом 10 (вредност добијена од модула је 1Е9Е)

</lac></cell>
...

Група уједињена ознаком ћелије може се поновити онолико пута колико је потребно да би се повећала поузданост одређене локације

</gsm_cells>
<ip><address_v4>
10.137.92.60

ИП адреса коју је мрежа доделила модулу након отварања ГПРС контекста може се добити слањем команде 'АТ+САПБР=2,1' модулу - види испод

</address_v4></ip></ya_lbs_request>

Ово ће генерисати КСМЛ поруку дужине 1304 карактера на следећи начин:

Порука

xml=<ya_lbs_request><common><version>1.0</version><api_key>{здесь необходимо указать свой ключ}</api_key></common><gsm_cells><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>8453</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>8455</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>4265</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>8456</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>20736</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>20738</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>8454</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>4071</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>5320</cellid><lac>7838</lac></cell><cell><countrycode>250</countrycode><operatorid>2</operatorid><cellid>1203</cellid><lac>7838</lac></cell></gsm_cells><ip><address_v4>10.137.92.60</address_v4></ip></ya_lbs_request>

Ова порука се генерише на основу података о торњевима мобилне телефоније оператера Мегафон, може се допунити подацима, укључујући: на другим торњевима видљивим модулу који је примљен помоћу команде 'АТ+ЦНЕТСЦАН' ради повећања поузданости издатих координата.

Рад са модулом и добијање тренутних координата

АТ-лог рада са модулом

>AT+SAPBR=3,1,”Contype”,”GPRS” // конфигурирование профиля доступа в Интернет
<OK
>AT+SAPBR=3,1,”APN”,”internet” // конфигурирование APN 
<OK
>AT+SAPBR=1,1 // запрос на открытие GPRS контекста
<OK // контекст открыт
>AT+SAPBR=2,1 // запрос текущего IP адреса присвоенного оператором сотовой связи
<+SAPBR: 1,1,”10.137.92.60” // данный IP адрес потребуется вставить в XML-сообщение
<
<OK
>AT+HTTPINIT
<OK
>AT+HTTPPARA=”CID”,1
<OK
>AT+HTTPPARA=”URL”,”http://api.lbs.yandex.net/geolocation”
<OK
>AT+HTTPDATA=1304,10000 // первое число – длина сформированного XML-сообщения
<DOWNLOAD // приглашение к вводу XML-сообщения
< // вводим сформированное нами XML-сообщение
<OK
>AT+HTTPACTION=1
<OK
<
<+HTTPACTION: 1,200,303 // 200 – сообщение отправлено, 303 – получено 303 байт данных
>AT+HTTPREAD=81,10
<+HTTPREAD: 10
<60.0330963 // широта на которой расположен модуль
<OK
>AT+HTTPREAD=116,10
<+HTTPREAD: 10
<30.2484303 // долгота на которой расположен модуль
>AT+HTTPTERM
<OK

Тако смо добили тренутне координате модула: 60.0330963, 30.2484304.
Како се повећава број података који се шаљу преко торњева мобилне телефоније, тачност одређивања локације ће се пропорционално повећати.

Детаљније информације о садржају одговора услуге Иандек.Лоцатор и одабиру података који су вам потребни можете прочитати на линку: иандек.ру/дев/лоцатор/доц/дг/апи/кмл-репли-доцпаге, у одељку АПИ->КСМЛ->Респонсе

Закључак

Надам се да ће овај материјал бити добра помоћ програмерима. Спреман сам да одговорим на ваша питања у коментарима.

Извор: ввв.хабр.цом

Додај коментар