Viac

Pomôcť väzbe na vyskakovacie okno vrstvy dynamickej mapy v letáku Esri?


Experimentoval som s webovou mapou pomocou príkladov Esri Leaflet a narazil som na problém s načítaním vyskakovacích okien. Som schopný úspešne načítať údaje zo služby REST a zobrazujú sa správne, ale po kliknutí na každú funkciu sa nevytvorí žiadne kontextové okno.

Weby = L.esri.dynamicMapLayer ("http://gis.montgomerycountymd.gov/ArcGIS/rest/services/General/Fiber_PLOI/MapServer", {}); Sites.bindPopup (funkcia (chyba, featureCollection) {if (chyba || featureCollection.features.length === 0) {return false;} else {return 'Name:' + featureCollection.features.properties.NAME;}})) ;

Dôvodom je, že vlastnosť features of featureCollection je pole. Z tohto dôvodu budete musieť buď prejsť všetky, alebo len zadať statickú pozíciu indexu, ak chcete získať odkaz na prvú jednotlivú funkciu.

vrátiť 'Meno:' + featureCollection.features [0] .properties.NAME;}

nastavenie zarážky v rámci spätného volania, ktoré spustí bindPopup, je najlepší spôsob, ako získať lepšiu predstavu o tom, čo sa presne vracia a ako s tým môžete pracovať.


Ak chcete zahrnúť a nakonfigurovať interaktívne mapy ako súčasť svojho modelu SAP, musíte v informačných paneloch systému SAP vytvoriť dashboard s povolenou mapou a na pridanie údajov systému SAP BusinessObjects do mapy použiť aplikáciu Esri Maps Designer, aplikáciu na konfiguráciu máp v aplikácii Esri Maps pre SAP BusinessObjects.

Mapa je priestorový dokument zložený z jednej alebo viacerých vrstiev. Vrstva je spôsob, akým Esri Maps pre SAP BusinessObjects vizuálne predstavuje geografické množiny údajov. Vrstva je podobná položke legendy na papierovej mape. Na cestovnej mape môžu byť napríklad cesty, národné parky, politické hranice a rieky považované za rôzne vrstvy. Keď do mapy pridáte obchodné údaje SAP Dashboards, Esri Maps pre SAP BusinessObjects vytvorí vrstvu a zobrazí ju na table Obsah. Akonáhle je vrstva vytvorená, môžete konfigurovať jej štýl, nastaviť jej priehľadnosť, povoliť klastrovanie alebo tepelné mapy, zapnúť vyskakovacie okná a podobne.

Pokročilí používatelia môžu pracovať priamo s kódom špecifikácie mapy - buď na aplikovaní špecifikácie mapy jednej mapy na inú mapu, alebo na mape vykonať zmeny priamo úpravou kódu. Ďalšie informácie nájdete v časti Úprava špecifikácie mapy.


Mapovanie údajov z globálnej databázy udalostí, jazyka a tónu spoločnosti Google (GDELT)

Databázy udalostí vs. GKG
GDELT pozostáva z dvoch databáz: 1) udalosť a 2) databáza Global Knowledge Graph (GKG). Databáza udalostí sa viac zameriava na to, čo a kde, zatiaľ čo GKG sa zameriava na to, ako sa niečo hovorí. V databáze udalostí môžete hľadať podľa aktéra (iniciátora a obete) a podľa kategórie výmeny / rôznych typov kódov udalostí. S GKG môžete vyhľadávať podľa kľúčového slova.

Udalosti jedného dňa hodnotené vyššie. Kliknutím na mapu ju zväčšíte.
Prístup a sťahovanie údajov
K údajom GDELT je možné získať prístup rôznymi spôsobmi pre široký okruh používateľov od začiatočníkov až po pokročilých. Môžete použiť analytickú službu, Google Cloud alebo nespracované údaje-v tomto prípade údaje o udalostiach. Mnoho množín údajov je oddelených tabulátorom. Názvy stĺpcov nájdete v dokumentácii. Preskočte na koniec tohto článku a získajte ďalšie odkazy!

Analytická služba
Väčšinu času som strávil skúmaním analytickej služby, ktorá vám umožňuje exportovať nespracované údaje, mapovať ich, zobrazovať časové harmonogramy a množstvo ďalších skvelých funkcií. Poskytuje všetky druhy nástrojov na prístup, export a analýzu údajov vrátane vytvárania tepelných máp, dynamických súborov KML, časových osí, sieťových diagramov, grafov tónov a grafov slov!


Prezentácia ZoomCharts na XXVII udalosti DevClub.lv zameranej na JavaScript

Spoluzakladateľ ZoomCharts a technický riaditeľ Viesturs Zariņš predniesli 15. januára 2015 v kancelárii Microsoft Latvia veľmi úspešnú prezentáciu na XXVII DevClub.lv. DevClub.lv je komunita lotyšských IT špecialistov, ktorí sa stretávajú na mesačných podujatiach a organizujú bezplatné diskusie a prezentácie. Prostredníctvom nich môže miestna komunita IT zdieľať znalosti a skúsenosti a môže vytvárať siete a komunikovať o všetkom, čo súvisí s informačnými technológiami.

Zariņš hovoril o výzvach, ktorým je potrebné pri vývoji JavaScriptu SDK čeliť a prekonať ich. Jeho diskusia vyvolala veľký záujem návštevníkov a skončila sa záplavou otázok a rozhovorov o ponukách v rámci IT komunity.

Pozrite sa na tento prehľad Zariņšovej prezentácie v programe PowerPoint a zistíte, prečo je ZoomCharts, pokiaľ ide o funkčnosť a rýchlosť, bezkonkurenčný softvér na vizualizáciu údajov na svete.

Je naozaj ťažké hovoriť o ZoomCharts, kým neuvidíte, ako funguje. Takže robíme grafy. Ale robíme interaktívne grafy. Môžete vziať graf a presunúť ho, môžete ho priblížiť a je veľmi interaktívny a zobrazuje údaje. V zásade poskytujeme vizualizáciu veľkého množstva údajov veľmi interaktívnym spôsobom.

Pri bežných grafoch zvyčajne dostanete obrázok. Začneme obrázkom a prejdeme k údajom. Aby sme ukázali niekoľko ďalších príkladov, máme koláčový graf, graf na základe údajov. Môžeme sa teda pozrieť na ďalšie údaje a môžeme ísť ešte hlbšie a vrátiť sa späť. Vytvárame grafy na skúmanie údajov.

