Google, hanjakalna keur loba pamaké modul GSM, 2-3 sababaraha bulan kapengker diblokir sarta ditransfer ka dasar dibayar API pikeun nangtukeun lokasi dumasar kana koordinat munara sél katempo modul. Kusabab ieu, on SIM800 modul runtuyan dihasilkeun
Hayu urang skip kumaha Yandex narima koordinat tina munara sél, hal utama nyaéta yén urang bisa ngagunakeun layanan bébas ieu tur meunangkeun data handap: Lintang, Bujur, Altitude, kitu ogé kasalahan perkiraan pikeun tiap parameter. Tujuan utama tulisan nyaéta pikeun masihan tutorial pondok ngeunaan gancang ngalih kana API Yandex, tinimbang jasa anu henteu aya deui ti Google.
Di handap, sabagé conto, urang ngan ukur nunjukkeun lintang sareng bujur lokasi modul.
Ku kituna hayu urang ngamimitian
Mimiti anjeun kedah maca perjanjian pangguna anu aya di:
Pindah ka alamat
Tulis handap atawa lamun heunteu nyimpen konci anjeun nampi.
Saatos ngalengkepan léngkah-léngkah ieu, anjeun bakal ngagaduhan aksés kana halaman éta
Pikeun ngahasilkeun pamundut XML dina format cURL kana jasa Yandex.Locator, anjeun kedah kéngingkeun inpormasi ngeunaan menara sél "katingali" ku modul:
- kode nagara - kode nagara
- operatorid - kode jaringan mobile
- cellid - identifier sél
- lac - kode lokasi
Inpo ieu tiasa didapet tina modul ku ngirim paréntah 'AT + CNETSCAN'.
Inpormasi anu ditampi tina modul
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>
Kadé dicatet yén engké anjeun bakal kudu ngarobah data ti Cellid na Lac respon modul urang ti hexadecimal mun decimal.
Ayeuna urang kedah ngahasilkeun data XML pikeun ngahubungi server Yandex, anu salajengna bakal digabungkeun kana hiji unsur.
tabél data
data
komentar
xml=<ya_lbs_request><common><version>1.0</version><api_key>
...
Ieu kedah ngandung konci 88-angka anu ditampi ti Yandex
</api_key></common>
<gsm_cells>
<cell><countrycode>
250
Kode nagara (MCC)
</countrycode><operatorid>
2
Kode operator (MNC)
</operatorid><cellid>
8453
Cellid munara munggaran tina daptar anu ditampi tina modul sareng dirobih tina nomer anu nganggo dasar 16 ka angka anu nganggo dasar 10 (nilai anu ditampi tina modul nyaéta 2105)
</cellid><lac>
7838
Lac tina munara kahiji, ogé dirobah tina basa 16 angka ka base 10 angka (nilai nu narima ti modul nu 1E9E)
</lac></cell>
...
Grup anu dihijikeun ku tag sél tiasa diulang saloba-kali upami diperyogikeun pikeun ningkatkeun réliabilitas lokasi anu khusus.
</gsm_cells>
<ip><address_v4>
10.137.92.60
Alamat IP anu ditugaskeun ka modul ku jaringan saatos muka kontéks GPRS tiasa didapet ku ngirim paréntah 'AT + SAPBR = 2,1' ka modul - tingali di handap
</address_v4></ip></ya_lbs_request>
Ieu bakal ngahasilkeun pesen XML 1304 karakter salami ieu:
pesen
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>
Pesen ieu dibangkitkeun dumasar kana data dina menara sél operator Megafon, éta tiasa ditambah ku data, kalebet: on munara séjén ditingali ka modul narima maké paréntah 'AT + CNETSCAN' pikeun ngaronjatkeun reliabiliti koordinat dikaluarkeun.
Gawe sareng modul sareng kéngingkeun koordinat ayeuna
AT-log gawé kalawan modul
>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
Ku kituna, urang nampi koordinat ayeuna modul: 60.0330963, 30.2484304.
Nalika jumlah data anu dikirim via menara sél naék, akurasi tekad lokasi bakal ningkat sacara proporsional.
Inpormasi anu langkung rinci ngeunaan eusi réspon tina jasa Yandex.Locator sareng pilihan data anu anjeun peryogikeun tiasa dibaca dina tautan:
kacindekan
Abdi ngarepkeun bahan ieu bakal janten pitulung anu hadé pikeun pamekar. Abdi siap ngajawab patarosan anjeun dina komentar.
sumber: www.habr.com