Daha çox

GISCloud kimi göstərmə performansı ilə vektor poliqonları yaradılır?


Mənə imkan verəcək möhkəm bir həll axtarırdım bu cür məlumatları əbədi yükləmədən bir veb xəritə yaradın və vektor poliqonlarını örtün hər poliqonun hover hadisəsində fərqli bir rəng göstərməyimə imkan vermək məqsədi ilə.

Bildiyimə görə kətan, SVG, Flash vasitəsilə buna nail olmaq üçün 3 xüsusi seçim var.

Flash, ən sürətli göstərmə və ən təmiz ekranı təmin etdiyi üçün alma iphonları / ipadlarında işləyərsə ən yaxşı həll yolu kimi görünür. Kətan ikinci ən yaxşı seçim kimi görünür, ancaq xəritədə yüzlərlə çoxbucaqlı göründüyü halda çox uzun çəkir, halbuki SVG-nin göstərilməsi daha uzun çəkir.

Mən demək olar ki, bu problemə həll tapmaq ümidini itirdi Ancaq bu gün GISCloud http://www.giscloud.com adlı bir şirkətlə qarşılaşdım (hazırda pulsuz qeydiyyatdan keçərək beta versiyasındadır).

Bu şirkət BİR ŞƏHƏDƏ xəritədə yüzlərlə vektor göstərməyin inanılmaz bir yolunu real vaxt rejimində həll etməyi bacardı. Onların yanaşması məni heyrətləndirdi və cəmiyyətə verdiyim sual, mövcud texnologiyalarla istifadə vərəqələrini, açıq təbəqələri, mumları necə istifadə edə biləcəyimizlə əlaqədardır ...

Bu ecazkar demoya baxaraq özünüzə baxın: http://www.giscloud.com/map/284/africa

Səhifədəki çoxbucaqlılardan hər hansı birinin üzərinə sürdüyünüzdən əmin olun və bu çoxbucaqlıların həqiqətən vektor olduğunu görmək üçün zoom nəzarətlərini sınayın.

İstəklərə firebug ilə baxaraq fərq etdiyim şey, xəritənin xüsusi json faylları istəməsidir. Görünür ki, yaxınlaşma səviyyəsindən / sahəsindən asılı olaraq bir çox json faylı tələb olunur.


Burada onu da qeyd etməliyəm ki, giscloud səhifədəki məlumatları vektor üzərində gəzdirdikdə dərhal yeni bir istək yaratmadan rəngi dəyişdirir.

NÜMUNƏLƏR:

Url quruluşunun standart döşəmə xidməti məntiqini izlədiyini düşünürəm (məsələn, 3-dən son qovluq böyütmə səviyyəsidir ...).

Hər halda, bu json fayllarının həqiqi məlumatlarını təhlil etdim və görünür ki, istifadə etdikləri məntiq, yalnız bu məlumat dəyərlərinə əsaslanan vektorlarını yaratdıqları bir sıra məntiqə uyğundur:

  • en / hündürlük: hər bir json tələbində təqdim olunan məlumatların genişliyini və hündürlüyünü təyin edirlər
  • piksel: burada ümumiləşdirilmiş nöqtə səviyyələri üçün birtəhər ümumi x / y piksel koordinatları ilə əlaqəli olduğunu düşündüyüm piksel dəyərlərini təyin edirlər? Güman edirəm ki, yaxınlaşma səviyyəsindən asılı olaraq bölgəni avtomatik olaraq sadələşdirmə yollarına sahibdirlər. Piksel koordinatları istifadə edərək, onların lat / uzun məlumatlarla müqayisədə yüklənməsi lazım olan məlumatların ölçüsünü kəskin şəkildə azaltdıqlarını təxmin edirəm.
  • üslub: burada iki RGB css dəyərini təyin edirlər. Çoxbucaqlı fayl rəngini təmsil edən "F" və çoxbucaqlı sərhəd rəngini təmsil edən "S".
  • geom: Burada haradasa konteyner pəncərəsinə əsaslanaraq bu cür məlumatların təyin olunduğu yerdə yüklənən çini içərisindəki hər bir çoxbucağı müəyyən şəkildə müəyyənləşdirdiklərini təxmin edirəm. Həm də maraqlıdır ki, hər bir girişin isteğe bağlı bir atribut və ya xüsusiyyət bağlantısı dəyəri kimi istifadə edildiyini düşündüyüm bir "S" dəyəri var və hər girişin sonunda hər vektor identifikatoru ilə birlikdə müəyyən bir sahə var. təxmin etdiyim təbəqə şəxsiyyəti, hər bir json plitəsi istənildiyi məlumatları bir şəkildə birləşdirmək üçün istifadə olunur.