ZoomCharts nie je ďalšou knižnicou grafov HTML5. Robíme interaktívne veci, robíme to rýchlo, zameriavame sa na dotyk a prácu s veľkými dátami. To je produkt.

Ako sme sa sem dostali? Všetko sa to začalo asi pred 20 rokmi, keď existoval DOS6. Príbeh tam bol celkom jednoduchý. Mali ste obrazovku 320 𴣈 s 80 bitmi na pixel. A práve ste na tie pixely napísali, čo ste chceli. Prišli Windows a v podstate všetko zmizlo. Bolo to náročné a závislé od hardvéru.

Web opäť mení scénu. Grafika je opäť zábava. Môžeme urobiť to, čo sme robili za starých čias, ale dokážeme to urobiť oveľa rýchlejšie, pretože grafickú akceleráciu máme takmer na každom zariadení.

S novými vecami prichádzajú aj nové výzvy. Existuje mnoho zariadení a každé zariadenie má svoj vlastný prehliadač, možnosti a rozlíšenia a výkon sa veľmi líši. Práve s tým práve pracujeme a to je hlavná výzva.

Trochu o nastavení vývoja: Píšeme v jazyku JavaScript, pretože je veľmi prehľadný. Ľahko sa to číta a ľahko píše. Používame GitHub, čo je v dnešnej dobe celkom bežné. Systémy staviame v JavaScripte. Chrome je náš najlepší priateľ. Všetky ladenie, testovanie a profilovanie robíme v prehliadači Chrome. Skutočne pomáhajú priniesť vývoj webu pre široké masy. Vykonávame automatizované testy. V SDK je automatizácia veľmi užitočná. Nie sme na úrovni, kde by sme mali 15 zariadení na testovanie, ale možno sa tam dostaneme. Máme radi WebStorm a Vim.

Čo sa týka grafiky, pracujeme na troch veciach: Canvas, SVG a WebGL. Plátno je veľmi rýchle na každom zariadení. SVG je veľmi pekné kvôli CSS. Môžete ho štylizovať, môžete ho animovať, pretože je pekne škálovateľný, ale je pomalý. Nefunguje to pri interakciách. Aby graf fungoval interaktívne, musíte zachovať snímkovú frekvenciu najmenej 30 snímok za sekundu. Výkon je hlavným cieľom, na ktorý sa pozeráme. WebGL je veľmi pekný, ale stále menej ako 50% zariadení podporuje WebGL.

Vybrali sme si Canvas. Je to veľmi jednoduché rozhranie. Získate pixelový buffer a môžete naň jednoducho namaľovať. Existujú tri druhy operácií: môžete maľovať tvary, text a obrázky. Je to veľmi jednoduché a všetky zariadenia to implementujú rovnako. Doteraz sme sa nestretli so žiadnym zariadením, ktoré by implementovalo plátno spôsobom, ktorý by sa líšil od ostatných. V zásade, ak zariadenie podporuje plátno, sme v poriadku. Plátno je veľmi matematické. Súradnice máte všade. Animácie si musíte robiť sami. Je to trochu ošemetné, pretože musíte urobiť veľa starostlivosti o domácnosť sami, ale je to aj výhoda. Interaktivitu môžete vykonávať veľmi jednoducho. Ovládanie animácií je veľmi jednoduché. Ďalšou jednoduchou vecou na plátne je elegantná degradácia. Môžete odstrániť tiene a výkon bude stúpať. Je ľahké zmerať frekvenciu snímok, pretože maľujete každý rám. Zmeriate snímkovú frekvenciu a rozhodnete sa, čo chcete maľovať, aby ste dosiahli požadovaný výkon. Všetky zmeny v zobrazení sú bezplatné. To sa líši, ak ho porovnáte s SVG alebo WebGL, kde musíte pridať alebo odstrániť prvky zo scény. Ak chcete niečo zmeniť, vykonajte alebo nevykonajte časť svojho kódu, a to je pre interaktivitu veľký prínos, pretože v interaktivite v zásade robíte veľké gestá a úplne to mení scénu a vy nechcete, aby váš graf na niekoľko snímok zmrazil, aby sa aktualizovali zmeny - chcete, aby bol skutočne rýchly.

Vybrali sme niekoľko knižníc tretích strán. Raphael je pre vektorovú grafiku, Hammer.js je pre vstup, ako je detekcia myši a dotyku, Leták je pre mapy a Moment.js je pre tlač a analýzu dátumu a času. Ako sme sa vyvíjali, chceli sme čo najmenej knižníc. Prvých dvoch sme sa už zbavili a sami ich implementovali. Ide o to, že keďže chcete, aby bola funkcia čo najplynulejšia a najkvalitnejšia, rýchlo sa dostanete k obmedzeniam knižnice, pretože knižnica je napísaná pre prípad použitia vývojára. Knižnica a váš prípad použitia sa budú určite líšiť v jemných spôsoboch a týmito spôsobmi sa dostanete do procesu vývoja za pochodu. V súčasnej dobe sa snažíme prepísať leták, ale v súčasnej dobe nie. Máme skúsenosť, že knižnice tretích strán sú skvelým spôsobom, ako začať hneď na začiatku, ale za pochodu ich väčšinou vymeníte.

Niekoľko výziev, o ktorých by som chcel hovoriť: responzívny dizajn - existuje teda veľa vecí, ktoré môžeme s responzívnym dizajnom vyriešiť, ale stále je to boj. Pretože toto je Canvas, musíme si všetko urobiť sami a musíme sa spoliehať na CSS. Toto je odvrátená stránka plátna - to, že si naozaj musíte všetko urobiť sami. Vytvorili sme modul, pomocou ktorého sa grafy prispôsobia veľkosti kontajnera. Použili sme veľmi zvláštny hack. Funguje to, ale nie je to jednoduché.

