„NASA World Wind SDK” változatai közötti eltérés
(→Koncepció) |
|||
10. sor: | 10. sor: | ||
Az információk megjelenítéséhez rétegek szükségesek. Minden World Window tartalmaz egy listát (Layer List) amelyben ott vannak a hozzá tartozó layerek. Amikor a World Window kirajzolja az ablakot, akkor végigmegy ezen a listán és sorban megrajzolja a benne lévő layereket. | Az információk megjelenítéséhez rétegek szükségesek. Minden World Window tartalmaz egy listát (Layer List) amelyben ott vannak a hozzá tartozó layerek. Amikor a World Window kirajzolja az ablakot, akkor végigmegy ezen a listán és sorban megrajzolja a benne lévő layereket. | ||
− | < | + | <syntaxhighlight lang="javascript" line='line'> |
<div style="position:relative"> | <div style="position:relative"> | ||
29. sor: | 29. sor: | ||
wwd.addLayer(new WorldWind.ViewControlsLayer(wwd)); | wwd.addLayer(new WorldWind.ViewControlsLayer(wwd)); | ||
− | </ | + | </syntaxhighlight > |
==Főbb funkcionalitások== | ==Főbb funkcionalitások== |
A lap 2017. április 24., 21:28-kori változata
Tartalomjegyzék
Bevezetés
A NASA World Wind SDK egy ingyenes API virtuális glóbuszokhoz. Segítségével könnyen vizualizálható interaktív háromdimenziós glóbusz vagy bármilyen földrajzi információ.
http://people.inf.elte.hu/hagtabi/foldgomb
Koncepció
A Web World Wind egy komponens amely beágyazódik a weboldalba. Ezt a komponenst hívjuk World Windownak. A World Window objektum a funkcionalitást egy HTML canvas köré építi. A canvas általában egy "div" és az attribútumként megadott id-val paraméterezzük a World Window objektumot. Egy oldal több World Widow objektumot tartalmazhat, mindegyik canvashoz tartozik egy.
Az információk megjelenítéséhez rétegek szükségesek. Minden World Window tartalmaz egy listát (Layer List) amelyben ott vannak a hozzá tartozó layerek. Amikor a World Window kirajzolja az ablakot, akkor végigmegy ezen a listán és sorban megrajzolja a benne lévő layereket.
1 <div style="position:relative">
2 <canvas id="canvasOne" width="1000" height="1000" style="width: 100%; height: auto">
3 </canvas>
4 </div>
5
6 // Létrehozzuk a World Window-t
7 var wwd = new WorldWind.WorldWindow("canvasOne");
8
9 // Létrehozzuk a layereket
10 wwd.addLayer(new WorldWind.BMNGLayer());
11 wwd.addLayer(new WorldWind.BingAerialWithLabelsLayer(null));
12
13 // Hozzáadjuk a layereket
14 wwd.addLayer(new WorldWind.CompassLayer());
15 wwd.addLayer(new WorldWind.CoordinatesDisplayLayer(wwd));
16 wwd.addLayer(new WorldWind.ViewControlsLayer(wwd));
Főbb funkcionalitások
Alakzatok
Szövegek
// Példa adat
var peaks =
[
{
'name': "Mount McKinley\n(Denali)", // Mount McKinley
'state': "Alaska",
'elevation': 6194,
'latitude': 63.0690,
'longitude': -151.0063
}];
var text,
textAttributes = new WorldWind.TextAttributes(null),
textLayer = new WorldWind.RenderableLayer("U.S.A. Peaks");
//Alap attribútumok beállítása (pl: szín)
textAttributes.color = WorldWind.Color.CYAN;
textAttributes.depthTest = false;
//Létrehozzuk a szöveg "alakzatokat"
for (var i = 0, len = peaks.length; i < len; i++) {
var peak = peaks[i],
peakPosition = new WorldWind.Position(peak.latitude, peak.longitude, peak.elevation);
text = new WorldWind.GeographicText(peakPosition, peak.name + "\n" + peak.state);
//Beállítjuk az alakzatohoz a szöveget
text.attributes = textAttributes;
//Hozzáadjuk a szöveget a layerhez
textLayer.addRenderable(text);
}
//A szöveg layert hozzáadjuk a globál layerhez
wwd.addLayer(textLayer);
//Létrehozunk egy managert, hogy tudjuk vezérelni a szöveg réteget.
var layerManger = new LayerManager(wwd);
Utak
// Úthoz tartozó poziciók létrehozása
var pathPositions = [];
pathPositions.push(new WorldWind.Position(40, -100, 1e4));
pathPositions.push(new WorldWind.Position(45, -110, 1e4));
pathPositions.push(new WorldWind.Position(46, -122, 1e4));
// Az út létrehozása
var path = new WorldWind.Path(pathPositions, null);
path.altitudeMode = WorldWind.RELATIVE_TO_GROUND;
path.followTerrain = true;
path.extrude = true;
path.useSurfaceShapeFor2D = true;
// Az úthoz tartozó attribútumok étrehozása
var pathAttributes = new WorldWind.ShapeAttributes(null);
pathAttributes.outlineColor = WorldWind.Color.BLUE;
pathAttributes.interiorColor = new WorldWind.Color(0, 1, 1, 0.5);
pathAttributes.drawVerticals = path.extrude;
path.attributes = pathAttributes;
// Kiemelés létrehozása
var highlightAttributes = new WorldWind.ShapeAttributes(pathAttributes);
highlightAttributes.outlineColor = WorldWind.Color.RED;
highlightAttributes.interiorColor = new WorldWind.Color(1, 1, 1, 0.5);
path.highlightAttributes = highlightAttributes;
//Az utat hozzáadjuk egy layerhez, és betesszük a globális layerbe
var pathsLayer = new WorldWind.RenderableLayer();
pathsLayer.displayName = "Paths";
pathsLayer.addRenderable(path);
wwd.addLayer(pathsLayer);
//Layermanager létrehozása
var layerManger = new LayerManager(wwd);
//Eseménykezelés a kiemeléshez
var highlightController = new WorldWind.HighlightController(wwd);