Həm də hər hansı bir çini üçün yüklənməli olan məlumatların ölçüsündən asılı olaraq istənilən plitə üçün avtomatik olaraq təyin edilməsi və bölünməsinin bir yolunu tapdıqlarını düşünürəm.

Budur bu istəklərdən birinin çıxarılması:

{"genişlik": 256, "hündürlük": 256, "çini": {"piksel": [0,6461, -1,0,5,148,0,509, -1,10715, -1,1, -1,251, - 1,1, -1,1, -1,251, -2,3, -1,255, -1,249, -2,5, -2,247, -1,509, -3,251, -1,2, -2,253, -2,252, -2,254 , -1,255, -1,254, -1,255, -1,1276, -2,13, -1,233, -1,2, -1,253, -1,1, -1,255, -1,247, -1,1306, -1, 1533, -1,1269, -1,1276, -1,2303, -1]}, "üslublar": [{"f": "rgb (99,230,101)", "s": "rgb (5,148,0) "," lw ":" 0 "}]," geom ": [{" s ": 0," p ": [4,143,5,144,3,146,1,146,2,143,4,143]," c ":" layer1156_5098 "} , {"s": 0, "p": [- 2,143,0,140,2,141,2,144,1,146, -2,144, -2,143], "c": "layer1156_5067"}, {"s": 0, "p" : [7,143,5,144,4,143,2,143,2,141,5,138,6,139,5,141,7,143], "c": "layer1156_5051"}, {"s": 0, "p": [10,141,11,137,12,137,14,137, 12,142,9,143,9,142,10,141], "c": "layer1156_5041"}, {"s": 0, "p": [1,136,0,140, ​​-2,143, -2,136,1,136], "c": "layer1156_5038" }, {"s": 0, "p": [8,143,5,141,5,137,8,136,10,137,10,141,8,143], "c": "layer1156_5033"}, {"s": 0, "p": [ 5,137,2,141,0,140,1,136,1,136,2,135,3,136,5,137], "c": "layer1156_5028"}, {"s": 0, "p": [10,134,12,136,11,138,8,135,10,134], " c ":" layer1156_ 5020 "}, {" s ": 0," p ": [- 2,133,0,136, -2,136, -2,133]," c ":" layer1156_5005 "}, {…}…]}

Postgisdən istifadə edərək eyni (və ya oxşar) sürət növünü necə təkrarlaya bilərik (bunları da istifadə etdikləri göründüyü kimi)?


Keçmişdə istifadə olunan bu texnikanı görmüşəm. Bunu mənə, Michal Migurski TileStache yaratarkən bir az giriş verməyə kömək edən Zain Memon (Truliadan) izah etdi. Zain bir müddət əvvəl köhnə SF GeoMeetup iclaslarımızdan birində bu texnikanı istifadə edən Trulia demosunu izah edərkən buna davam etdi. Əslində, əgər gələn həftə SF-də olsanız (bu, mənim bir axsama cəhdimdir, o buna toxunacaq, buna görə çekinmeyin :)

Tamam, indi izahata.

Birincisi, yuxarıdakı json fayllarına baxarkən bir az səhv yerə baxırsınız.

Niyə izah edə bilərəm (bacardığım qədər qısa).

Plitələr müntəzəm göstərilən plitələr kimi ötürülür, orada böyük bir problem yoxdur, bunu necə edəcəyimizi bilirik və buna görə izah etməyə ehtiyac yoxdur.

Firebug-da araşdırsanız, bunun kimi boş görünən bir dəstə də şəkil aldığınızı görərsiniz.

Niyə boş? Bu deyil. Piksellərdə məlumatlar var - yalnız ənənəvi görünən görüntü məlumatları deyil. Piksellərdə kodlanmış məlumatları özləri ötürmək üçün çox ağıllı bir texnikadan istifadə edirlər.

Son on ildə baş verənlər, insanların formatların oxunma qabiliyyətini və portativ məlumatlarını saxlama səmərəliliyi hesabına satmasıdır.

Bu xml nümunə məlumatlarını götürün:

    -32.1231   10.31243   satıldı     -33.1231   11.31243   mövcuddur 

