Google, тилекке каршы, GSM модулдарынын көптөгөн колдонуучулары үчүн 2-3 ай мурун модулга көрүнгөн уюлдук мунаралардын координаттарынын негизинде жайгашкан жерди аныктоо үчүн API'ны блоктоп, акы төлөнүүчү негизде өткөрүп берген. Ушундан улам SIM800 сериясындагы модулдар өндүрүлгөн
Келгиле, Яндекс уюлдук мунаралардын координаттарын кантип кабыл аларын өткөрүп жиберели, эң негизгиси, биз бул бекер кызматты колдонуп, төмөнкү маалыматтарды ала алабыз: Кеңдик, Узундук, Бийиктик, ошондой эле ар бир параметр боюнча болжолдуу ката. Макаланын негизги максаты - Google'дун жеткиликтүү болбой калган кызматынын ордуна, Yandex API'ге тез өтүү боюнча кыскача окуу куралы.
Төмөндө, мисал катары, модулдун жайгашкан жеринин кеңдигин жана узундугун гана көрсөтөбүз.
Ошентип, баштайлы
Адегенде төмөнкү даректе жайгашкан колдонуучу келишимин окуп чыгышыңыз керек:
Дарекке барыңыз
Сиз алган ачкычты жазыңыз же башка жол менен сактаңыз.
Бул кадамдарды аткаргандан кийин, сиз баракка кире аласыз
Яндекс.Локатор кызматтарына cURL форматында XML суроо-талапты түзүү үчүн сиз модулдун жардамы менен "көрүнүүчү" уюлдук мунаралар жөнүндө маалыматты алышыңыз керек:
- өлкөнүн коду – өлкөнүн коду
- operatorid – мобилдик тармактын коду
- cellid – клетканын идентификатору
- lac - жайгашкан жер коду
Бул маалыматты модулдан 'AT+CNETSCAN' буйругун жөнөтүү аркылуу алса болот.
Модулдан алынган маалымат
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>
Белгилей кетчү нерсе, кийинчерээк сиз модулдун Cellid жана Lac жоопторундагы маалыматтарды он алтылыктан ондукка айландырышыңыз керек болот.
Эми биз Яндекс сервери менен байланышуу үчүн XML маалыматтарын түзүшүбүз керек, алар кийинчерээк бир элементке бириктирилет.
маалымат таблицасы
маалымат
түшүндүрмө
xml=<ya_lbs_request><common><version>1.0</version><api_key>
...
Бул Яндекстен алынган 88 орундуу ачкычты камтышы керек
</api_key></common>
<gsm_cells>
<cell><countrycode>
250
Өлкө коду (MCC)
</countrycode><operatorid>
2
Оператор коду (MNC)
</operatorid><cellid>
8453
Тизмеден биринчи мунаранын клеткасы модулдан алынган жана базасы 16 болгон сандан 10 базасы бар санга айландырылган (модульден алынган маани 2105)
</cellid><lac>
7838
Биринчи мунаранын лак, ошондой эле базалык 16 сандан 10 базалык санга айландырылган (модулдан алынган маани 1E9E)
</lac></cell>
...
Клетка теги менен бириктирилген топ белгилүү бир жердин ишенимдүүлүгүн жогорулатуу үчүн зарыл болушунча көп жолу кайталанышы мүмкүн
</gsm_cells>
<ip><address_v4>
10.137.92.60
GPRS контексти ачылгандан кийин тармак тарабынан модулга ыйгарылган IP дарегин модулга 'AT+SAPBR=2,1' буйругун жөнөтүү аркылуу алууга болот - төмөндө караңыз
</address_v4></ip></ya_lbs_request>
Бул төмөнкүдөй узундугу 1304 белгиден турган XML билдирүүсүн жаратат:
билдирүү
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>
Бул билдирүү Megafon операторунун уюлдук мунаралары жөнүндө маалыматтардын негизинде түзүлөт, ал маалыматтар менен толукталышы мүмкүн, анын ичинде: Берилген координаттардын ишенимдүүлүгүн жогорулатуу үчүн 'AT+CNETSCAN' буйругун колдонуу менен алынган модулга көрүнгөн башка мунараларда.
Модуль менен иштөө жана учурдагы координаттарды алуу
AT-модул менен иштөө журналы
>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.
Уюлдук мунаралар аркылуу жөнөтүлгөн маалыматтардын саны өскөн сайын, жайгашкан жерди аныктоонун тактыгы пропорционалдуу түрдө жогорулайт.
Яндекс.Локатор кызматынан келген жооптун мазмуну жана керектүү маалыматтарды тандоо тууралуу кененирээк маалыматты шилтемеден окуй аласыз:
жыйынтыктоо
Бул материал иштеп чыгуучуларга жакшы жардам берет деп ишенем. Мен комментарийлерде суроолоруңузга жооп берүүгө даярмын.
Source: www.habr.com