Ďalšia vec je, že Canvas je pixelový buffer, takže ak ho priblížite, dostanete niečo veľmi pixelové. Polovicu problému sme vyriešili pomocou hodnoty devicePixelRatio, ktorá je podporovaná v každom testovanom prehliadači. Jedna vec je, že nepodporujeme Internet Explorer pod verziou 9, pretože Canvas tam nie je podporovaný. To je teda naše najväčšie obmedzenie. Môžete použiť X Canvas, ale je to veľmi pomalé a nechcete používať X Canvas. V každom prehliadači, ktorý podporuje plátno, máte toto zariadenie PixixRatio a môžete jednoducho upscalovať plátno a vyzerá to veľmi pekne a natívne, v zásade ako vektorová grafika. Funguje to na pracovnej ploche. Pri mobilnom a dotykovom priblížení nefunguje. A zatiaľ v prehliadačoch neexistuje spôsob, ako detekovať dotykové priblíženie. Existuje jedna webová stránka, ktorá má asi 10 variantov testovania priblíženia zariadenia, v zásade testovania veľkosti skutočného pixelu obrazovky a žiadna z týchto metód na dotykové priblíženia skutočne nefunguje. Ďalšou vecou je, že ak priblížite skutočne veľký a ak máte obrazovky sietnice, môžete získať veľkosť plátna nad 2048. V tom okamihu sa hardvérová akcelerácia jednoducho vypne. To je na počítačoch Mac celkom konzistentné. Na zariadeniach Windows sa to líši. A na mobilných zariadeniach je to dosť konzistentné. Pri tomto rozlíšení sa hardvérová akcelerácia vypne a vráti sa k vykresľovaniu softvéru. Očividne to nechceme urobiť. V súčasnosti obmedzujeme počet pixelov na plátne. Plátno sa môže zväčšiť, ale skutočný počet pixelov je menší a prehliadač iba zvyšuje kvalitu. Tak zachováme hardvérovú akceleráciu.

Safari je dosť zvláštny prehliadač - líši sa od ostatných prehliadačov v jednom veľmi zaujímavom aspekte. Ak sa v JavaScripte priblížite k 100% CPU, vstupné udalosti budú zablokované. V iných prehliadačoch budú vstupné udalosti spracované bez ohľadu na využitie CPU. Obvykle by ste si len prešli graf a pri načítaní CPU sa väčšina pohybov už neregistrovala. Animácie stále fungujú a všetko vyzerá, že funguje, ale vyzerá to, že sa vám vypne myš. Safari má inú architektúru vstupu. Niekedy dôjde k zablokovaniu prehliadača a spôsobí to, že sa zobrazí plážová lopta a stránka prestane reagovať. Safari sa niekedy jednoducho zrúti. V programe JavaScript JavaScript sa deje niečo rybárske. Safari je pre nás v zásade najhorší prehliadač, aký kedy bol. Poďme teda ďalej

DOM je veľmi pomalý. Ak chcete ísť rýchlosťou 60 snímok za sekundu, aktualizácia prvkov DOM v každom rámci skutočne nefunguje. V súčasnej dobe kvôli tomuto informačnému menu v časovom grafe, ak ho chcete aktualizovať v každom rámci, vyžaduje 30% plného zaťaženia. 70% tvorí graf, 30% generuje DOM. Nielenže všetko regenerovať, ale len aktualizovať pozíciu. Snažíme sa čo najviac vyhýbať aktualizácii DOM. Takmer všetko je plátno. Máme panel s nástrojmi, ktorý je DOM, a toto kontextové menu s informáciami a kontextové menu - to je DOM. Na všetok text prehliadača máme vlastný analyzátor značiek HTML, ktorý rozumie jednoduchým veciam, ako je kurzíva, tučné písmo, nový riadok, a vykreslíme ho iba pomocou vlastného vykresľovača na plátne. Ukladanie do vyrovnávacej pamäte je dosť rýchle.

Na trhu sme jeden rok. Zákazník obvykle príde týmto spôsobom: najskôr si vyskúša a potom položí niekoľko podporných otázok, pretože naša knižnica je celkom nová a dokumentácia jej stále chýba. Potom, čo prídu a povedia: „Áno, kúpime.“ Podpora je veľmi dôležitá. Skutočne sa pokúšame vyriešiť jednodňové riešenie problému a väčšinou to funguje, niekedy nie. Zákazník je zvyčajne rád, ak problémy vyriešime do jedného dňa. To je zhruba časový rámec, na ktorý je zákazník zvyčajne ochotný čakať. Otázka podpory číslo jeden zvyčajne znie: „Povedz mi, čo som urobil zle.“ Číslo dva znie: „Dokážeš niečo urobiť ...“ Doposiaľ nebola podpora veľmi zaneprázdnená. Skutočne nemáme podpornú osobu. Otázky podpory zvyčajne distribuujeme medzi vývojárov. Doteraz to fungovalo dobre.

Testovanie je pre SDK veľmi dôležité, pretože nechcete, aby zákazník povedal: „Hej, toto nefunguje.“ To je dosť trápne. Máme vlastné automatizované testy, ktoré spúšťame pri každom push GIT. Napísali sme si svoje. Pôvodne sme zvažovali použitie Jenkinsa, ale veľmi sa zameriavame na vizuálne veci a zistili sme, že je jednoduchšie napísať vlastné. Máme niečo ako 160 webových stránok distribuovaných v rôznych typoch grafov a každá webová stránka má v zásade stránku s nejakými grafmi. Spustíme ho pomocou programu Phantom, vykreslíme obrázok a skontrolujeme protokoly chýb. Porovnávame obrázky, zaznamenávame výkon a zaznamenávame chyby. Aby bol test úspešný, obrázky musia byť rovnaké. Vykonávame porovnanie pixelov po pixeloch. V konzole by nemali byť žiadne chyby. Výkon je zaznamenaný a pred vydaním ho kontrolujeme. Porovnávanie obrázkov vyzerá veľmi agresívne. Dôvod, prečo to robíme, je ten, že ide o vizuálnu knižnicu, a ak získate zákazníka, integruje váš graf, pridá k nemu vlastný štýl a naozaj by sa mu nepáčilo, keby ste dostali aktualizáciu a zrazu všetko vyzeralo inak. . Preto je to prvá vec, ktorú sme urobili, a toho sa chceme držať.

Do budúcna to chceme v testovaní urobiť ďalej: chceme pridať skutočne interaktívne testovanie. Na to máme vstavaný systém záznamu a prehrávania. Týmto spôsobom sa zaznamenajú všetky vstupné udalosti a namiesto vykresľovania webovej stránky vykreslíte webovú stránku a potom spustíte zaznamenané vstupné udalosti a skontrolujete, či sú rovnaké udalosti, ktoré sa vracajú späť k používateľovi. a ak konečný obrázok vyzerá rovnako. Interaktivita je veľkou súčasťou nášho produktu a my tu chceme všetko zautomatizovať alebo, ako je to len možné, a oslobodiť vývojárov od zaujímavých vecí.

