api.orange.pl/locateterminal .2em tutorial dla budujacych aplikacje ...
Transcript of api.orange.pl/locateterminal .2em tutorial dla budujacych aplikacje ...
-
api.orange.pl
api.orange.pl/locateterminaltutorial dla budujacych aplikacje lokalizacyjne (i nie tylko)
wer. 1.1
Grzegorz Sabak, Orange Polska, SiPU
pazdziernik 2012
-
api.orange.pl
Spis tresci
Spis tresci
1 Intro
2 api.orange.plWprowadzeniePrzykad - przegladarkaPrzykad - Python 2 i 3Przykad - PHPPrzykad - Java
3 Integracja WWWWordPressKrok po krokuPlugin Lemon MiniW strone klienta: JavaScript
4 Lokalizacja w sieci OrangeInformacje podstawoweDokadnosc lokalizacji
5 Zakonczenie
-
api.orange.pl
Intro
O tutorialu...
Ten przewodnik przeznaczony jest dla osb, ktre chca rozpoczac korzystanie z API telekomunikacyjnego udostepnianego(obecnie testowo przez Orange Polska). Zawiera przykady kodu zrdowego w rznych jezykach programowania, ktremoga byc wykorzystanie do testowania swojego srodowiska, badz jako ziarno na bazie ktrego zbudowana zostaniewieksza funkcjonalnosc.
Pozyteczne techniki/narzedzia/protokoy
Aby efektywnie skorzystac z tego przewodnika potrzebna jest podstawowa znajomosc takich jezykw programowania jakJava, Perl i PHP (nieznajacy ktregos z nich moga pominac pewne fragmenty). Dodatkowo, w trakcie czytania tutorialawarto uzupenic swoja wiedze w nastepujacych tematach (pod logami sa linki do stron domowych projektw):
- Ajax -pozwala na asynchroniczne uzupenienie zawartosci strony WWW,- jQuery - biblioteka JavaScript,
- geoJSON - format kodowania obiektw GIS jako obiektw JSON,- Firebug - dodatek do Firefoxa wspierajacy development dla Internetu,- WampServer - Apache, PHP, MySQL na Windowsie,
- WordPress - oprogramowanie do publikacji w Internecie,- Eclipse - zintegrowane srodowisko programistyczne.
http://pl.wikipedia.org/wiki/AJAXhttp://jquery.comhttp://geojson.orghttp://getfirebug.comhtt[://www.wampserver.comhttp://wordpress.orghttp://eclipse.org
-
api.orange.pl
api.orange.pl
1 Intro
2 api.orange.plWprowadzeniePrzykad - przegladarkaPrzykad - Python 2 i 3Przykad - PHPPrzykad - Java
3 Integracja WWWWordPressKrok po krokuPlugin Lemon MiniW strone klienta: JavaScript
4 Lokalizacja w sieci OrangeInformacje podstawoweDokadnosc lokalizacji
5 Zakonczenie
-
api.orange.pl
api.orange.pl
Wprowadzenie
Wprowadzenie
api.orange.pl - portal informacyjny
portal poswiecony Telecom Web Services w sieci Orange Polskainformacje umozliwiajace szybki startdokumentacja i FAQudostepnione usugi: SMS, USSD, lokalizacjaprzykady aplikacjihaso dostepu: przydzielane indywidualnie
api.orange.pl - API do usug telco
URL do wywoywania usug telekomunikacyjnychKomunikacja szyfrowana z autoryzacja HTTP Basicbezpatne (na chwile obecna)bezpieczne dla abonentw sieci Orangew fazie testw - nie wszystko zawsze dziaahaso dostepu: uzyskuje sie wysyajac SMSa o tresci: API nanumer 551
-
api.orange.pl
api.orange.pl
Przykad - przegladarka
Przykady
Korzystanie z API - przykady
W przedstawionych przykadach nalezy wprost w kodzie zrdowym zastapic wartosciami nastepujace ciagi znakw:
API_USER - indywidualny login uzytkownika API, najczesciej w postaci 48501XXXXXX.API_PASSWORD - haso (cos w rodzaju D873MFO0QEDF56E),API_MSISDN - nr tel. dla ktrego wywoywana jest funkcja API (np. lokalizowanego terminala) w postaci 501YYYYYY.
Korzystanie z API przez przegladarke WWW
1 W oknie przegladarki wpisujemy:https://api.orange.pl/sendussd/?to=API_MSISDN&msg=Orange+API+rules+OK
2 Serwer pyta o autoryzacje. Podajemy w odpowiednich polach API_USER i API_PASSWORD3 Uzytkownik o numerze telefonu API_MSISDN otrzymuje ciekawe haso.4 W oknie przegladarki widzimy potwierdzenie przyjecia wiadomosci przez serwer:
1 2 3 4f423e1d6978c6837994954 MessageWaiting5
-
api.orange.pl
api.orange.pl
Przykad - Python 2 i 3
Przykad - Python 2
Korzystanie z API w skryptach Python 2
Ponizej przedstawiono przykadowy kod zrdowy w jezyku Python wysyajacy zapytanie o lokalizacje terminala. Plik jest
rwniez zaaczony tutaj:
orangeapi2.py
1 from base64 import b64encode2 from httplib import HTTPSConnection3
4 import urllib5
6 #dane uzytkownika API7 apiusr = b"API_USER"8 apipwd = b"API_PASSWORD"9
10 #parametry wywolania API11 params_loc = urllib.urlencode({msisdn: API_MSISDN})12 params_msg = urllib.urlencode({msg: Orange API rules OK, to: API_MSISDN})13
14 #zapytanie do serwera15 userpasswd = b64encode(apiusr+b":"+apipwd).decode("ascii")16 headers = { Authorization : Basic %s % userpasswd }17
18 conn = HTTPSConnection("api.orange.pl")19 conn.request(GET, /terminallocation?+params_loc, headers = headers)20 #conn.request(GET, /sendussd?+params_msg, headers = headers)21 #conn.request(GET, /sendsms?+params_msg, headers = headers)22
23 #analiza odpowiedzi z serwera24 response = conn.getresponse()25 print(response.status, response.reason)26 print()27 data = response.read()28 print(data)29 conn.close()
from base64 import b64encode from httplib import HTTPSConnection
import urllib
#dane uzytkownika APIapiusr = b"API_USER"apipwd = b"API_PASSWORD"
#parametry wywolania APIparams_loc = urllib.urlencode({'msisdn': API_MSISDN})params_msg = urllib.urlencode({'msg': 'Orange API rules OK', 'to': API_MSISDN})
#zapytanie do serwerauserpasswd = b64encode(apiusr+b":"+apipwd).decode("ascii") headers = { 'Authorization' : 'Basic %s' % userpasswd }
conn = HTTPSConnection("api.orange.pl") conn.request('GET', '/terminallocation?'+params_loc, headers = headers) #conn.request('GET', '/sendussd?'+params_msg, headers = headers) #conn.request('GET', '/sendsms?'+params_msg, headers = headers)
#analiza odpowiedzi z serweraresponse = conn.getresponse() print(response.status, response.reason)print()data = response.read() print(data) conn.close()
-
api.orange.pl
api.orange.pl
Przykad - Python 2 i 3
Przykad - Python 3
Korzystanie z API w skryptach Python 3
W wersji trzeciej Pythona wszystko jest tak samo, tylko umieszczone w innych moduach :)
Plik zrdowy jest rwniez zaaczony tutaj:
orangeapi3.py
1 from http.client import HTTPSConnection2 from base64 import b64encode3
4 import urllib.parse5
6 #dane uzytkownika API7 apiusr = b"API_USER"8 apipwd = b"API_PASSWORD"9
10 #parametry wywolania API11 params_loc = urllib.parse.urlencode({msisdn: API_MSISDN})12 params_msg = urllib.parse.urlencode({msg: Orange API rules OK, to: API_MSISDN})13
14 #zapytanie do serwera15 userpasswd = b64encode(apiusr+b":"+apipwd).decode("ascii")16 headers = { Authorization : Basic %s % userpasswd }17
18 conn = HTTPSConnection("api.orange.pl")19 conn.request(GET, /terminallocation?+params_loc, headers = headers)20 #conn.request(GET, /sendussd?+params_msg, headers = headers)21 #conn.request(GET, /sendsms?+params_msg, headers = headers)22
23 #analiza odpowiedzi z serwera24 response = conn.getresponse()25 print(response.status, response.reason)26 print()27 data = response.read()28 print(data)29 conn.close()
from http.client import HTTPSConnection from base64 import b64encode
import urllib.parse
#dane uzytkownika APIapiusr = b"API_USER"apipwd = b"API_PASSWORD"
#parametry wywolania APIparams_loc = urllib.parse.urlencode({'msisdn': API_MSISDN})params_msg = urllib.parse.urlencode({'msg': 'Orange API rules OK', 'to': API_MSISDN})
#zapytanie do serwerauserpasswd = b64encode(apiusr+b":"+apipwd).decode("ascii") headers = { 'Authorization' : 'Basic %s' % userpasswd }
conn = HTTPSConnection("api.orange.pl") conn.request('GET', '/terminallocation?'+params_loc, headers = headers) #conn.request('GET', '/sendussd?'+params_msg, headers = headers) #conn.request('GET', '/sendsms?'+params_msg, headers = headers)
#analiza odpowiedzi z serweraresponse = conn.getresponse() print(response.status, response.reason)print()data = response.read() print(data) conn.close()
-
api.orange.pl
api.orange.pl
Przykad - PHP
Przykad - PHP
Korzystanie z API w skryptach PHP
Jak mozna zauwazyc PHP jest rwniez dosc kompaktowe w porwnaniu do nastepnego przykadu w Javie :)
Plik zrdowy jest rwniez zaaczony tutaj:
orangeapi.php
1
-
api.orange.pl
api.orange.pl
Przykad - Java
Przykad - Java
Korzystanie z API w jezyku Java
W zaaczniku przedstawiono przykadowy kod zrdowy w jezyku Java wysyajacy krtki tekst jako wiadomosc USSD.Przed kompilacja pliku nalezy dociagnac biblioteki httpclient w wersji 4.1 bedace czescia Apache HttpComponents.
Przejscie przez proxy
Jesli poaczenie do api.orange.pl wymaga przejscia przez proxy, w kodzie nalezy umiescic nastepujace linie:1 HttpHost proxy = new HttpHost("http.proxy.com", 8080, "http");2 httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY, proxy);
Zaminiajac oczywiscie nazwe hosta (powyzej http.proxy.com) i numer portu (8080) na wasciwe.
Dla uzytkownikw mavena
Programisci korzystajacy z pakietu maven moga dociagnac wasciwa wersje httpclienta poprzez dodanie do plikupom.xml nastepujacej definicji zaleznosci:
1 2 org.apache.httpcomponents3 httpclient4 4.1.35 compile6
OrangeApiTest.javaimportjava.net.URLEncoder;
importjava.util.ArrayList;
importjava.util.List;
importjavax.net.ssl.SSLContext;
importjavax.net.ssl.TrustManager;
importjavax.net.ssl.X509TrustManager;
importorg.apache.http.HttpEntity;
importorg.apache.http.HttpHost;
importorg.apache.http.HttpResponse;
importorg.apache.http.NameValuePair;
importorg.apache.http.auth.AuthScope;
importorg.apache.http.auth.UsernamePasswordCredentials;
importorg.apache.http.client.methods.HttpGet;
importorg.apache.http.client.utils.URLEncodedUtils;
importorg.apache.http.conn.ClientConnectionManager;
importorg.apache.http.conn.params.ConnRoutePNames;
importorg.apache.http.conn.scheme.Scheme;
importorg.apache.http.conn.scheme.SchemeRegistry;
importorg.apache.http.conn.ssl.SSLSocketFactory;
importorg.apache.http.impl.client.DefaultHttpClient;
importorg.apache.http.message.BasicNameValuePair;
importorg.apache.http.params.CoreProtocolPNames;
importorg.apache.http.util.EntityUtils;
publicclassOrangeApiTest{
publicstaticvoidmain(String[]args)throwsException{
Stringmsisdn="API_MSISDN";
StringuserName="API_USER";
Stringpassword="API_PASSWORD";
DefaultHttpClienthttpclient=newDefaultHttpClient();
//Poniszedwielinienaleyodkomentowaiwypeniwaciwymiparametrami
//jeliruchwychodziprzezproxy
//
//HttpHostproxy=newHttpHost("http.proxy.com",8080,"http");
//httpclient.getParams().setParameter(ConnRoutePNames.DEFAULT_PROXY,proxy);
//autoryzacjaBASICHTTP
httpclient.getCredentialsProvider().setCredentials(
newAuthScope("api.orange.pl",443),
newUsernamePasswordCredentials(userName,password));
Listparams=newArrayList();
params.add(newBasicNameValuePair("to",msisdn));
params.add(newBasicNameValuePair("msg","OrangeAPIrulesOK"));
HttpGethttpget=newHttpGet("https://api.orange.pl/sendussd/?"+URLEncodedUtils.format(params,"UTF-8"));
//HttpGethttpget=newHttpGet("https://api.orange.pl/sendsms/?from=OrangeAPI&to="+msisdn+"+&msg=Orange%20API");
//HttpGethttpget=newHttpGet("https://api.orange.pl/terminallocation/?msisdn="+msisdn);
//PoczeniapoSSLbezsprawdzaniapoprawnocicertyfikatuserwera.
TrustManager[]trustAllCerts=newTrustManager[]{
newX509TrustManager(){
publicjava.security.cert.X509Certificate[]getAcceptedIssuers(){returnnull;}
publicvoidcheckClientTrusted(java.security.cert.X509Certificate[]certs,StringauthType){}
publicvoidcheckServerTrusted(java.security.cert.X509Certificate[]certs,StringauthType){}
}
};
SSLContextsc=null;
sc=SSLContext.getInstance("SSL");
sc.init(null,trustAllCerts,newjava.security.SecureRandom());
SSLSocketFactoryssf=newSSLSocketFactory(sc);
ClientConnectionManagerccm=httpclient.getConnectionManager();
SchemeRegistrysr=ccm.getSchemeRegistry();
sr.register(newScheme("https",443,ssf));
//wykonajpoczeniedoserweraAPI
HttpResponseresponse=httpclient.execute(httpget);
HttpEntityentity=response.getEntity();
System.out.println(response.getStatusLine());
System.out.println(EntityUtils.toString(entity));
EntityUtils.consume(entity);
}
}
-
api.orange.pl
Integracja WWW
1 Intro
2 api.orange.plWprowadzeniePrzykad - przegladarkaPrzykad - Python 2 i 3Przykad - PHPPrzykad - Java
3 Integracja WWWWordPressKrok po krokuPlugin Lemon MiniW strone klienta: JavaScript
4 Lokalizacja w sieci OrangeInformacje podstawoweDokadnosc lokalizacji
5 Zakonczenie
-
api.orange.pl
Integracja WWW
WordPress
Integracja WordPress
Korzysci z integracji strony WWW z siecia komunikacyjna
Wieksza interaktywosc = wiekszy ruchBezpieczenstwoNowe konteksty np. lokalizacjaTelekomunikacyjne wsparcie procesw biznesowych
Jednym ze sposobw integracji jest przygotowanie plugina dla oprogramowania WordPress.
Czym jest WordPress i dlaczego warto go uzywac?
Najpopularniejszy silnik blogowy wybierany przez maych i najwiekszych (CNN, NYTimes, Nokia, TechCrunch, People,WordPress.com, blog.pl (Onet))Napisany w PHP, oparty na MySQL, wykorzystuje CSS3 i JavaScript (jQuery)atwo modyfikowalny wyglad (motywy) i funkcjonalnosc (plug-iny)21k+ gotowych pluginw w oficjalnym repozytorium (darmowych)1.6k+ gotowych motyww (rwniez darmowych)atwa instalacja i aktualizacja, przyjazna administracjaAktywnie rozwijany przez spoecznosc developerwArchitektura przyjazna dostosowywaniu: API, szablony, zaczepy: (akcje i filtry)Bezpieczenstwo: czyszczenie danych, role uzytkownikw, prawa dostepu do tresci
-
api.orange.pl
Integracja WWW
Krok po kroku
1. Przygotowanie srodowiska
1 Zainstaluj WAMP - zawiera Apache, MySql2 Zainstaluj WordPress - aktualna wersja do sciagniecia ze strony projektu3 Zainstaluj Eclipse lub dowolne inne zintegrowane srodowisko deweloperskie wspierajace PHP
2. Praca za PROXY
Jesli PC na ktrym zainstalowane jest srodowisko znajduje sie za proxy HTTP, to w pliku wp-config.php znajdujacym siew gwnym katalogu instalacji WordPressa nalezy dodac nastepujacy kod - podstawiajac odpowiednie wartosci.define( WP_PROXY_HOST, adres.ip.proxy );define( WP_PROXY_PORT, 8080 );
3. Instalacja pluginu
1 Utwrz katalog wp-content/plugins/lemon-mini2 Umiesc w tym katalogu plik lemon-mini.php (z zaacznika )3 Aktywuj plugin w konsoli WordPress
-
api.orange.pl
Integracja WWW
Krok po kroku
Integracja WordPress
lemon-mini
Lemon Mini to plugin dla WordPressa, ktrego gwne funkcjonalnosci to:Zamienianie w tresci wpisu sowa kluczowego [lmini-locate msisdn="" user="" passwd=""/] na tekstinformujacy o lokalizacji. Argumenty:
msisdn - lokalizowany numer,user - uzytkownik api.orange.pl,passwd - haso uzytkownika.
Udostepnianie filtra lmini-locate, ktry moze byc wykorzystywany przez inne rozszerzenia WordPressa.Uzyskana lokalizacja przechowywane jest przez 60 sekund. Po tym czasie kazde odswiezenie strony powodujewywoanie API do lokalizacji terminala.
Wiecej informacji na temat plugina oraz jego najbardziej aktualna wersje mozna pobrac ze strony telco21.pl.
telco21.pl
telco21.pl jest strona dedykowana koncepcji Telco 2.1, polegajacej na dalszym uproszczeniu sposobw korzystania zfunkcjonalnosci telekomunikacyjnych udostepnianych przez operatorw sieci. Na stronie umieszczony dostepna jest zawszenajnowsza wersja plugina.
http://telco21.pl/lemon-minihttp://telco21.pl
-
api.orange.pl
Integracja WWW
Krok po kroku
plugin-mini.php
Kod zrdowy plugina znajduje sie w zaaczniku . Warto zwrcic uwage na jego kilka ponizszych fragmentw.
Rejestracja filtra lmini-locate.29 add_filter( lmini-locate, lmn_localize, 10, 3 );
Po wywoaniu funkcji apply_filters( lmini-locate, $msisdn, $user, $passwd ) zostanie wywoanafunkcja lmn_localize(), do ktrej przekazane zostana trzy argumenty.Rejestracja shortcodeu lmini-locate.
32 add_shortcode( lmini-locate, lmn_shortcode_handler );
Jesli w tresci posta pojawi sie sowo kluczowe [lmini-locate /], to zostanie ono zamienione na wartosc tekstowazwrcona przez funkcje lmn_shortcode_handler().Zakodowanie nazwy uzytkownika i hasa: Funkcja base64_encode().
40 $usrpwd = base64_encode( "{$options[user]}:{$options[passwd]}" );
Zapamietanie lokalizacji na 60 sekund w celu zmniejszenia liczby odwoan do API. Uzycie funkcji: get_transient(),set_transient().
75 $loc = get_transient( lmn_location_ . $msisdn );76
77 if ( $temp_loc )78 return $loc;79 else {80 $loc = lmn_call_orange_api( $options, terminallocation, $query );81
82 // zapamietaj lokalizacje przez 60 sek.83 set_transient( lmn_location_ . $msisdn, $loc, 60 );84 }
lmini.json.php
locate.html
Location in progress...
lemon-mini.php
-
api.orange.pl
Integracja WWW
W strone klienta: JavaScript
JavaScript
Programowanie dla browsera
Czesto zachodzi potrzeba/chec/koniecznosc by o lokalizacje abonenta wystapic z poziomu skryptu wykonywanego przeprzegladarke. W takim przypadku nalezy zwrcic uwage na dwie rzeczy:
Wywoanie API lokalizacyjnego pod czas generowania kodu HTML opzni moment wyswietlenia strony o jakies 4-5 sek.potrzebne na zlokalizowanie terminala.Obowiazuje same origin policy, czyli zasada, ktra mwi, ze skrypt wykonywany przez przegladarke moze aczyc siejedynie z serwerem, z ktrego zosta pobrany.
Problem pierwszy mozna rozwiazac korzystajac z Ajaxa, co pozwoli na wyswietlenie strony i asynchroniczne uzupenieniejej po wykonaniu lokalizacji.Jednym z rozwiazan drugiej kwestii jest wykorzystanie niewielkiego skryptu umieszczonego na serwerze, ktry bedzie penipozyteczna role proxy i dodatkowo przekonwertuje otrzymanego XML-a na obiekt GeoJSON. To rozwiazanie zostaoopisane na nastepnych slajdach.Przykady bardziej zaawansowanych zastosowan i innych podejsc do rozwiazania powyzszych kwestii zamieszczono nablogu telco21.pl.
http://telco21.pl
-
api.orange.pl
Integracja WWW
W strone klienta: JavaScript
lmini.json.php
1
Komentarz
Skrypt wywouje zdefiniowany w pluginie lemon-mini filtr lmoni-locate, ktry zwraca lokalizacje abonenta. Nastepnieprzygotowuje tablice zgodna ze specyfikacja GeoJSON, ktra funkcja PHP json_encode() koduje tablice do obiektuJSON.
-
api.orange.pl
Integracja WWW
W strone klienta: JavaScript
locate.html
1 2 3 4 5 Localizacja przy pomocy api.orange.pl6 7 .in-progress {8 font-style: italic;9 }
10 11 12 13 $(document).ready(function(){14 $.getJSON(lmini.json.php,15 {msisdn:} // tu wpisz lokalizaowny numer16 ).done (function ( data ){17 var msg = "Zlokalizowano: " + data.features[0].geometry.coordinates[0] +18 "," + data.features[0].geometry.coordinates[1];19 $(#location).text(msg).removeClass(in-progress);20 });21 });22 23 24 25 Location in progress...26 27
Komentarz
Strona korzysta z biblioteki jQuery. Po wyswietleniu zawartosci strony nastepuje asynchroniczne odwoanie w tle do serwera(skrypt lmini.json.php). Otrzymany w odpowiedzi obiekt JSON jest dekodowany, a na podstawie otrzymanych danychuaktualniana jest zawartosc strony (bez koniecznosci jej odswiezenia).
-
api.orange.pl
Lokalizacja w sieci Orange
1 Intro
2 api.orange.plWprowadzeniePrzykad - przegladarkaPrzykad - Python 2 i 3Przykad - PHPPrzykad - Java
3 Integracja WWWWordPressKrok po krokuPlugin Lemon MiniW strone klienta: JavaScript
4 Lokalizacja w sieci OrangeInformacje podstawoweDokadnosc lokalizacji
5 Zakonczenie
-
api.orange.pl
Lokalizacja w sieci Orange
Informacje podstawowe
Wprowadzenie
Podstawowe informacje
Terminal mobilny: urzadzenie uzytkownika + karta SIM, komrka: obszar zasiegu radiowego.W sieci Orange lokalizacja terminali wykonywana jest metoda Cell-Id - jako lokalizacja zwracany jest punkt przypisanyidentyfikatorowi komrki.Srodek komrki: punkt zwracany jako lokalizacja terminala znajdujacego sie w komrce - oznaczany pomaranczowymtrjkatem na prezentowanych mapkach.Komrki pokrywaja sie, w wybrane miejsce moze nalezec do wielu komrek sieci telefonii mobilnej.Dokadnosc lokalizacji zalezy od typu obszaru, na ktrym znajduje sie terminal.Dokadnosc lokalizacji zalezy od tego czy terminal jest w sieci 2G (wieksza) czy 3G (mniejsza).Informacja o lokalizacji zwracana jest po ok 4-5 sekundach od zapytania.
-
api.orange.pl
Lokalizacja w sieci Orange
Informacje podstawowe
Wprowadzenie
Problemy praktyczne z wykorzystaniem lokalizacji
Relatywnie duzy (w stosunku do systemu GPS) bad lokalizacji - wiecej informacji na nastepnych slajdachPrzy wielokrotnej lokalizacji nieporuszajacego sie terminala moga byc zwracane jego rzne lokalizacje (pozorny ruchterminala).Bardziej zaawansowane telefony (dziaajace w sieci 3G) beda lokalizowane z wiekszym bedem niz te mniejzaawansowane.Nie mozna zakadac, ze jako lokalizacja terminala wskazany zostanie srodek komrki najblizszy rzeczywistemupoozeniu terminala.Wsprzedne srodkw komrek sa "poprawiane" przez operatora sieci - z czasem zmieniaja swoje poozenie.
Poozenie srodkw komrek
Na nastepnych slajdach przedstawiono mapki, na ktrych pomaranczowymi trjkatami zaznaczono srodki komrek naobszarach w poblizu wybranych lokalizacji.
-
api.orange.pl
Lokalizacja w sieci Orange
Informacje podstawowe
Okolice PW EiTI
-
api.orange.pl
Lokalizacja w sieci Orange
Informacje podstawowe
Okolice Orange Labs
-
api.orange.pl
Lokalizacja w sieci Orange
Informacje podstawowe
Okolice UWM
-
api.orange.pl
Lokalizacja w sieci Orange
Informacje podstawowe
Okolice P
-
api.orange.pl
Lokalizacja w sieci Orange
Dokadnosc lokalizacji
Dokadnosc lokalizacji
Wprowadzenie
Ponizej przedstawiono (za [5]) wyniki testw dokadnosci lokalizacji w sieci komrkowej Orange przeprowadzonych w latach2010-2011. Jako bad lokalizacji przyjmuje sie odlegosc od punktu wskazanego przez odbiornik GPS do punktuwskazanego przez usuge lokalizacji terminala w sieci komrkowej.
Typy analizowanych obszarw i drg
highway- fragmenty autostradmajor- drogi ekspresowe, drogi krajoweregular- drogi inne: wojewdzkie, powiatowe, itp.city- obszary scisych centrw miasttown- obszary maych miast, duze miasta poza scisym centrumrural- obszary pozamiejskie
-
api.orange.pl
Lokalizacja w sieci Orange
Dokadnosc lokalizacji
Bad lokalizacji
Statystyki bedu lokalizacji - wartosci w km
typ obiektu n e Q25 Q50 Q75 emax Q75 Q25highway 3801 2.63 1.93 1.17 2.24 3.60 20.37 2.43major 13147 2.00 1.58 0.83 1.54 2.79 10.46 1.97
regular 6889 3.73 2.47 2.06 3.30 4.74 28.83 2.70city 729 0.38 0.31 0.17 0.31 0.49 1.62 0.32town 2482 1.16 1.00 0.47 0.86 1.50 7.77 1.03rural 6044 3.66 1.90 2.42 3.39 4.61 17.53 2.19
Analiza
Na podstawie uzyskanych wynikw mozna wywnioskowac, ze dokadnosc metody Cell-Id jest najwieksza dla obszarw typucity. Bad lokalizacji dla 25% przypadkw by mniejszy niz 0.17 km, a dla 75% mniejszy niz 0.49 km. Duzo gorszejdokadnosci lokalizacji metoda Cell-Id nalezy spodziewac sie dla drg typu regular i obszarw typu rural. Bad srednilokalizacji wynosi dla nich odpowiednio 3.47 km i 3.67 km. Sa to wartosci kilkukrotnie wieksze niz wartosc bedu sredniegodla obszaru city. Potwierdza to powszechne przekonanie, ze w centrach miast operatorzy telefonii komrkowej budujaznacznie wiecej komrek o mniejszym zasiegu, by w ten sposb zaspokoic istniejaca tam potrzebe wiekszej pojemnoscisieci wynikajaca z koncentracji ludnosci.Nalezy zauwazyc, ze dla wszystkich typw drg i obszarw stosunek odchylenia standardowego do wartosci sredniej jestpowyzej 50%, a w przypadku city wynosi 93.2%. Swiadczy to o duzym rozproszeniu wartosci bedu. Porwnujac jednakwartosci rozstepw miedzykwartylowych (kolumna Q75 Q25), mozna zauwazyc, ze wartosc dla drg typu regular jestkilkukrotnie wieksza niz dla obszarw typu city. Oznacza to, ze rozkad bedu dla duzych miast jest znacznie mniejrozproszony niz dla drg wojewdzkich.
-
api.orange.pl
Lokalizacja w sieci Orange
Dokadnosc lokalizacji
Statystyki bedu lokalizacji - histogramy czestosci
0.000.050.100.150.200.250.300.35
0 2 4 6 8 10error [km]
citytownrural
0.000.050.100.150.200.250.300.35
0 2 4 6 8 10error [km]
highwaymajor
regular
-
api.orange.pl
Zakonczenie
Historia dokumentu
data wer. autor opis02.2012 1.0 Grzegorz Sabak wersja poczatkowa (PHP, Python, dokadnosc lokalizacji)10.2012 1.1 Grzegorz Sabak dodano opis pluginu dla WordPress, korzystanie z JavaScript,
Ajax, GeoJSON
Odnosniki
I Strona gwna api.orange.plhttp://api.orange.pl
I Oficjalna strona domowa Pythonahttp://www.python.org
I Oficjalna strona domowa PHPhttp://www.php.net
I Strona domowa WordPresshttp://www.wordpress.org/
[5] G. Sabak.Modelowanie lokalizacji uzytkownikw sieci telefonii komrkowej dla potrzeb Inteligentnych Systemw Transportowych.Wojskowa Akademia Techniczna, 2011. Wersja PDF
http://sabak.info/vastar/G.Sabak-praca.pdf
-
api.orange.pl
Zakonczenie
Zamiast zakonczenia
Introapi.orange.plWprowadzeniePrzykad - przegladarkaPrzykad - Python 2 i 3Przykad - PHPPrzykad - Java
Integracja WWWWordPressKrok po krokuPlugin Lemon MiniW strone klienta: JavaScript
Lokalizacja w sieci OrangeInformacje podstawoweDokadnosc lokalizacji
Zakonczenie