<div dir="ltr">Szia!<br><br>Két oka is van az ismétlődő adatoknak. Közös bennük, hogy egy-a-többhöz relációt próbálunk kilapítva ábrázolni helytakarékosan és mégis olvashatóan.<br><br>Az umts:PSC esetében egy az egyes cella-azonosítókhoz tartozó PSC értékeket soroljuk fel, ezek tudnak azonosak lenni egy adott helyszínen, sőt jellemzően háromszor ismétlődnek, ettől lesz a hálózat HSPA+.<br><br>Az lte:cellid azért tud azonos lenni, mert a "; " elválasztójel két oldalán különböző szolgáltatók celláit látod. A sima ";" egy szolgáltató celláit határolja, a pontosvessző-szóköz az egy helyen működő szolgáltatókat választja el egymástól. Ez utóbbi jelölésmódot azért találtuk ki, hogy ne kelljen szolgáltatónként címkézni mindent. Így is rengeteg címkét teszünk a tornyokra, ez háromszorozódna, ha lte:cellid:21601=* formában szétbontanánk szolgáltatókra.<br><br>Ha az objektumoknál lehetne relációkat vagy JSON-szerű hierarchiát ábrázolni, akkor nyilván abban írnánk le.<br><br>Íme egy bázisállomás egy szolgáltatóval, két irányban, irányonként három cellával:<br><a href="http://cellavadasz.openstreetmap.hu/#map=14/47.4990/19.0564&id=3765523113">http://cellavadasz.openstreetmap.hu/#map=14/47.4990/19.0564&id=3765523113</a><br><br>MCC=216<br>MNC=01<br>gsm:LAC=3112<br>gsm:cellid=9021;9022<br>lte:LAC=5121<br>lte:cellid=1;2<br>lte:eNB=902<br>umts:LAC=4121<br>umts:PSC=263;264;263;264;263;264<br>umts:RNC=412<br>umts:cellid=9021;9022;9026;9027;36996;36997<br><br>Ezt JSON szerkezetben az alábbit jelenti (csupa kisbetűs kulcsokkal és numerikus értékekkel):<br><br>{<br>    mcc: 216<br>    mnc: 1,<br>    gsm: {<br>        lac: 3112,<br>        cells: [<br>            { id: 9021 },<br>            { id: 9022 }<br>        ]<br>    },<br>    umts: {<br>        lac: 4121,<br>        rnc: 412,<br>        cells: [<br>            { id: 9021, psc: 263 },<br>            { id: 9022, psc: 264 },<br>            { id: 9026, psc: 263 },<br>            { id: 9027, psc: 264 },<br>            { id: 36996, psc: 263 },<br>            { id: 36997, psc: 264 }<br>        ]<br>    },<br>    lte: {<br>        lac: 5121,<br>        enb: 902,<br>        cells: [<br>            { id: 1 },<br>            { id: 2 }<br>        ]<br>    }<br>}<br><br>Jogos kérdés lehet, hogy miért nem írtam az gsm és lte cellákat az alábbi egyszerűbb formában, numerikus tömbként:<br><br>gsm: {<br>    cells: [9021, 9022]<br>}<br><br>lte: {<br>    cells: [1, 2]<br>}<br><br>Azért nem írtam így, mert a celláknak nem csak egyetlen tulajdonságuk van (azonosító), hanem például a psc is (umts hálózatokban). Így ahány umts cella van, annyi psc is.<br><br>Megjegyzések: Igazából az rnc is a cella tulajdonsága, de ez egy adott helyszínen mindig állandó, ezért nem írjuk ki cellánként, hanem a bázisállomás tulajdonságaként tekintjük. Mérünk még számos más értéket is a cellákra, amelyeket egyelőre csak elvétve tüntettünk fel az OpenStreetMap adatbázisában: bcch, bsic, ulch, dlch, valamint a példádban is említett direction.<br><br>Írhattam volna az alábbi formában, a cellák számával megegyező elemszámú tömbként a psc-t is JSON formátumban, de ez nem adja vissza jól a struktúrát:<br><br>umts: {<br>    cells: [9021, 9022, 9026, 9027, 36996, 36997]<br>    psc: [263, 264, 263, 264, 263, 264]<br>}<br><br>Az OpenStreetMap kulcs=érték párosokban gondolkodó címkézési rendszerében mégis az utóbbi formát választottuk, mert még mindig jobban olvasható, mintha a struktúrát gyönyörűen visszaadó JSON valamilyen escape-elt vagy base64-kódolt változatát tennénk oda.<br><br>Nemcsak emberi, hanem gépi értelmezésre is alkalmas a választott formátum. A szerkesztésre használt API overpass lekérdezéssel olvassa az OSM adatokat és szétszedi a fenti normalizált alakra, hogy aztán automatikusan kiegészíthesse az újabb mérésekből érkezett rokon cellákkal, majd visszaalakítja kulcs-érték párokká.<br><br>Elsőre bizonyára nehezen értelmezhető, különösen a több szolgáltatós tornyok és a részben felmért adatokat tükröző fixme-k miatt. Remélem, hogy a példa alapján tisztább lett a kép.<br><br>Üdv:<br>András<br><br>2015. november 4., szerda 22:14:22 UTC+1 időpontban kdano a következőt írta:<blockquote class="gmail_quote" style="margin: 0;margin-left: 0.8ex;border-left: 1px #ccc solid;padding-left: 1ex;"><div dir="ltr">Gyorskérdés az adatbázissal kapcsolatban (nem mélyedtem el nagyon abban, hogy pontosan mit is jelent az a rengeteg tag, amit ilyen tornyokra címkéztek):<br>Az normális, hogy ugyanaz az érték pontosvesszővel elválasztva többször is szerepel?<br>pl.<br>"lte:cellid=1;2;3; 1;2;3; 0;1;2;11"<br>"umts:PSC=48;44;222;46;47;48;<wbr>44;45;46"<br>"gsm:direction=70;180;180; fixme"<br>"gsm:LAC=110; 110"<br><br>mert én csak annyit értek ebből, hogy az osmose hülyét kap tőle :)<br><br>kdano<br></div></blockquote></div>