Na jednoduché testovanie sme použili Phantom, ale Phantom je rovnaký ako prehliadač, ktorý sa vykresľuje na stránke. Chceme otestovať každé zariadenie, a tieto zariadenia nemáme v našej kancelárii. V súčasnej dobe pracujeme so službou BrowserStack - službou, ktorá vám poskytne veľa zariadení. Stačí im zadať adresu URL a oni vám poskytnú buď interaktívny režim - rovnako ako obrazovka videa, na ktorej môžete so zariadením interagovať - alebo môžete so zariadením komunikovať automatizovane pomocou Selenium API. Aktuálne sa s nimi integrujeme, aby sme mohli vykonávať automatizované testy na čo najväčšom počte zariadení. Je to teda iný prístup ako nákup 50 zariadení. Uvidíme, či to bude fungovať, ale v súčasnosti vkladáme veľké nádeje a pracujeme s prehliadačom BrowserStack. Majú niektoré problémy, s ktorými sme sa stretli, ale robia veľký pokrok.

Naše veci sú dosť komplikované a 50% času sme strávili ladením a chápaním toho, čo sa deje. Na to používame nástroje Chrome Dev. Takže do debuggeru vložte body prerušenia, inak lokálne premenné spustia program krok za krokom a to je základný nástroj. Body zlomu môžete vložiť kdekoľvek chcete, a ak skutočne máte nejaké podmienky, vložíte ladiaci program do kódu a prehliadač sa tam zastaví.

Profiler vám ponúka rýchly prehľad o zaťažení procesora a pekný prehľad o najhorúcejších funkciách vo vašom kóde. Vojdite dnu a skontrolujte, čo sa deje. Profiler má textové zobrazenie, ktoré vám môže presne ukázať, ktorá funkcia strávila najviac času, a skutočne sa môžete ísť pozrieť do svojho balíka hovorov a zistiť, kde sú problémy.

Časová os je tiež pekná na to, aby ste videli svoju snímkovú frekvenciu a čo sa deje. Chrome robí pekné trojuholníky, ktoré zobrazujú upozornenia na možné problémy. Je to ďalší príjemný nástroj na ladenie, aby ste zistili, kde sú problémy. Chrome robí všetko pre to, aby ukázal, čo sa deje pod kapotou.

Ďalšou príjemnou funkciou je, že všetky tieto debuggery môžete použiť na mobilnom telefóne. Stačí pripojiť mobilný telefón a môžete pokračovať v ladení mobilných zariadení. Môžete to urobiť pre Android, môžete to urobiť pre iOS - s počítačom Mac, nie s počítačom, je to trochu zložité. Doteraz sme skutočne nemali problém, ktorý nie je možné reprodukovať v systéme Android alebo iOS, ale ak máte problém s telefónom Mac, Blackberry alebo Nokia, neviem, ako to ladiť.

Do budúcnosti samozrejme pracujeme na ďalších grafoch a pracujeme na rozšírení API, aby používatelia mohli do samotného grafu pridať funkcie. Mali sme teda niekoľko žiadostí o funkcie, kde ľudia chcú veľmi úzku špecializovanú funkciu, ako je konkrétna interaktivita alebo konkrétne prekrytie ich údajov, a my to chceme urobiť prostredníctvom rozhrania API. V súčasnej dobe stabilizujeme vnútornú architektúru a API by malo byť k dispozícii zhruba o rok.

Jedna vec, ktorú vám nástroje Chrome Dev neposkytujú, je poskytnúť rýchly prehľad o tom, koľko pamäte bolo pridelené, a porovnať ju medzi grafmi. To je ešte jedna vec, ktorú by sme chceli pridať k našim automatizovaným testom, aby sme pochopili, koľko pridelenia pamäte prebieha. Alokácia pamäte nie je pekná, pretože na spustenie musíte spustiť smetiar. A smetiar len zmrazuje animácie. Chcete teda, aby smetiar bežal čo najmenej. V súčasnej dobe skúmame nástroje, ktoré by tieto alokácie sledovali a poskytli by nám číslo.

Uvažujeme o experimentovaní s WebGL, pretože je to budúcnosť. Dostaneme sa tam, keď bude WebGL podporované a prinesie nám to možno nie väčšie zvýšenie výkonu, ale krajšiu grafiku, pretože tieto grafy vyzerajú celkom jednoducho a ak pridáte viac efektov, výkon len dramaticky klesá. Pokiaľ ide o pekné vizuálne efekty, môžete s WebGL urobiť oveľa viac.

Ďalšia vec do budúcnosti: veľmi sme sa rozrástli. Máme viac ako 20 000 kódov CoffeeScript. To znamená niečo ako 40 000 kódov JavaScript. JavaScript je pekný prototypovací jazyk, ale nie je vhodný pre veľké projekty. CoffeeScript odstraňuje niektoré z bežných problémov, ako je porovnávanie podľa hodnoty reťazca, nie podľa skutočnej hodnoty, ale v skutočnosti to nefunguje dlhodobo, pretože refaktorovanie je veľmi náročné. Obvykle strávite dva dni, ak musíte refaktorovať niečo, čo nie je triviálne, a testy nezachytia všetko.

So staticky zadaným jazykom získate kontrolu chýb, získate lepší výkon, pretože jazyk pozná typy údajov pre jednoduché veci a vy ho môžete skutočne vyladiť. V zásade sa prehliadač pokúša optimalizovať za vás. Ak máte typový jazyk, môžete ho vopred optimalizovať. Môžete zabávať minifikátory, ale ak sa pozriete na zmenšený kód, stále je toho veľa, čo je potrebné minifikovať. S CoffeeScriptom sme spokojní, pretože je ľahké písať a čítať a volať z JavaScriptu - to je pre knižnicu SDK veľmi dôležité.

Pozrite sa na produkty ZoomCharts:

Sieťový graf
Prieskum veľkej siete
Preskúmajte prepojené množiny údajov. Zvýraznite relevantné údaje pomocou dynamických filtrov a vizuálnych štýlov. Prírastkové načítanie údajov. Prieskum s uzlami zaostrenia.

Časový graf
Časový navigačný a prieskumný nástroj
Prezrite si denníky aktivít, vyberte časové rozsahy. Viacnásobné dátové rady a osi hodnôt. Prepínanie medzi časovými jednotkami.

Koláčový graf
Úžasne intuitívne hierarchické skúmanie údajov
Získajte rýchly prehľad o svojich údajoch a v prípade potreby ich podrobne rozoberte. Všetko v jednom ľahko použiteľnom grafe.

Fazetový graf
Posúvateľný stĺpcový graf s rozbaľovacou ponukou
Porovnajte hodnoty vedľa seba a poskytnite ľahký prístup k dlhému chvostu.


5.1: Prvky webovej mapy

