Google blokeeris kahjuks paljude GSM-moodulite kasutajate jaoks 2-3 kuud tagasi ja kandis tasulisele alusele API asukoha määramiseks moodulile nähtavate mobiilimastide koordinaatide alusel. Seetõttu toodetakse SIM800 seeria mooduleid
Jätame vahele, kuidas Yandex saab mobiilimastide koordinaate, peamine on see, et saame seda tasuta teenust kasutada ja saada järgmised andmed: laiuskraad, pikkuskraad, kõrgus, samuti iga parameetri ligikaudne viga. Artikli põhieesmärk on anda lühike õpetus kiireks Yandex API-le üleminekuks, selle asemel, et Google'i teenust enam ei saada.
Allpool näitame näitena ainult mooduli asukoha laius- ja pikkuskraadi.
Nii et alustame
Kõigepealt peate lugema kasutajalepingut, mis asub aadressil:
Mine aadressile
Kirjutage saadud võti üles või salvestage muul viisil.
Pärast nende toimingute sooritamist on teil juurdepääs lehele
CURL-vormingus XML-päringu genereerimiseks Yandex.Locatori teenustele peate hankima teavet mooduli poolt "nähtavate" mobiilimastide kohta:
- riigikood – riigikood
- operaatoritunnus – mobiilivõrgu kood
- cellid – raku identifikaator
- lac – asukoha kood
Selle teabe saab moodulist, saates käsu 'AT+CNETSCAN'.
Moodulilt saadud info
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>
Oluline on märkida, et hiljem peate teisendama mooduli Cellid ja Lac vastuse andmed kuueteistkümnendsüsteemist kümnendsüsteemi.
Nüüd peame Yandexi serveriga ühenduse võtmiseks genereerima XML-andmed, mis seejärel ühendatakse üheks elemendiks.
andmetabel
Andmed
Kommentaar
xml=<ya_lbs_request><common><version>1.0</version><api_key>
...
See peaks sisaldama Yandexilt saadud 88-kohalist võtit
</api_key></common>
<gsm_cells>
<cell><countrycode>
250
Riigikood (MCC)
</countrycode><operatorid>
2
Operaatorkood (MNC)
</operatorid><cellid>
8453
Moodulilt saadud loendi esimese torni kärg, mis on teisendatud 16. alusega numbrist 10. alusega numbriks (moodulilt saadud väärtus on 2105)
</cellid><lac>
7838
Esimese torni Lac, samuti teisendatud 16. baasnumbrist 10. baasnumbriks (moodulilt saadud väärtus on 1E9E)
</lac></cell>
...
Lahtrisildiga ühendatud rühma saab korrata nii mitu korda, kui on konkreetse asukoha usaldusväärsuse suurendamiseks vaja
</gsm_cells>
<ip><address_v4>
10.137.92.60
Pärast GPRS-konteksti avamist võrgu poolt moodulile määratud IP-aadressi saab, saates moodulile käsu 'AT+SAPBR=2,1' - vt allpool
</address_v4></ip></ya_lbs_request>
See genereerib 1304 tähemärgi pikkuse XML-sõnumi järgmiselt:
Sõnum
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>
See teade on genereeritud Megafoni operaatori mobiilimastide andmete põhjal, seda saab täiendada andmetega, sealhulgas: teistes tornides, mis on moodulile nähtavad, saadi käsuga 'AT+CNETSCAN', et suurendada väljastatud koordinaatide usaldusväärsust.
Mooduliga töötamine ja hetkekoordinaatide saamine
AT-logi töö mooduliga
>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
Nii saime mooduli praegused koordinaadid: 60.0330963, 30.2484304.
Mobiilsidemastide kaudu saadetavate andmete arvu kasvades suureneb proportsionaalselt ka asukoha määramise täpsus.
Täpsemat teavet teenuse Yandex.Locator vastuse sisu ja vajalike andmete valiku kohta saate lugeda lingilt:
Järeldus
Loodan, et see materjal on arendajatele heaks abiks. Olen valmis teie küsimustele kommentaarides vastama.
Allikas: www.habr.com