QT bezeroan kokapena partekatzea
Nola erabili?
Erabilera txikia
Elkarrizketa batean, erabiltzaileak kokapen ikonoan klik egin dezake mapa bat erakusteko. Location Services
gailuan aktibatzen bada, erabiltzailearen kokapena erakutsiko da mapan, bere kokapena partekatzen ari diren beste kide guztien kokapenak ere bai (aukeratutako kontuaren elkarrizketa guztietatik).
Erabiltzaile batek elkarrizketan bere kokapena partekatzen duenean, kokapen ikono gorria agertuko da elkarrizketa ikonan. Erabiltzaileak beste kide batengandik kokapena jasotzen badu, kokapen ikono laranja bat agertuko da kideak duen elkarrizketa guztietan.
Erabiltzaileak mapa berriztatze, zoomatu, mugitu eta itxiz interakzio egin dezake.
Erabilera aurreratua
Banaketa anitza
Eszenarioak
Erabiltzaileak dagoeneko A eta B elkarrizketekin leku partekatzen ari da.
Funtzioa
Erabiltzaileak C elkarrizketara pasatzen bada, mapa oraindik ikusgai dago eta erabiltzaileak bi aukera ditu
Sakatu kokapen partekatzeko botoia C elkarrizketako kideekin ere partekatzeko.
Sakatu kokapen partekatzearen bukaerako botoia. Honek agertuko da agerraldi bat, erabiltzaileari ahalbidetzen diona kokapen partekatzea erabat itzaltzea edo C elkarrizketako kideekin kokapena partekatzeari uztea soilik.
Leiho zapiak
Leihoa desblokeatuta badago, erabiltzaileak ezin izango du kokapen partekatzeko botoia sakatu, leihoa ez delako jada konektatuta elkarrizketarekin. Jende berriarekin kokapena partekatzeko, erabiltzaileak leihoa berriro sakatu behar du. Kontuan izan leihoa desblokeatzeak ez duela kokapen partekatze jarraian eragiten. Gainera, leihoa desblokeatuta dagoen bitartean kokapen partekatzeko bukaerako botoia sakatzeak kokapen partekatze guztiak geldituko ditu eta ez da agertuko agerraldi bat erabiltzaileari elkarrizketa jakin bat aukeratzeko aukera emango diona.
Kontu asko
Kontu bakoitzak bere mapa berezia du. Erabiltzaileak mapa A kontuan zegoela deskargatzen badu, eta gero B kontuan pasatzen bada eta mapa deskargatzen badu, bi mapa agertuko dira. A eta B kontuan dauden mapak elkarren artean partekatzen diren posizioak erakusten dituzte, hurrenez hurren, eta guztiz bereizita daude.
Nola funtzionatzen du?
Aurkezpena
Funtzio hau hiru zatitan banatuta dago:
Norberaren posizioa bidaltzen.
Postua jasotzen
Postu bat erakutsi
Kokapena zehazteko, [Qt posizionamendua] (https://doc.qt.io/qt-6/qtpositioning-index.html) API erabiltzen da. Kokapena zehaztutakoan, DHTn mezu gisa bidaltzen da eta bezeroari igortzen zaio. Hartuen kokapena gero [OpenLayers] (https://openlayers.org/) JavaScript liburutegia erabiliz agertzen da.
Postua bidaltzen
Mapa irekitzean, Positioning
klaseak egungo posizioa berreskuratzen du QGeoPositionInfoSource
modulearen QtPositioning
klasea erabiliz.
Tokikoz,
localPositionReceived
seinalearen bidez, erabiltzaileak bere posizioa ikus dezanDHT-n elkarrizketa guztiei
positionShareConvIds_
zerrendan. Zerrenda honek erabiltzaileak bere posizioa partekatu nahi dituen elkarrizketa guztien gakoak ditu. Gako honetatik, parte hartzaile guztien URIak lortzen dira eta posizio mezu bat bidaltzen da parte hartzaile bakoitzari.
JSON formatua da posizio bat:
Tipoa (posiziazio edo geldialdi mezuak)
Latitudua
Luzera
Denbora (QtClientek erabili ez duena)
Datuen adibide bat: {\"lat\":45.51616583988481,\"luzea\":-73.620693,\"denbora\":1671658862000,\"motakoa\":\" posizioa\"}
Postua deabruari bidaltzen diogunean, egilearen URI ere igortzen da.
Erabiltzaileak bere posizioa elkarrizketarekin partekatzeari uzten dionean, elkarrizketaren IDa positionShareConvIds_
zerrendatik kentzen da.
Postua jasotzen
Postu bat jasotzen denean, ‹onPositionReceived()›slot-a pizten da. QtPositioning
moduluko tokiko posizioa edo beste kontaktu bateko posizioa izan ala ez. positionManager
mailan, objectListSharingUris_
zerrendak bezeroaren posizio guztiak gordetzen ditu.
gehitu (URI ez dago zerrendan)
Eguneratu (URI dagoeneko zerrendan dago)
Ezabatu (motakoa = «Gelditu»)
Postua zerrendan gordetzen da positionObject
motako objektu baten moduan.
Postu bat erakutsi
Postu bat jasotzen denean (slot onPositionReceived()
aktibatzen denean, posizioa Qml-era igortzen da eta horrek informazioa [OpenLayers]https://openlayers.org/) JavaScript liburutegira bidaltzen du. Qt WebEngine
modulua liburutegiko web teknologia eta Qml-en arteko zubi bat egiteko aukera ematen du. Postu bakoitza mapa gehitutako geruza batekin irudikatzen da. newPosition()
funtzioak geruza berri bat gehitzen du, updatePosition()
funtzioak geruza koordinatuak eguneratzen ditu, eta `removePosition() funtzioak geruza kentzen du.