Poďakovanie: Tento materiál je miernym derivátom modulu kurzu, ktorý napísal Sterling Quinn z Inštitútu elektronického vzdelávania Johna A. Duttona, College of Earth and Mineral Sciences, The Pennsylvania State University, a bol vytvorený so súhlasom autora. Ďakujeme autorovi a Penn State za povolenie na použitie. Materiál je chránený licenciou Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License.

Vytváranie a používanie webových máp sa líši od práce s desktopovým GIS z rôznych dôvodov:

Na webovej mape je potrebné odoslať všetky informácie, ktoré vidíte, “ross the wire ” zo servera do vášho prehliadača, čím sa zavedie latencia.

Na webovej mape možno získavate informácie z niekoľkých rôznych serverov. Výkon vašej mapy je preto obmedzený dostupnosťou a rýchlosťou všetkých serverov, ktoré používate.

Na webovej mape môžu výkonnosť ovplyvniť iní ľudia, ktorí súčasne používajú server.

Tieto úvahy môžu niekedy ľudí zaskočiť. Ak ste napríklad v minulosti používali iba ArcMap alebo QGIS, možno nie ste zvyknutí premýšľať o širokopásmových rýchlostiach alebo o zdieľaní zariadenia s inými ľuďmi.

Zďaleka najväčšou výzvou pre nových webových mapovačov je porozumieť množstvu údajov, ktoré sa zobrazujú na ich mapách, a ako získať všetky tieto informácie nakreslené na obrazovke webového používateľa v sekundových rýchlostiach. Mnoho ľudí, ktorí pracovali s balíčkami GIS pre stolné počítače, je zvyknutých pridávať do mapy desiatky (alebo dokonca stovky) vrstiev a podľa potreby ich zapínať a vypínať. Váš výkonný stolný počítač síce kresbu tohto druhu mapy zvládne, ale ak sa pokúsite presunúť mapu priamo na web, výkon bude neprijateľne pomalý. Server vyžaduje drahocenný čas na iteráciu všetkými týmito vrstvami, načítanie údajov, ich nakreslenie a odoslanie obrázka späť klientovi.

Na vyriešenie tohto problému väčšina webových máp rozdeľuje vrstvy do skupín, s ktorými sa zaobchádza veľmi odlišne. Vrstvy, ktorých jediným účelom je poskytnúť geografický kontext, sú zoskupené a vložené do mapy ako jedna podkladová mapa s dlaždicami. Naproti tomu tematické vrstvy (vrstvy, na ktoré sa zameriava mapa) sú vložené ako jedna alebo viac samostatných webových služieb a umiestnené na vrchu základnej mapy. Okrem toho sa môžete rozhodnúť zahrnúť aj sadu interaktívnych prvkov, ako sú vyskakovacie okná, grafy, analytické nástroje atď.

Poďme sa bližšie pozrieť na tieto tri veci-základné mapy, tematické vrstvy a interaktívne prvky-, aby sme pochopili, ako sa každá z nich vytvára a zobrazuje.

Základné mapy

Základná mapa poskytuje geografický kontext vašej mapy. Inými slovami, zvyčajne to nie je hlavný dôvod, prečo sa ľudia pozerajú na vašu mapu, ale vaša mapa by sa bez nej dala ťažko interpretovať. Najbežnejšími podkladovými mapami, ktoré ste online použili, sú vektorové mapy a diaľkovo snímané snímky (vezmite do úvahy napríklad základné mapy, keď ste používali Mapy Google).

Hoci podkladová mapa môže pozostávať z mnohých podvrstiev (ako sú cesty, jazerá, budovy a podobne), tieto sú často zlúčené do rastrovanej sady obrázkov s dlaždicami a vo vašej webovej mape sa s nimi zaobchádza ako s jednou vrstvou. Tieto kachľové mapy sa často skladajú z tisícov alebo miliónov predkreslených obrázkov, ktoré sú uložené na serveri a odoslané do webových prehliadačov, keď sa ľudia pohybujú po mape. (Budúca lekcia vysvetlí kachľové mapy podrobnejšie.)

Niekedy spolu vytvoria základnú mapu dve kachľové vrstvy. Môžete mať napríklad dlaždicovú vrstvu s leteckými snímkami a druhú dlaždicovú vrstvu s vektorovým prekrytím vozovky, ktorá bola navrhnutá tak, aby prechádzala nad snímky. (V Mapách Google sa to zobrazí, keď začiarknete položku Štítky). Udržanie týchto dvoch dlaždíc oddelených zaberá menej miesta na disku a uľahčuje aktualizáciu snímok.

Tematické vrstvy

Tematické vrstvy (známe tiež ako obchodné alebo prevádzkové vrstvy) sa nachádzajú v hornej časti základnej mapy. Sú dôvodom, prečo ľudia prichádzajú navštíviť vašu mapu. Ak sú umiestnené na základnom mape, nemusia byť zaujímavé pre každého, ale keď sú umiestnené na vašej zameranej webovej mape, predstavujú hlavnú vrstvu záujmu. Ak má vaša mapa názov �rmárske trhy vo Philadelphii, ”, potom sú tematickou vrstvou farmárske trhy. Ak má vaša mapa názov “Migračné vzorce severoamerických vtákov, ”, potom sú migračné vzorce vašou tematickou vrstvou.

Tematické vrstvy sa podobne ako základné mapy niekedy zobrazujú s dlaždicami, čo však nemusí byť vždy možné z dôvodu rýchlo sa meniacej povahy niektorých údajov. Ak napríklad potrebujete zobraziť polohy policajných dodávok v reálnom čase, nemôžete sa spoliehať na vopred nakreslené dlaždice a údaje musíte nakresliť iným spôsobom. Web Mapping Services (WMS) sú navrhnuté tak, aby týmto spôsobom kreslili mapy za behu. Môžete ich použiť pre svoje tematické vrstvy. Ďalšou možnosťou je požiadať server o všetky údaje a pomocou prehliadača ich nakresliť. Tento prístup je vhodný pre interaktívne prvky, ako sú vyskakovacie okná, a keď sa dostaneme k používaniu letáku, budeme o tomto prístupe diskutovať.

