three-geo este o biblioteca de vizualizare geografica bazata pe three.js. Folosind three-geo, putem construi cu usurinta modele de teren 3D texturate prin satelit aproape in timp real, specificand coordonatele GPS oriunde pe glob. Geometria terenului se bazeaza pe modelul DEM (Digital Elevation Model) codificat RGB furnizat de API-ul Mapbox Maps.
Terenul este reprezentat de obiecte standard THREE.Mesh. Acest lucru ne face mai usor accesul la geometria subiacenta / matrice de texturi si efectuarea experimentelor originale GIS (Geographic Information System) in JavaScript. (Consultati Utilizarea pentru a obtine programat aceste obiecte mesh).
Credite: aceasta biblioteca a fost posibila datorita
- biblioteci geografice (mapbox, Turfjs) si API-ul Mapbox Maps.
- peterqliu pentru articole informative 3D legate de teren si implementare.
Demo
1) exemple / geo-viewer (live | cod sursa)
Aceasta aplicatie demo include caracteristici precum
- construirea terenului 3D la cerere (printr-un clic al mouse-ului pe harta Leaflet),
- proiectie in timp real a camerei pe Leaflet (cu indicatie oritentaion si HFoV),
- interactiunea terenului cu un fascicul laser asemanator VR,
- masurarea distantelor euclidiene intre punctele de teren,
- camera auto orbitand in jurul axei Z personalizate.
Trai:
-
https://w3reality.github.io/three-geo/examples/geo-viewer/io/index.html?lat=46.5763&lng=7.9904
-
https://w3reality.github.io/three-geo/examples/geo-viewer/io/index.html?lat=46.5763&lng=7.9904&mode=contours
-
https://w3reality.github.io/three-geo/examples/geo-viewer/io/index.html?lat=36.2058&lng=-112.4413
2) exemple / inaltime (live | cod sursa)
Aceasta demonstratie ilustreaza relatia dintre un teren 3D reconstruit si placile de satelit / DEM subiacente.
3) exemple / plat (live | cod sursa)
Cum sa obtineti o vedere aplatizata a terenului prin post-editarea geometriei subiacente.
4) exemple / proiectie (live | cod sursa)
Cum sa inregistrati un nou obiect 3D pe partea de sus a terenului pe baza locatiei sale geografice [latitudine, longitudine, altitudine].
Infiintat
Instalare
Se incarca
Eticheta script: utilizati ThreeGeo dupa
ES6:
Utilizare
Iata un exemplu de cum sa construiti un teren geografic situat la coordonatele GPS (46.5763, 7.9904) intr-un cerc cu o raza de 5 km. Rezolutia zoomului prin satelit al terenului este setata la 12. (Cea mai mare valoare a zoomului acceptata este 17.)
Pentru teste independente, utilizati exemple / simple-viewer (cod sursa).
Pentru utilizare cu NodeJS, activati si aceasta optiune useNodePixels.
abuelas por el culo folladas peludas
hermanos españoles follando nenas peludas
porno españa casero sol sanchez actriz porno
pirno pilladas sin bragas
porno gay castellano sione cooper
pajas trans jovencita caliente
hombres corriendose viejas calientes
viejas en orgias porno comic español
xxx abuelas videos porno peruano
porno esp porno gay guarro
jolla pr shakira follando
coñosxxx maduras españolas anal
maduras españolas camara oculta sexo gratis incesto
esposas compartidas enanas porno
tetonas en español tetas puntiagudas
tias cachondas follando española
tetas puntiagudas pormo
peliculas eroticas gratis pajas en coche
zoofila trio amateur español
incesto italiano porno videos caserosxxx
0, // raza cercului de delimitare (km) 12); // rezolutie zoom scena const = new THREE.Scene (); scene.add (teren); const renderer = new THREE.WebGLRenderer ({canvas}); renderer.render (scena, camera);
Cine foloseste trei geo?
- jet-wasp – Three-geo ca componenta A-Frame (cod sursa)
- locus-pocus – O aplicatie web pentru a va vizualiza zona folosind trei geo
- Aplicatia dvs. – PR noi!
API
In aceasta sectiune, vom enumera metodele API publice de trei geo, unde originea, raza si zoomul sunt parametri comuni acestora:
-
origine Array <number> Centrul terenului reprezentat ca coordonate GPS [latitudine, longitudine].
-
numarul razei Raza cercului care se potriveste terenului.
-
numarul de zoom (intreg) Rezolutia zoomului prin satelit a placilor din teren. Selectati din {11, 12, 13, 14, 15, 16, 17}, unde 17 este cea mai mare valoare acceptata. Pentru o raza fixa, o rezolutie de zoom mai mare are ca rezultat mai multe apeluri API de tip tileet.
ThreeGeo
-
constructor (opts = {})
Creati o instanta ThreeGeo cu parametri.
-
opts.tokenMapbox = “” sir token API Mapbox. Acest lucru trebuie furnizat.
-
opts.unitsSide = 1.0 number Lungimea laterala a patratului care se potriveste terenului in spatiul WebGL.
-
opts.useNodePixels = false boolean Pentru a utiliza three-geo cu NodeJS, trebuie sa setati in mod explicit aceasta optiune la true. [Adaugat in v1.4.3]
-
-
async getTerrainRgb (origine, raza, zoom) [Adaugat in v1.4]
Returneaza un obiect THREE.Group care reprezinta o suprafata 3D a terenului.
Obiectul grup contine un Array <THREE.Mesh> ca. Copii. Fiecare retea corespunde unei geometrii partiale a terenului texturat cu imagini din satelit.
-
async getTerrainVector (origine, raza, zoom) [Adaugat in v1.4]
Returneaza un obiect THREE.Group care reprezinta o harta de contur 3D a terenului.
Obiectul grup contine un Array <THREE.Object3D> ca. Copii. Fiecare obiect copil este fie un THREE.Mesh extrudat cu atributul .name prefixat de dem-vec-shade- <ele> -, fie un THREE.Line cu .name prefixat de dem-vec-line- <ele> – (<ele > este inaltimea fiecarui contur in metri).
-
getProjection (origine, raza, unitatiSide = 1.0) [Exemplu]
Returneaza un obiect {proj, projInv, bbox, unitsPerMeter} care include functii si parametri legati de transformare, unde
-
proj (latlng) este o functie care mapeaza coordonatele geografice latlng (o matrice [lat, lng]) la coordonatele WebGL [x, y].
-
projInv (x, y) este o functie care mapeaza coordonatele WebGL [x, y] la coordonatele geografice [lat, lng].
-
bbox este o matrice [w, s, e, n] care reprezinta caseta de delimitare calculata a terenului, unde w (Vest) si e (Est) sunt limite longitudinale; si s (Sud) si n (Nord) sunt limite latitudinale.
-
unitsPerMeter este lungimea in spatiu WebGL pe metru.
-
API vechi bazat pe apelare inversa
-
getTerrain (origine, raza, zoom, callbacks = {})
-
functia callbacks.onRgbDem (mesh) {} Implementati acest lucru pentru a solicita geometria terenului. Apelat atunci cand se obtine geometria intregului teren.
- mesh-uri Array <THREE.Mesh> Toate ochiurile apartinand terenului.
-
callbacks.onSatelliteMat function (mesh) {} Implementati acest lucru pentru a solicita texturile satelitului terenului. Apelat cand se obtine textura satelitului fiecarei retele apartinand terenului.
- plasa TREI. Plasa Una dintre ochiurile care face parte din teren.
-
functia callbacks.onVectorDem (objs) {} Implementati acest lucru pentru a solicita harta de contur a terenului. Apelat cand se obtine harta de contur a terenului.
- objs Array <THREE.Object3D> ochiuri extrudate ( TREI. Obiecte mesh cu atributul .name prefixat de dem-vec-shade- <ele> -) si linii ( THREE.Line obiecte cu atributul .name prefixat de dem-vec-line- <ele> -), unde <ele> este inaltimea fiecarui contur in metri.
-








