|
|
Dezbaterea nu este, GPS - chestii misto, dar ce se întâmplă dacă destinatarul nu este la îndemână? Nu toată lumea are un cip încorporat în telefoane mobile. Da, şi proprietarul de masina nu au timp pentru a obţine de navigare aparat. Deci, cum e posibil? Excepţia rare exotice şi de opţiuni, de trei feluri:
Definiţi IP şi utilizând o bază de date specială pentru a identifica oraş în care există, şi de multe ori - de latitudine şi longitudine. Determina locaţia unui număr de staţii de bază sunt GSM / UMTS. Este posibil în cazul în care există o bază de date de identificare turnuri si coordonatele lor. Utiliza pentru a calcula de latitudine şi longitudine în apropiere de informaţii despre punctele de acces Wi-Fi, referindu-se la cererea lor, la caracteristicile speciale ale server. Să înceapă cu cea mai uşoară.
IP pentru a ne ajuta
Când am nevoie să vă verificaţi externe IP, pentru a fi siguri, de exemplu, pe care le-am inclus un reprezentant sau VPN, mereu am utiliza serviciul ip2location.com. Este îmbucurător faptul că, în plus faţă de IP-adresa de informaţii este afişat pe furnizor, amplasarea (oraş, ţară, de stat) ... şi, adesea, mai multe coordonate. Desigur, baza de date nu vor fi specificate de latitudine şi longitudine pentru normal client servicii de Internet. În mod obişnuit, în care datele sunt afisate pe furnizor şi, mai rar - pentru companiile mari, cu intervale mari de IP static. Se pare că, prin conectare la reţea (de exemplu, printr-un hotspot public, sau pur şi simplu cu ajutorul unui calculator), este mult mai probabil pentru a determina locaţia aproximative unde esti. Desigur, un mod primitiv - şi, într-adevăr, cele mai inexacte de toate prezentate în acest articol. Pe de altă parte, este o şansă reală de a determina locaţia, doar deschide o pagină de pe Internet. Şi dacă svarganit speciale tracker, instalaţi-l pe PDA şi monitoriza IP-shniki pe care le obţine în legătură pentru a deschide WiFi-reţele, de fapt, apoi calcula circulaţie devaysa.
Folosiţi acest serviciu în formă pură - şi anume, trecând de la browser-ului, făcând clic pe ip2location.com, plictisitor şi bespontovo. Locatia de pe harta nu se vedea jurnalul nu este reţinut, iar pagina este prea grea pentru mobil Ineta - în cel mai scurt, nu este modul nostru. De la serviciu, avem nevoie de doar una - de bază se potriveşte cu diferite adrese de IP-locaţia, care oferă ip2location cumpărare de bani destul de rezonabil. Este similar cu cel de baza de rapid pentru a rula vareznym torrent portaluri şi, în două versiuni:. CV-uri (text) şi. Bin (binar). De la această bază pot fi cu uşurinţă închişi orice aplicaţie în sine. Adevarul este ca, adresa de IP-în baza de date sunt stocate în format digital, fără puncte şi separarea octets, dar următoarele PHP-funcţia va ajuta de a duce o normală IP-shnik dorit să reţineţi:
function Dot2LongIP ($IPaddr) { if ($IPaddr == "" { return 0; } else { $ips = split ("\.", "$IPaddr" ; return ($ips[3] + $ips[2] * 256 + $ips[1] * 256 * 256 + $ips[0] * 256 * 256 * 256); } }
Cu o astfel de cheie pentru a adresa, nu a găsit corespunzător coordonate într-o bază de date de tip text. Dacă, totuşi, de bază vor fi în BIN-format, de sarcină şi mai uşor. Pentru Perl, C, Python, PHP, Ruby, C #, VB.NET, Java, Visual Basic serviciu gata pregătit-inuri (http://www.ip2location.com/developers.aspx), care pot fi uşor de utilizat în proiectul dumneavoastra. În caz de PHP pentru a arunca la locul de modul IP2Location.inc.php şi de a crea un simplu skriptik:
<?php include("IP2Location.inc.php" ; $ip = IP2Location_open("samples/IP-COUNTRY-SAMPLE.BIN", IP2LOCATION_STANDARD); $record = IP2Location_get_all($ip, "_IP-АДРЕС_" ; echo "$record->country_long : " . $record->country_long; echo "$record->city : " . $record->city; echo "$record->isp : " . $record->isp; echo "$record->latitude : " . $record->latitude; echo "$record->longitude : " . $record->longitude; IP2Location_close($ip); ?>
Puteţi pune pur şi simplu de pe ecran, de conectare, sau afişată pe hartă folosind Google Maps, care trece de latitudine şi longitudine ca parametru:
http://maps.google.com/maps?f=l&hl=en&q = 'interogare + +' & apropiat = '+ str. (lat )+','+ str. (GNL) +' & ie = UTF8 & z = 12 & om = 1
Folosind un turn de telefonie mobilă!
Veche legendă care serviciile secrete pot gasi un om pe un semnal de la telefonul său mobil - una din acele cazuri în care acesta este, de fapt, aşa este. Da ce speciale, în cazul în care acesta este capabil chiar un program gratuit Google Maps (www.google.com / GMM).
De fapt, ea este o interfaţă de convenabil de acces la aceleaşi servicii Web, vă permite să vizionaţi fotografii din satelit, localizare, topografie, şi - în multe cazuri - o carte cu posibilitatea de a pregăti trasee. Cred că, de a lua în considerare acoperiş din casa lui prin maps.google.com încercat totul. Lucrul cu un astfel de site-ul prin intermediul unui browser-ul de pe telefonul mobil (chiar dacă foarte înalt Opera Mini) este extrem de dificil, este de la Google, va veni cu ceva, a făcut o interfaţă convenabilă pentru vizualizare hărţi. Aranjat-o ca o anexă la o varietate de platforme - de la convenţional mobil Java de sprijin, pentru a smartphone-uri şi în comunicare de pe Windows Mobile şi Symbian S60 3a Edition, BlackBerry de prestigiu, şi acum android, pentru care nu suntem obişnuiţi să, dar în curând va văzut ca unul dintre principalele platforme pentru telefon. În acelaşi iPhone Google Maps este construită în mod implicit. Deci, în afară de un convenabil de vizionare aceste hărţi şi imagini prin satelit, de utilitate este un minunat butonul «locaţia mea». Cu un singur clic - şi de pe hartă indică locaţia de la telefon. Da, pentru proprietarii de tuburi cu GPS-ul este o prostie suschaya: găsi surpriza! Dar trebuie să ne vedem fata de cei care îşi văd de locaţie de pe ecran, cu toate că nu navigaţie priblud acestea nu au fost în помине! Cu toate acestea, se pare că numai aşa.
Telefon receptor este întotdeauna în raza de acţiune a cel puţin o staţie de bază de reţea. Ei bine, dacă există sau nu -, dar în acest caz este de a utiliza nu mai mult de o caramida. Orice de staţii de bază are un set de parametri, care primeşte telefon - BS, astfel, fiecare poate fi recunoscut. Unul dintre aceşti parametri - CellID (abreviată ca CID) - un număr unic pentru fiecare celulă, având în vedere de către operator. Cunoscându-l, aveţi posibilitatea să recunoască staţie de bază, precum şi cunoaşterea locaţie de staţie de bază, puteţi înţelege locul în care vă aflaţi. Precizia variază de la câteva sute de metri de mai multe kilometri, dar un bun punct de pornire pentru a se ocupa de coordonate.
Deci, cu prezenţa în farfurie, în cazul în care în fiecare staţie de bază vor fi comparate amplasarea, puteţi calcula aproximativ poziţia apelantului. Şi, dacă Google Maps poate, de asemenea, identifica locaţia famously umane, el este de asemenea o bază de date. Dar unde? Locatia de staţii de bază din diferite operatorii - şi nu lăsaţi în secret, dar este puţin probabil, pentru a deschide informaţii. Chiar şi, dată fiind amploarea proiectelor Google, cu greu pot crede că a convenit cu toţi operatorii de comunicaţii celulare - lucrări de poziţionare oriunde (Noţiuni de bază în perspectivă, am spus că pentru a vorbi «pot lucra oriunde in»). Răspunsul este ascuns în acordul de licenţă în timpul programului de instalare, pentru care noi, desigur, şi a marcat imediat clic «Sunt de acord" . Dar acolo, în alb şi negru spune că, ţinând de acord, ne va permite acest program pentru a trimite în mod anonim la server de informaţii cu privire la locaţia curentă şi informaţii cu privire la celulare turnuri din apropiere. Da! Baza de date exemplar coordonate de staţii de bază aduce pentru utilizatori, Google, Google Maps, cu telefoane la bord şi în comunicare construit receptor GPS. Şi asta este super: Chiar cu renunţarea completă a utilizării atât formale şi informale (colectate de entuziaşti cu scanere speciale - mai multe detalii în cutie), cu locaţia de staţii de bază, o funcţie pentru a determina locaţia de lucru privind «noroc». Verificaţi-vă.
GSM-navigare propriile mâini
Capacitatea de a vedea în poziţia sa -, în sine, bine, dar f puteţi renunţa la tentaţia de a folosi Google Base, pentru profit? Cum iti place ideea de a crea propriile lor tracker, ceea ce determină un curent de locaţie a BC, si da-l la serverul nostru? Edaky bug mijloace de telefon care lucrează oriunde, oricând!
Compania nu a dezvălui protocolul interacţiunii dintre Google Maps, nu publicarea API, dar acesta poate fi expus, doar prosnifav trafic şi reversnuv parte din cod. În plus faţă de http-cererea de a încărca hărţi, arată clar că programul trimite cererile de http://www.google.com/glm/mmap, exact atunci când utilizatorul doreşte să obţină curentă. Asta e prins noastre skriptik - ca a trecut la parametrii tehnici de valoarea staţie de bază: MCC, MNC, LAC şi CellID.
MCC - codul de ţară (de Rusia - 250) MNC - reţea de cod (MTS - 01, Megafon - 02, Beeline - 99, etc) LAC - prefixul local (cu alte cuvinte, de statii de agregate de bază operat de un controller) CellID (CID) - identificatorul constă dintr-un număr de staţii de bază şi sectoare
Ştiind că în cazul în care, pentru a trimite date, aceste valori sunt stânga pentru a obţine! Cel mai simplu mod - în mod direct în Google Maps mergi la «Ajutor», acolo clicaţi «general», şi la sfârşitul acestei pagini pentru a fi în conformitate cu parametri de o myl: MCC: MNC: LAC: CellID. În cazul în care mai mult spaţiu pentru activităţi oferă programe speciale netmonitor'y: ele pot fi autentificat setări atunci când treceţi de la o staţie la alta, extract de parametrii «vecinii» (în domeniul de vedere al altor BS), şi pur şi simplu a lua mult mai multe informaţii detaliate. Fiecare platformă are propriile sale de punere în aplicare cu diferite capacităţi de netmonitorov - aveţi posibilitatea de a alege programul în sine.
Acum, că toate parametri sunt obţinute, se poate aplica la server şi să încercaţi să obţineţi un răspuns. Având în vedere pentru acest simplu script de pe Python'e, care a scris Compatriotul nostru Skvo şi publicate în forum forum.netmonitor.ru:
net, cid, lac = 25002, 9164, 4000 import urllib a = '000E00000000000000000000000000001B0000000000000000000000030000' b = hex(cid)[2:].zfill(8) + hex(lac)[2:].zfill(8) c = hex(divmod(net,100)[1])[2:].zfill(8) + hex(divmod(net,100)[0])[2:].zfill(8) string = (a + b + c + 'FFFFFFFF00000000').decode('hex') try: data = urllib.urlopen('http://www.google.com/glm/mmap',string) r = data.read().encode('hex') if len(r) > 14: print float(int(r[14:22],16))/1000000, float(int(r[22:30],16))/1000000 else: print 'no data in google' except: print 'connect error'
Pentru a începe, desigur, ar avea nevoie de un interpret Python'a (opţional 2-lea filiala, pe a 3-a, pentru că nu se va executa), care poate fi descărcat de pe site-ul http://python.org/download/releases. În prima linie de script-ul, aşa cum este uşor de ghicit, este necesar să înlocuiţi NET (MCC şi MNC, au fost scrise împreună , CID, LAC. Ca urmare a script forma o cerere la server http://www.google.com/glm/mmap si trimite-o. În cazul în care staţie de bază, cu aceşti parametri este în baza de date, aceasta apare pe ecran coordonate, de exemplu, «59,200274 39,836925». Altfel, script-ul afişează mesajul de eroare: "nu există date în Google». Cei care au ca program pentru a nu fi greu să adăugaţi câteva linii, de exemplu, de pe net, şi toate opţiunile clasificate LAC CID (de la 1 la 65536) şi a vedea care sectoare sunt disponibile la Google, găsiţi locaţia aproximative. Dacă prost aversiunea capul script-uri de pe disc, am stabilit-GUI programe scrise în C # (cod sursa inclus). În acest caz, veţi primi automat un link care afişează coordonatele pe Google Maps. Link-uri la punerea în aplicare, în alte limbi, a se vedea partea takeaways.
Interesant, de la server sunt transmise doar trei parametri, care sunt doar valori cheie LAC şi CellID. Un MCC / MNC sunt necesare în caz de bază are mai multe perechi de acelaşi LAC, CellID. Acest telefon poate primi mai multe informaţii cu privire la curent staţie - iau puţin de putere a semnalului, dar aceşti parametri nu sunt utilizate în calcule. Este un simplu algoritm. Un sector - o poziţie, indiferent dacă utilizatorul este de numai 100 de metri de staţie de bază şi de un kilometru distanţă de ea, locaţia va fi la fel!
Separat, vreau să spun că o mare proiect «Yandex», care mai ales ca am posibilitatea de a afişa puncte şi are exact aceeaşi funcţionalitate. Şi exact la fel ca Google, îşi oferă program pe punctul de a solicita, indicând Cell ID, LAC, NET parametri:
http://mobile.maps.yandex.net/cellid_lo ... amp;cellid =% d & operatorid =% d & countrycode =% d & lac =% d
Singura diferenţă este că reacţia de serviciu «Yandex» revine în XML-format care este uşor de analizat şi convenabil de a extrage orice parametri.
La staţiile de reţelele celulare
În acest articol, am menţionat în baza de date neoficiale cu locaţia de turnuri de reţelele celulare. Pe Internet există o serie de proiecte în cazul în care sunt entuziaşti s-au reunit netmonitorami informaţii. Pentru ca este străine - celldb.org / aboutapi.php, www.opencellid.org / API, gsmloc.org / cod, cellid.telin.nl. Fiecare dintre ele are un simplu API pentru a obţine coordonatele cu obicei HTTP-cererea cu parametrii specificaţi de tradiţionale MCC, MNC, Cell ID-ul şi LAC.
Separat, aş dori să menţionez noastre Rusă proiect Netmonitor.ru, care a reunit un număr mare de инфа REF Megafon, MTS, Beeline, Tele2 şi chiar SkyLink. În plus, site-ul este în continuare cel mai mare forum de cercetători reţelele celulare.
Cum se ajunge la locul de muncă programul de navigare
Orice se poate de remarcabil program de Google Maps, folosiţi-o ca pe un instrument de navigare, pentru a pune it blînd, dificil. Ar fi frumos, şi lăsaţi aproximative, dar coordonatele skormit Navigare program normal, cu bune hărţi, detaliat şi bine dezvoltat algoritmi de rutare adresabili. Unele programe, de exemplu, «Navitel» şi «Avtosputnik» au un alt plus: ei au posibilitatea de a încărca informaţii despre blocajele de circulaţie şi o iau în considerare în elaborarea traseului. Pur teoretic, nu se scrie un astfel de instrument de mine. Algoritmului este simplu:
Obţineţi locaţia curentă la fiecare schimbare de la staţie de bază; Prin trimiterea unei solicitări de satelit, avem aproximative coordonate; Emuliruem în port serial şi un format simplu, NMEA, care foloseşte GPS-navigatori, emisie acolo curentă. Este acest principiu constă în VirtualGPS (www.kamlex.com), destinate pentru dispozitive pe platforma Windows Mobile 2003, WM 5, WM 6, WM 6.1. Free Lite versiune a programului determină locaţia curentă de comunicare fără fir şi turn emulează GPS. După rularea programului în sistem creează un nou port pe care doriţi să le precizeze în programul de navigare dumneavoastră preferat - şi că, de a suspecta nimic, ar lua-o ca este conectat la GPS-receptor.
Din ceea ce Wi-Fi
Ca irita faptul că cele mai multe WiFi-punct în oraş, fie închis sau de plătit, despre care cred că şi ele pot fi utilizate. Eu nu am să spun de ce . Principiul exact acelaşi: de a stabili toate punct de acces din apropiere, a transmis informaţii cu privire la MAC-adresa (dacă se doreşte, prin adăugarea de identificatorul de reţea SSID) la un serviciu special. Se verifică locaţia lor şi vă oferă dumneavoastră aproximative locaţie. O astfel de tehnologie a operat în timp membre, în cazul în care Wi-Fi, astfel încât acoperirea зашкаливает scăpa de ea deja, se pare că, nicăieri. WPS (Wi-Fi Positioning System) oferă companiei Skyhook Wireless (www.skyhookwireless.com), a dezvoltat aplicaţii personalizate pentru diferite platforme, şi propunerea iniţială a bazei de date de la un punct de acces. Apărut rapid, şi alternative de aplicaţii care utilizează API-serviciu sunt coordonatele de utilizator. Printre ei - un minunat plugin pentru Firefox'a Geode (http://labs.mozilla.com/geode_welcome), care substituie situaţia actuală de pe orice site web (atunci când se creează un nou post în blog-ul dvs., de exemplu).
Din pacate, Rusia a făcut un fel de a lucra SKYHOOK nu am reusit. Dar compatriotii nostri au luat pentru punerea în aplicare a acestor idei, de a realiza servicii Wi2Geo (www.wi2geo.ru), care fac să menţionăm foarte Wi2Go: ). Ei acum oferi o aplicaţie pentru Windows Mobile, Symbian, Windows şi Mac OS X, şi pentru a naviga cu ajutorul pe baza de adrese IP, informaţii cu privire la GSM a celulelor şi, într-adevăr, puncte de acces Wi-Fi. Base nu va interzisă folosirea lor pentru scopuri proprii, folosind un API (http://labs.wi2geo.ru/basicapi.php). Saddened numai că proiectul va fi dezvoltat numai în acele oraşe, unde o mare de acoperire Wi-Fi. Şi aşa mai departe poate fi numit numai Moscova.
Dar ce zici de urmărire?
De mai sus am vorbit despre urmărirea utilizator - un sistem care permite urmări în timp real, de un utilizator pe o hartă. Nu e rău, dacă un astfel de lucru instalate pe toate telefoanele lor de prieteni. Apoi, nimic nu ar fi meritat să ştiu cine este în cazul în care, şi dacă este necesar - aranja o întâlnire. Baietii de la Google au pus în aplicare această funcţie în Google Latitudine, recent, din nou disponibil pentru utilizatorii de telefoane mobile Google Maps. Din păcate, printr-un browser pentru a vizualiza locaţia de prieteni poate fi doar în State, dar nimic nu împiedică utilizarea de un american proxy?
Nu există o altă opţiune. Site-ul http://forum.xda-developers.com/showthread.php?t=340667 absolut gratuit, puteţi descărca un program special pentru urmărire, partea clientului, care este instalat pe Communicator pe baza WM, şi de server - pentru orice server de web. Mai mult poziţia de obiect pot fi vizualizate prin intermediul Google Earth. Real lucru soluţie pentru mediul de afaceri, care, în scopul de a open source poate fi uşor rafinat, de unul singur!
WWW
Setări Google Maps: http://mapki.com/wiki/Google_Map_Parameters
Efectuarea GPS-adaptor pentru telefonul mobil cu propriile mâini: http://tinkerlog.com/2007/07/13/interfa ... bile-phone
Manual pentru a obţine coordonatele din acest punct de radio prin Yahoo: http://developer.yahoo.com/yrb/zonetag/locatecell.html 
|
|