Tamam, bunu köçürmək üçün neçə dişləmə var? Bir şərtlə ki, biz utf8 (bu məzmunla işləyəndə hər xarakter üçün 1 bayt). Bunu edən təxminən 176 işarəmiz var (nişanlar və boşluqlar hesablanmadan) 176 bayt (bu sadəlik üçün buraxacağım müxtəlif səbəblərə görə nikbin davranır). Diqqət yetirin, bu 2 bal üçündür!

Yenə də haradasa nədən danışdığını anlamayan bəzi ağıllı eşşəklər "json sizə daha yüksək sıxılma verir" deyə iddia edəcəklər.

Yaxşı, gəlin json ilə eyni xml cəfəngiyatını qoyaq:

{"data": ["feature": {"x": -32.1231, "y": 10.31243, "type": "sold"}, "feature": {"x": -33.1231, "y": 11.31243 , "tip": "faydalıdır"},]}

Burada neçə bayt var? ~ 115 simvol deyin. Hətta bir az aldadım və daha kiçik etdim.

Sahəmin 256x256 piksel əhatə etdiyini və hər bir xüsusiyyətin bir piksel göstərdiyi qədər bir zoom səviyyəsində olduğumu və bu qədər xüsusiyyətə sahib olduğumu söyləyin. 65.536 xüsusiyyətini göstərmək üçün nə qədər məlumat lazımdır?

"Xüsusiyyət" girişinə görə 54 simvol (və ya utf bayt - və hətta bəzi başqa şeyləri nəzərə almıram) x 65,536 = 3,538,944 və ya təxminən 3,3MB vurulur

Məncə şəkli əldə edirsən.

Ancaq məlumatları xidmət mərkəzli bir arxitekturada necə nəql edirik. Oxunan şişkin bok.

Hər şeyi özüm icad etdiyim ikili sxemlə nəql etmək istəsəydim nə olardı? Bunun əvəzinə bu məlumatları tək lent şəklində kodladığımı söylədim (yəni qara və ağ). Və qərara gəldim ki, 0 mənası satılıb, 1 ədədi mövcuddur, 2 mənası isə bilmirəm. Heck, 1 baytda istifadə edə biləcəyim 256 seçimim var və bu nümunə üçün bunlardan yalnız 2 və ya üçü istifadə edirəm.

Bunun saxlama dəyəri nə qədərdir? 256x256x 1 (yalnız bir lent). 65.536 bayt və ya 0.06MB. Və bu, şəkil sıxılma ilə bağlı on illərlə apardığım araşdırmalardan pulsuz əldə etdiyim digər sıxılma texnikalarını da nəzərə almır.

Bu nöqtədə özünüzdən soruşmalısınız ki, insanlar niyə json-a seriallaşdırmaq əvəzinə ikili formatda kodlanmış məlumatları göndərmirlər? Əvvəla, javascript ikili məlumatların daşınması üçün çox vaxt qazandığını göstərir, buna görə insanlar tarixən bunu etmədilər.

HTML5-in yeni xüsusiyyətləri, xüsusən də kətan çıxdıqda ətrafdakı möhtəşəm bir iş bəzi insanlar tərəfindən istifadə edilmişdir. Yaxşı, bu zəhmli iş nədir? Göründüyü kimi bir görüntü kimi görünən şeyə kodlanmış tel üzərindən məlumat göndərə bilərsiniz, sonra bu görüntüyü birbaşa piksellə manipulyasiya etməyə imkan verən bir HTML5 Kətanına sala bilərsiniz! İndi bu məlumatları əldə etmək, müştəri tərəfində deşifrə etmək və müştəri içində json obyektləri yaratmaq üçün bir yolunuz var.

Bir anlıq dayan və bu barədə düşün.

Çox miqdarda mənalı coğrafi istinad məlumatlarını yüksək dərəcədə sıxılmış formatda kodlaşdırma yolunuz var, veb tətbiqetmələrdə ənənəvi olaraq görülən hər şeydən kiçik ölçü əmrləri və onları javascriptlə idarə edin.

HTML kətan çəkmək üçün istifadə olunmasına belə ehtiyac yoxdur, yalnız ikili kod açma mexanizmi kimi istifadə olunur!

Firebug-da gördüyünüz bütün görüntülər budur. Yüklənən hər bir çini üçün kodlanmış məlumatlarla bir şəkil. Onlar super kiçik, lakin mənalı məlumatlar var.