Tematické vrstvy spolupracujú s vrstvami základnej mapy a vytvárajú efektívnu webovú mapu. Je zaujímavé, že tematická vrstva nie je vždy najvyššia. Kartograf Esri Charlie Frye opisuje sendvičový prístup “map ”, v ktorom je tematická vrstva (ktorá môže byť dlaždicová alebo nie) umiestnená medzi dve vrstvy kachľovej základnej mapy, ktoré poskytujú geografický kontext. Spodná vrstva má fyziografické vlastnosti a horná vrstva má štítky a hranice. Toto je 𠇋read. ” Tematická vrstva v strede je “meat. ” Blogový príspevok od Charlieho Fryeho obsahuje dôkladnejšie vysvetlenie a užitočný diagram. Tento prístup môžete použiť so softvérom FOSS.

Vaša mapa môže obsahovať niekoľko tematických vrstiev, ktoré umožníte používateľom zapínať a vypínať. Na tento účel môžete použiť jednu webovú službu s viacerými podvrstvami alebo viacero webových služieb, z ktorých každá obsahuje jednu vrstvu. Aby však bola vaša aplikácia použiteľná a relatívne rýchla, mali by ste sa vyhnúť zahrnutiu mnohých tematických vrstiev do svojej webovej mapy.

Interaktívne prvky

Webové mapy sú často vybavené interaktívnymi prvkami, ktoré vám môžu pomôcť dozvedieť sa viac o vrstvách na mape. Môžu to byť informačné kontextové okná, ktoré sa zobrazia po kliknutí na funkciu, grafy a grafy nakreslené v samostatnej časti stránky, posuvníky, ktoré upravujú časový úsek údajov zobrazených na mape atď. Niektoré webové mapy vám umožňujú upravovať údaje GIS v reálnom čase alebo odoslať úlohu geoprocesingu (napr. Analytickú) na server a zobraziť odpoveď nakreslenú na obrazovke. Iné vám umožňujú zadať sériu zastávok a medzi nimi zobraziť smer jazdy.

Vďaka týmto prvkom mapa ožije. Kľúčom k vytvoreniu efektívnej webovej mapy je zahrnúť interaktívne prvky, ktoré sú pre vaše publikum najužitočnejšie, bez toho, aby ste ich zahlcovali možnosťami alebo príliš komplikovali úlohy. Aj malá starostlivosť o domácnosť, ako napríklad zahrnutie používateľsky prívetivých aliasov polí do vyskakovacích okien, môže prispieť k tomu, aby bola vaša mapa prístupná a užitočná.

Interaktívne prvky sú súčasťou vašej webovej mapy, ktorá vyžaduje najviac prispôsobené programovanie. Množstvo interaktivity, ktoré môžete voľne pridať, môže silne korelovať s množstvom programovania JavaScript, ktoré poznáte. Otvorené mapovanie webu Rozhrania aplikačného programu (rozhrania API pozri [1] v spodnej časti), ako napríklad OpenLayers a Leaflet, poskytujú praktické metódy na vykonávanie niektorých z najbežnejších činností, ako je napríklad otváranie kontextového okna.

Neskôr v tejto lekcii si pozriete niektoré webové mapy a prediskutujete interaktívne prvky, ktoré poskytujú. K tejto téme sa tiež vrátite neskôr v priebehu, keď začnete používať rozhrania API na mapovanie webu na zostavenie všetkých svojich vrstiev do webovej mapy.

Získanie praxe s identifikáciou prvkov webovej mapy

Poďme si trochu osvojiť identifikáciu týchto prvkov, prevedieme vás niekoľkými jednoduchými webovými mapami a poukážeme na základnú mapu, tematické vrstvy a interaktívne prvky.

Úrovne nádrže v Texase

Prvá mapa, na ktorú sa pozrieme, je Texas Reservoir Levels, zverejnená na Texas Tribune. Jedná sa o jednoduchú, ale užitočnú mapu podobného rozsahu, akú vytvoríte v tomto kurze. Nájdite si chvíľu na otvorenie tejto mapy a preskúmajte ju.

Základná mapa je kachľová mapa hostená spoločnosťou Mapbox.com, cloudovou službou hostenia máp, ktorá na tento účel ponúka množstvo základných máp. Nenápadná svetlo šedá farba umožňuje akýmkoľvek tematickým vrstvám vystúpiť na vrchol vizuálnej hierarchie. Základná mapa obsahuje cesty, štáty, mestá a niekoľko ďalších typov funkcií, ktoré sa zobrazujú pri priblížení. Neobsahuje však žiadne nejasné typy funkcií, ktoré by používateľovi ukradli záujem o tematické vrstvy.

