Google, təəssüf ki, bir çox GSM modul istifadəçiləri üçün 2-3 ay əvvəl modul tərəfindən görünən mobil qüllələrin koordinatları ilə yeri müəyyən etmək üçün API-ni blokladı və ödənişli əsaslara köçürdü. Buna görə də, SIM800 seriyasının modullarında istehsal olunur
Yandex-in hüceyrə qüllələrinin koordinatlarını necə əldə etdiyini atlayaq, əsas odur ki, biz bu pulsuz xidmətdən istifadə edə bilərik və aşağıdakı məlumatları əldə edə bilərik: Enlem, Boylam, Hündürlük, həmçinin hər bir parametr üçün təxmini səhv. Məqalənin əsas məqsədi Google-dan artıq mövcud olmayan xidmət əvəzinə Yandex-dən API-yə necə tez keçmək barədə kiçik bir təlimat verməkdir.
Aşağıda, nümunə olaraq, yalnız modulun yerləşdiyi yerin eni və uzunluğu əldə ediləcəkdir.
Beləliklə, başlayaq
Əvvəlcə aşağıdakı ünvanda yerləşən istifadəçi müqaviləsini oxumalısınız:
Ünvana gedin
Qəbul edilmiş açarı yazın və ya başqa şəkildə yadda saxlayın.
Bu addımları tamamladıqdan sonra səhifəyə giriş əldə olunacaq.
Yandex.Locator xidmətlərinə cURL formatında XML sorğusu yaratmaq üçün modul tərəfindən “görünən” mobil qüllələr haqqında məlumat əldə etməlisiniz:
- ölkə kodu - ölkə kodu
- operatorid - mobil şəbəkə kodu
- cellid - hüceyrə identifikatoru
- lac - yer kodu
Bu məlumatı moduldan 'AT+CNETSCAN' əmrini göndərməklə əldə etmək olar.
Moduldan alınan məlumatlar
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>
Qeyd etmək vacibdir ki, gələcəkdə modulun Cellid və Lac haqqında cavabından verilənləri onaltılıq rəqəmdən onluq formata çevirmək lazım gələcək.
İndi Yandex serverinə daxil olmaq üçün XML məlumatları yaratmalıyıq ki, bu da daha sonra bir elementdə birləşdiriləcəkdir.
məlumat cədvəli
Məlumat
Qeyd
xml=<ya_lbs_request><common><version>1.0</version><api_key>
...
Bu Yandex-dən alınan 88 rəqəmli açarı ehtiva etməlidir
</api_key></common>
<gsm_cells>
<cell><countrycode>
250
Ölkə Kodu (MCC)
</countrycode><operatorid>
2
Operator Kodu (MNC)
</operatorid><cellid>
8453
Siyahıdakı birinci qüllənin hüceyrəsi moduldan alınmış və bazası 16 olan nömrədən 10 əsaslı rəqəmə çevrilmişdir (moduldan alınan dəyər 2105-dir)
</cellid><lac>
7838
Birinci qüllənin lakı, həmçinin 16 əsaslı nömrədən 10 əsaslı nömrəyə çevrildi (moduldan alınan dəyər 1E9E-dir)
</lac></cell>
...
Hüceyrə etiketi ilə birləşdirilən qrup, müəyyən bir yerin etibarlılığını artırmaq üçün lazım olan qədər təkrarlana bilər.
</gsm_cells>
<ip><address_v4>
10.137.92.60
GPRS kontekstini açdıqdan sonra şəbəkə tərəfindən modula təyin edilmiş IP ünvanı modula 'AT+SAPBR=2,1' əmrini göndərməklə əldə edilə bilər – aşağıya baxın
</address_v4></ip></ya_lbs_request>
Beləliklə, aşağıdakı formada 1304 simvol uzunluğunda XML mesajı yaradılacaq:
İsmarıc
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>
Bu mesaj Megafon operatorunun mobil qüllələrinin məlumat bazasında yaradılıb, o, daxil olmaqla məlumatlarla əlavə edilə bilər. çıxış koordinatlarının etibarlılığını artırmaq üçün 'AT + CNETSCAN' əmri ilə qəbul edilən modula görünən digər qüllələrdə.
Modulla işləmək və cari koordinatları əldə etmək
Modulla işin AT-loqu
>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
Beləliklə, modulun cari koordinatlarını əldə etdik: 60.0330963, 30.2484304.
Hüceyrə qüllələri tərəfindən göndərilən məlumatların sayının artması ilə yerləşdirmənin dəqiqliyi mütənasib olaraq artacaq.
Yandex.Locator xidmətindən verilən cavabın məzmunu və sizə lazım olan məlumatların seçilməsi haqqında daha ətraflı məlumatı linkdə tapa bilərsiniz:
Nəticə
Ümid edirəm ki, bu material tərtibatçılara yaxşı kömək olacaq. Şərhlərdə suallarınıza cavab verməyə hazırsınız.
Mənbə: www.habr.com