Bəs bunları server tərəfində necə kodlayırsınız? Yaxşı, server tərəfindəki məlumatları ümumiləşdirməlisiniz və məlumatları kodlanmış hər zoom səviyyəsinə görə mənalı bir çini yaratmalısınız. Hal-hazırda bunu etmək üçün özünüzü gəzdirməlisiniz - qutudan kənar açıq mənbə həlli mövcud deyil, ancaq bunu etmək üçün lazım olan bütün alətlər mövcuddur. PostGIS, GEOS vasitəsilə ümumiləşdirmə aparacaq, TileCache önbelleğe alınmaq üçün istifadə edilə bilər və plitələrin yaranmasına səbəb ola bilər. Müştəri tərəfdən, xüsusi "saxta plitələr" ötürmək üçün HTML5 Canvas istifadə etməlisiniz və daha sonra siçan üzərində effektli vektorları təmsil edən müştəri tərəfindəki javascript obyektləri yaratmaq üçün OpenLayers istifadə edə bilərsiniz.

Daha çox məlumat kodlamağa ehtiyacınız varsa, hər piksel başına RGBA şəkilləri yarada biləcəyinizi unutmayın (bu, piksel başına 4 bayt və ya təmsil edə biləcəyiniz 4.294.967.296 ədədi verir) piksel başına). Bunu istifadə etməyin bir neçə yolu haqqında düşünə bilərəm :)

Yeniləyin: Aşağıdakı QGIS sualını cavablandırmaq.

QGIS digərlərinin əksəriyyəti kimi Masaüstü GISes, sabit bir zoom səviyyəsinə sahib deyilsiniz. Hər hansı bir miqyasda yaxınlaşdırma rahatlığına sahibdirlər və yalnız göstərirlər. WMS və ya plitələrə əsaslanan mənbələrdən məlumatları göstərə bilərlərmi? Əmin ola bilirlər, amma əksər vaxt bu barədə həqiqətən laldırlar: Fərqli dərəcədə böyüdün, məhdudlaşdırıcı qutunu hesablayın, lazımlı kirəmitləri hesablayın, onları tutun, göstərin. Çox vaxt başqa şeyləri görməzdən gəlirlər, məsələn http başlıqları önbellekleri, buna görə yenidən başlamaları lazım deyildi. Bəzən sadə bir önbellek mexanizmi tətbiq edirlər (çini saxla, istəsən, çini yoxla, istəməyin). Ancaq bu kifayət deyil.

Bu texnika ilə plitələr və vektorlar yenidən bərpa edilməlidir hər zoom səviyyəsi. Niyə? Vektorlar yaxınlaşma səviyyələrini yerləşdirmək üçün ümumiləşdirildiyi üçün.

Tamponlara daxil ola bilmək üçün plitələri bir HTML5 kətanına qoymağın bütün hiyləinə görə, hər şey lazım deyil. QGIS, Python və C ++ dilində kod yazmağınıza imkan verir, hər iki dildə ikili tamponlarla işləmək üçün əla dəstək var, bu səbəbdən bu platformada bu iş həqiqətən əhəmiyyətsizdir.

* YENİLƏNİB ** **:

İlk növbədə ümumiləşdirilmiş vektor plitələrinin necə yaradılacağına dair bir sual var idi (nəticələri şəkillərə seriyalaşdırmadan əvvəl körpə addım 1). Bəlkə də kifayət qədər dəqiqləşdirmədim. Tilestache, hər zoom səviyyəsində məlumatlarınızın təsirli "vektor plitələrini" yaratmağınıza imkan verəcəkdir (hətta çini sərhədini keçdikdə məlumatları kliplə bağlamağa və ya kəsməməyə imkan verən bir seçim var). Bu, vektorların müxtəlif zoom səviyyələrində plitələrə ayrılmasına diqqət yetirir. "Klip deyil" seçimini seçərdim (lakin daha çox sahəni əhatə etdiyi yerdə özbaşına bir çini seçəcək). Sonra hər bir vektoru GEOS ümumiləşdirmə seçimi ilə çox sayda qidalandıra bilərsiniz, əslində, çox xətlərin və çoxbucaqlıların özlərinə çökməsini kifayət qədər böyük etmək istəyirsən, çünki belə olarsa, onları bu mərhələ üçün yaxınlaşdırma səviyyəsindən çıxara bilərsən. əhəmiyyətsiz. Tilestache, bu məntiqi qoya biləcəyiniz asan pitonik məlumat təminatçıları yazmağınıza da imkan verir. Bu mərhələdə, onları json faylları kimi (Afrika xəritəsi nümunələrinin bəzilərində olduğu kimi) və ya yuxarıda verdiyim digər nümunələrdə olduğu kimi (və ya Trulia'da olduğu kimi) png-lərə seriyalı həndəsələr kimi təqdim etməyi seçə bilərsiniz.


Bu yaxınlarda göndərilən poçt siyahısı postunda Dino Ravnic adlı geliştiricidən birbaşa:

Bunu necə etdiyimiz böyük bir sirr deyil ki, bunu sizinlə bölüşməkdən məmnun olaram ... əsas iki şeydədir:

  1. kafeldən görünmək üçün kiçik olan bütün vektorların çıxarılması, yəni piksellərə hesablandıqda onların sahəsi 1 pikseldən azdır. belə bir vektor buraxırıq və bunun əvəzinə bir piksel qoyuruq, beləliklə json plitəmizdə "piksel" xassəsi var

  2. faktiki olaraq görünən vektorlar ümumiləşdirilir və sonra koordinatları piksellə bir kafelə yazılır

Müştəri hissəsində bu statik pikselləri və görünən vektorları kətanda göstəririk. Vektorların üstündə hovering yəni interaktivliyə nail olmaq üçün siçan hadisəsi ilə işləmə tətbiq etdik. və bu qədər.

Arxa xəritə mühərrikimiz bütün ağır yükləri yerinə yetirir, çünki heç bir əvvəlcədən istifadə etmirik və dərhal bütün plitələr hazırlanır. tez bir zamanda yenilənə biləcək bir xəritəyə sahib olmaq bizim üçün çox vacibdir.

Buna görə müştəri tərəfinin asan hissəsidir. Məlumatların heç bir önbelleğe alınmadan göstərilməsi təsir edicidir.

Həm də sizin üçün maraqlı ola biləcək bir hosting xidmətindən bəhs edir. Bunu yenidən yaratmağa çalışdığınız xərcləri hazır bir xidmətdən istifadə dəyəri ilə çəkmək istəyə bilərsiniz.


OSGeo siyahısında təsvir etdiyim kimi, əsas, subpiksel həndəsə üçün piksel və ümumiyyətlə müəyyən bir səviyyədə görünən xüsusiyyətlər üçün ümumiləşdirilmiş həndəsə olan vektorlu JSON plitələr kimi məlumatların çatdırılmasıdır. Performans əladır, çünki bu texnika bütün lazımsız vektor məlumatlarını aradan qaldırır və yalnız xəritədə vizual təsir göstərəcək vektorlar buraxır. Boşluqları doldurmaq və bu alt piksel vektorlarının yerinə yerləşdirmək üçün piksellər var. Bu kafel formatı ilə bağlıdır.

Arxa tərəfdə həqiqi ağır atletikadır. TileStache və ya başqa bir xəritə mühərriki istifadə etmirik, çünki bir sıra optimallaşdırma ilə bu cür vektor qrafiklərini real vaxtda yarada bilən özümüzünüzü yazdıq.

Əvvəlcə SWF-lər kimi xəritə plitələrini çatdırmağa başladıq və son zamanlar JSON-a çıxış imkan verdik, beləliklə qrafika göstərmək üçün HTML5 Canvas istifadə edə bildik. Aşağıda bu cür vektor texnologiyasını raster texnologiyası ilə müqayisə edən bir etalonda tapa bilərsiniz (mapnik). Ədalətli müqayisə üçün yalnız CGI rejimində nəticələri axtarın.

http://www.giscloud.com/blog/realtime-map-tile-rendering-benchmark-rasters-vs-vectors/

Bu texnologiyanı bir xəritə plitəsi yerləşdirmə xidməti olaraq təqdim etməyi planlaşdırırıq. Fikir, coğrafi məlumatlarınızı buludda yerləşdirmək və HTML5 vasitəsilə hər hansı bir xəritə müştəriyə yüksək sürətlə, plitələrin qablaşdırılmasına ehtiyac olmadan çatdırmaqdır. Bu beta versiyasına qoşulmaq istəyirsinizsə, bizimlə əlaqə qurmaqdan çəkinməyin: http://www.giscloud.com/contact/


Görünən budur ki, bu yaxınlarda OSGeo Açıq Qatlar forumunda GIS Bulud inkişaf etdiricilərinin yanaşmalarını izah etmələri ilə GeoJSON həndəsələri və statik piksellərin maraqlı bir qarışığı olan çox oxşar bir sual verildi. GeoJSON fayllarının əvvəlcədən hazırlanmış bir önbelleğini istifadə etmək əvəzinə dərhal bütün vektor plitələrini yaradırlar.

Esri, dərhal həndəsələri ümumiləşdirə və JSON olaraq tel üzərindən göndərə bilən ArcGIS Server və Feature Layers istifadə edərək oxşar bir yanaşma tətbiq etdi.

İndi gerçəkləşdirə biləcəyiniz düz bir metod üçün, Tilestache ilə (PostGIS dəstəyinə sahib) vektor plitələr düzəldib Polimaplərdə istifadə edə bilərsiniz. Polymaps SVG istifadə edir, lakin performansı olduqca yaxşıdır və xəritə elementlərini tərtib etmək üçün CSS qaydaları verir, bu səbəbdən xüsusiyyət göstərmə tamamilə sizə aiddir. Budur, soruşduğunuza bənzər bir şey ilə işləyən bir blog yazısı.


Canvas istifadə edərək OpenLayers ilə bir oyun keçirdim və ağlabatan nəticələr əldə etdim.

Digər cavablarda da qeyd edildiyi kimi: vektorları çatdırmaq və göstərmək üçün - hər böyütmə səviyyəsi və hər bir məlumat bazası üçün ümumiləşdirilməlidir. Ayrıca, ölçünü əhəmiyyətli dərəcədə azaltmaq üçün Google polyline kodlaşdırma istifadə edə bilərsiniz.

Sadə bir çatdırılma mexanizmindən istifadə etdim. Hər bir həndəsə bir JavaScript HTTP cavabı içərisində bir JavaScript funksiyası idi. kafel əsaslı vektor çatdırılması qədər inkişaf etmiş deyil, sadə və açıq mənbə!

Google Maps v3-i Canvas ilə sınaqdan keçirə bilmədim, amma təsirlənən bir neçə New York Times demosunu gördüm.


Bu şirkətin hansı həll yolunu istifadə etdiyini dəqiq bilmirəm (bəlkə də birbaşa soruşa bilərsiniz), amma bir fikrim var.

Şəbəkə ötürülməsini və vektor məlumatlarının göstərilmə sürətini yaxşılaşdırmaq üçün əsas həll onları zoom səviyyəsinə görə ümumiləşdirməkdir: Çox yaxınlaşdırma səviyyəsinə görə dizayn edilmiş min obyektin köçürülməsi və göstərilməsi çox vaxt aparır (və eyni zamanda) faydasızdır, çünki son ekran ümumiyyətlə oxunmur - məsələn bu şəkilə baxın). Bunu həyata keçirmək üçün postgis server verilənlər bazanız olmalıdır çox miqyaslı: Hər bir böyütmə səviyyəsi üçün bu yaxınlaşma səviyyəsinə uyğun bir obyekt təsviri olmalıdır. Bu fərqli təqdimatlar ümumiləşdirmə üsullarından istifadə edərək avtomatik olaraq hesablana bilər. Bundan əlavə, server tərəfindən müştəriyə göndərilən vektor məlumatları yalnız məkan genişlənməsindən deyil, həm də yaxınlaşma səviyyəsindən asılı olmalıdır: Server yaxınlaşdırma səviyyəsindən asılı olaraq uyğun məlumat göndərir. Bu əla sənəddə müdafiə olunan yanaşma budur :-)


Stanford Görselleştirme Qrupu tərəfindən hazırlanmış və geniş bir coğrafi verilənlər bazasını görüntüləmək və araşdırmaq üçün hər bir çini üçün datacube istifadə edən maraqlı bir sənəd, bir demo və bir proqramın mənbəyi kodu var. Yalnız nöqtə məlumat dəsti üçün istifadə edilə bilər, lakin maraqlı bir yol ola bilər.

http://vis.stanford.edu/papers/immens

CartoDB platforması və Tork adlı kitabxana ilə vizuallıq da yüksək həcmli məlumatların çəkilməsini birtəhər sınaqdan keçirir.

http://cartodb.github.io/torque/
https://github.com/CartoDB/torque/tree/new_torque


Videoya baxın: Tullantıların utilizasiyası (Oktyabr 2021).