Tematická vrstva sa skladá z kruhov znázorňujúcich hladiny nádrže. Kreslí ich webový prehliadač. Pri prvom načítaní mapy sa geografické polohy nádrží načítajú zo súboru GeoJSON (formát na kódovanie rôznych štruktúr geografických údajov - pozri http://geojson.org/).

Interaktívny prvok tejto mapy pozostáva z informačného okna v pravom hornom rohu mapy, ktoré mení obsah, keď umiestnite kurzor myši na funkciu. Keď do svojich webových máp pridávate interaktívne prvky, často pridávate kód, ktorý „počúva“ pre konkrétne udalosti, ako je kliknutie, klepnutie alebo podržanie kurzora nad funkciou.

Súbor nástrojov predstavy o vývoji - interaktívna mapa príjmu

Ďalej otvorte súpravu nástrojov na predstavenie vývoja - interaktívna príjmová mapa New Yorku. Táto mapa je vytvorená pomocou Flash, takže máme trochu menšiu predstavu o tom, čo sa deje v zákulisí. Základné prvky mapy sú však ľahko identifikovateľné.

Základná mapa opäť používa neintruzívny čiernobiely dizajn. Pohybujte sa dostatočne okolo a všimnete si, že je to vložené na webovú mapu pomocou dlaždíc.

Tematická vrstva je vektorovým obrysom newyorských štvrtí. Za tým stoja niektoré údaje o príjmoch z amerického sčítania ľudu, ktoré boli agregované k hraniciam susedstva. Táto vrstva je tiež navrhnutá tak, aby bola trochu neopísateľná, pretože autori mapy skutočne chcú, aby ste sa pozreli na farebné bloky predstavujúce populáciu na rôznych úrovniach príjmu.

Interaktívne prvky sú to, čo robí túto mapu živou. Hovering over a neighborhood causes a subtle highlight, inviting you to click for more information. When you click, the graph adjusts itself to update the population counts (this is where the Flash animation comes in handy). Tooltips on hover and an informational window in the upper right corner provide additional information.

Northern Plains Conservation Network Interactive Web Map

To wrap up this exercise, take a look at the Northern Plains Conservation Network Interactive Web Map. Get a feel for the map by toggling on and off some of its many layers. This map appears to be created in JavaScript using elements of the Google Maps API.

  • The basemap is tiled. It is the "Terrain" layer from the Google Maps API. It is up to you to decide whether this is helpful (this map does have some connection to topography since it is a map of the Northern Plains) or distracting (the map is more colorful than the previous two basemaps we&aposve seen).
  • Most, if not all, of the thematic layers also seem to be tiled. This makes sense when you consider that most of these layers are probably not changing on a regular basis therefore they can be committed to tiles and brought into the application more rapidly than a dynamically drawn map.The tiles are being pulled from CartoDB, a cloud-based map authoring and hosting service. Sometimes it&aposs easiest to use someone else&aposs online services to design and host your tiles. In an upcoming lesson, you&aposll get a feel for the effort it takes to design and host your own tiles (which you may decide to do if you want to avoid hosting fees). The large number and variety of thematic layers in this map make it somewhat difficult to determine the purpose and audience of the map.
  • The interactive elements include the ability to toggle layers, adjust layer transparency, search for a location, and take a screen capture. You must use the legend to interpret the data ranges. It appears there is a button for querying the data, but I couldn&apost immediately figure out how to use it.
Other maps

Here are a few other maps you can look at if you want to keep practicing. Although some of these maps have very nice elements, I am recommending them for their variety, not for their excellence in any particular realm.

From this brief exercise, you can begin to see the various approaches that can be used to put together a web map. Hopefully, you can look at a web map and immediately begin to see how the layers were broken up into basemap layers and thematic layers. Whenever you see a web map, you should also think about the interactive elements that are present and decide whether they are usable and applicable.

[1] An API (application program interface) is a set of routines, protocols, and tools for building software applications.


Monday, March 16, 2015

Businesses Based on Open Source GIS

Businesses based on free and open source GIS software (FOSS GIS) offer a number of opportunities to owners and clients alike. Like Red Hat and Linux, these companies offer several services using FOSS GIS. At least two have their own suite or development tools (Boundless OpenGeo Suite and Cartologic's Cartoview). These services include: consulting, development, training (sometimes certification/testing), and support.

In today's post, we will look at a sample of companies out there, where they are based, their philosophy, and specific areas of interest. All businesses that I reviewed offer sample or demo web maps and apps on their websites. Although the companies are based around the world, they all offer services to clients whether near or far.

New York-based Boundless is the biggest company out there with 45 employees and venture capital financing. It has its own suite of software OpenGeo Suite and emphasizes interoperability of different combinations of open and paid-software. Boundless has a big list of big name clients across different sectors.

This same philosophy that GIS tools can come from different realms is also shared by Cartologic based on Giza, Egypt. They are a team of geospatial IT developers and focus on Business Integration, GIS Mobile Applications, and GeoPortals. Cartologic offers the free Cartoview an open source web platform for publishing maps. (I will cover Cartoview in a later post.)

Many businesses recognize that a client's needs
can be met in more than one way, as this diagram
from Cartologic illustrates.
South Africa-based Kartoza was formed as a merger between Linfiniti Consulting (Tim Sutton) and Afrispatial in 2014. Kartoza's key business areas are: Training and Education, Deployment and Support, and Software Development. Kartoza is also a Boundless partner for Southern Africa.

The UK-based Lutra Consulting specializes in flood risk. Like many of these, businesses, they have given back to the open source community--especially through the creation of QGIS plugins, like AutoTrace. They are currently crowd funding for AutoTrace 2.

gvSIG Association (SIG is Spanish for GIS or un sistema de informacion geografica). gvSIG moved from a DOT.org to a DOT.com. It is located in Valencia, Spain and is based off of the free desktop and mobile platforms of gvSIG.

NaturalGIS, based in Evora, Portugal, utilizes QGIS and PostGIS/PostgreSQL features services including: Consulting, Web Development, Training, Data Analysis, Support, and Development.

Many businesses, like NaturalGIS, use QGIS as the go-to replacement for ArcGIS.
Businesses that offer commercial support for QGIS:
http://www2.qgis.org/en/site/forusers/commercial_support.html

Contact me
If you are a business based on open source GIS software, I want to hear more about you! Please leave a link and a little about you in the comment section below. I am thinking about compiling a list of different companies.


8.6 Using Google Maps and Bing Maps

Applications can display Google Maps tiles or Microsoft Bing Maps tiles as a built-in map tile layer, by creating and adding to the map window an instance of MVGoogleTileLayer or MVBingTileLayer , respectively. Internally, the Oracle Maps client uses the official Google Maps or Bing Maps API to display the map that is directly served by the Google Maps or Microsoft Bing Maps server.

To use the Google Maps tiles, your usage of the tiles must meet the terms of service specified by Google (see https://developers.google.com/readme/terms ).

To use the Bing Maps tiles, you must get a Bing Maps account. Your usage must meet the licensing requirement specified by Microsoft (see http://www.microsoft.com/maps/ ).

If you need to overlay your own spatial data on top of the Google Maps or Microsoft Bing Maps tile layer, see also Section 8.7, "Transforming Data to a Spherical Mercator Coordinate System".)

The following sections describe the two options for using built-in map tile layers:

8.6.1 Defining Google Maps and Bing Maps Tile Layers on the Client Side

To define a built-in map tile layer on the client side, you need to create a MVGoogleTileLayer or MVBingTileLayer object, and add it to the MVMapView object. (As of Oracle Fusion Middleware Release 11.1.1.6, MVGoogleTileLayer uses the Google Maps Version 3 API by default, and MVBingTileLayer uses the Bing Maps Version 7 API by default.)

For example, to use Google tiles, add the Google tile layer to your map:

In your application, you can invoke the method MVGoogleTileLayer.setMapType or MVBingTileLayer.setMapType to set the map type to be one of the types supported by the map providers, such as road, satellite, or hybrid.

For usage examples and more information, see the JavaScript API documentation for MVGoogleTileLayer and MVBingTileLayer , and the tutorial demos Built-in Google Maps Tile Layer and Built-in Bing Maps Tile Layer .

8.6.2 Defining the Built-In Map Tile Layers on the Server Side

You can define a built=-in map tile layer on the server side and use it as a regular MapViewer tile layer on the client side. To define a built-in map tile layer on the server side, follow these steps:

Log into the MapViewer Administration Page (explained in Section 1.5.1).

Select the Manage Map Tile Layers tab and click Create .

When you are asked to select the type of map source, choose Google Maps or Bing Maps and click Continue .

Select the data source where the tile layer is to be defined.

Set the license key that you have obtained from the map provider.

Click Submit to create the tile layer.

After you have created the built-in map tile layer on the server side, you can use it like any other tile layer served by MapViewer. You do not need to add any <script> tag to load the external JavaScript library.

The following example shows a Bing Maps tile layer defined on the server side:

In your application, you can invoke the method MVMapTileLayer.setMapType to set the map type to be one of the types supported by the map providers, such as road, satellite, or hybrid.


Kľúčové slová

Jan Kwakkel received a Ph.D. from Delft University of Technology. His research focused on the treatment of uncertainty in long-term airport planning. He currently works as a postdoc on the treatment of uncertainties in model-based decision support for fresh water supply in The Netherlands at Delft University of Technology. Next to this research, he also has an interest in scientometrics policymaking.

Stephen Carley is currently working towards a Ph.D. at the Georgia Institute of Technology in Economic Development Policy. His research interests focus on the geography of advanced technology. In addition to this research, he is also interested in software development.

John Chase is a senior analyst at SRI International's Center for Science, Technology, and Economic Development. His current work is focused on the development of quantitative approaches to characterize scientific research and technology development activities in support of program evaluation and planning.


Help binding Dynamic Map Layer popup in Esri Leaflet? - Geografické informačné systémy

I am making a map where I want a polygon filled with data from a WMS-service. What is outside the polygon from the WMS should be transparent. I am using QGIS 2.18.4.

It is a bit similar to a question on How do I clip OSM basemap with a polygon? here on GIS Stackexchange, but the solution there (inverting a polygon manually) is not sufficient. Neither would the more up to date visualization tool "Inverted polygons" be of any immediate help.

Example 1) In this example I have two WMS-layers. One in colors and one in gray. I want to use the polygon to separate the gray and color WMS-layers so that the focus area is in colors while the area around is gray. It can be accomplished in part with setting the color to gray and then playing around with transparency and/or Layer blending mode. You get the idea, but the other (gray wms-layer) does not get into play.

Example 2) This is the clearest illustration. Here I have a marine management areas layer where I want to highlight fisheries activities. The fisheries activities are from a WMS-layer with the Norwegian Coastal Administration. I do not want to show the fisheries activities in the area outside the marine management areas.

Using the first example the below image shows how I am stuck at where I get to mask out the area around the focus area. I want the blue area to mask out the color wms, and only show the gray one.

I can not find any way of connecting the masking layer to just one of the layers underneath. Existuje spôsob, ako to urobiť?


Results and discussion

CAS modeling example

This section uses a simple demonstration example to show how to develop models of complex adaptive systems with Repast Simphony. The approach presented here follows the methodology detailed in North and Macal (2007) and North and Macal (2009). The example scenario is intentionally simple so that it clearly shows the essential steps of the model design and development process. The scenario is an innovation diffusion environment in which a group of people randomly circulates. People occasionally communicate ideas when they encounter one another. When an idea is transferred, a new link is made between the transferring parties, and then any existing network links are forgotten. People occasionally develop new ideas. When they do so, they forget all of their old links. The quality of ideas is rated and tracked over time. The question posed to the simulation is: what is the quality of ideas over time?

In the sections that follow we discuss the appropriateness of using agent-based modeling to simulate the problem of interest, decompose the problem into components a using a series of design questions, and then show how the resulting implementation proceeds step-by-step. The combination of these steps produces a simple illustrative model.

When to use agent-based modeling

Agent-based modeling is a good choice compared to other modeling techniques when the problem naturally consists of agents or when the decision makers to be modeled meet the following criteria:

Must have real individual behaviors

Form dynamically changing relationships

Have spatial interactions

Have arbitrarily large populations or

When structural change is an output, not an input.

Our example satisfies two of the criteria: our innovation diffusion CAS is naturally composed of agents, and the agents form dynamically changing relationships.

Essential agent-based model design questions

Once agent-based modeling has been identified as a candidate methodology for solving the problem, the following questions can be asked:

What are the modeling question(s)?

What input data are available?

What verification and validation (V&V) is needed?

What alternative techniques where tried?

What are the agent behaviors?

What is the agent environment?

Each of these questions will be briefly addressed in our next section for our example CAS.

What Are the Modeling Question(s)?

The modeling question is: how does the quality of ideas change over time in the innovation network?

Who Are the Stakeholders?

The stakeholders in this demonstration case are simply the modelers themselves.

What Outputs Are Needed?

The output will be the history of the quality of innovation. This output will be displayed as a time series chart.

What Input Data Are Available?

For this model, the input will be the probability of developing a new innovation on a given time step.

What V&V is Needed?

The V&V step is key. It can be said that V&V turns toys into tools (North and Macal2007). V&V is like a properly prepared court case in that modelers select a standard of evidence and then prepare arguments to meet the standard. To be properly prepared, countervailing facts must also be presented!

Conducting design and code walkthroughs

Conducting face validity checks

Docking against other models

Trying real-world and tricky artificial cases and

Conducting parameter sweeps and sensitivity analyses.

Simple face validity checks will be used for the innovation model.

What Alternative Techniques Were Tried?

Many models of innovation diffusion have been developed (Meade and Islam2006). Our model offers a simple, agent-based approach to this problem. Much more detail would be needed to translate this tutorial model into a full-scale model for studying innovation diffusion.

Who Are the Agents?

The agents are individual people in the innovation network.

What Are the Agent Behaviors?

The agents will randomly circulate on a continuous two-dimensional surface. When an agent with an innovation comes close enough to another agent, they will transfer their ideas. When an idea is transferred, a new link is made between the transferring parties. Any existing network links in the recipient will be deleted.

Agents develop at the rate given by the input innovation probability. When they do so, they delete all of their links.

Each idea is represented using a number. The value of the number represents the relative quality of the idea. The value also automatically maps into a display color for the agent and its links.

What Is the Agent Environment?

The agent environment is a simple, continuous 2D surface with support for a network between agents.

Model implementation

Next we will illustrate how you can implement a Repast Simphony model. The model implementation follows directly from the design questions answered in the previous section.

To begin, you can create a new ReLogo project by clicking the new project wizard icon in the toolbar. This icon has a blue folder with red “RL” text in the upper left corner. The new project wizard dialog will appear with options for the project name and other advanced project options. The only required change in this dialog is the project name, which should be changed to “Innovation.” You can click “Finish” to complete the new ReLogo project setup. Once the project setup process is complete, a new project named “Innovation” will appear in the left windowpane with a set of project components below. Two folders are visible — “src,” which contains the model code and “shape,” which contains a set of optional icons that may be assigned to agents.