Global Map Performance

Slides:



Advertisements
Similar presentations
Working with Profiles in IX1D v 3 – A Tutorial © 2006 Interpex Limited All rights reserved Version 1.0.
Advertisements

Processes Management.
1 Trieste, April 17 th 2008Lucio Zambon Electronic Graphic Interface for Global Archiving Technology: PHP, MySQL, JavaScript, JPGraph, etc Development.
10 Map Mashups Mapping in the Cloud Peterson. Basic Map.
How do games work? Game Workshop July 4, Parts Sprites/pictures Map/background Music/sounds Player character Enemies Objects.
CSCI 3100 Tutorial 8 Web Development Tools 1
Code 2 Layers. Step 1 Using 2 Layers Step 2: There are 2 layers Using 2 Layers.
Security and Digital Recording System Students: Gadi Marcu, Tomer Alon Number:D1123 Supervisor: Erez Zilber Semester:Spring 2004 Mid Semester Presentation.
The Team Team consisted of 5 members. Max Annear – Henderson Conrad Orange Mike Debney Anton Slooten Luke Stanford.
Name Event Date Name Event Date 1 Animation Effects.
WebGL for lazy dudes Janne Lautamäki 1 GLGE – Janne Lautamäki
CS 480/680 Computer Graphics Course Overview Dr. Frederick C Harris, Jr. Fall 2012.
XP Tutorial 5 Buttons, Behaviors, and Sounds. XP New Perspectives on Macromedia Flash MX Buttons Interactive means that the user has some level.
OPEN LAYERS. History Google Maps ◦ Announced on February 2005 ◦ Possibility to explore the world OpenLayers ◦ First release on June 2006 ◦ Open alternative.
The Three Pillars Approach to Your Agile Testing Strategy Bob Galen President & Principal Consultant RGCG, LLC
Tutorial 5 Making a Document Interactive. XP Objectives Explore the different button states Add a button from the Buttons library Edit a button instance.
Top-Down Design and Modular Development
JQUERY | INTRODUCTION. jQuery  Open source JavaScript library  Simplifies the interactions between  HTML document, or the Document Object Model (DOM),
HTML5 – The Power of HTML5 – The Power of Thomas Lewis HTML5 Principal Technical Evangelist Microsoft | asimplepixel.tumblr.com.
© 2008 Autodesk1 First and Last Name Presenter’s Title.
Extending ArcGIS for Server
How to solve a SQL performance problem Paul Zgondea.
Open University of Sri Lanka. Domain n Open University of Sri Lanka Web browser Hand held device CyberGIS Web Cloud Existing GIS providers GPS device.
© 2006 IBM Corporation Agile Planning Web UI. © 2006 IBM Corporation Agenda  Overview of APT Web UI  Current Issues  Required Infrastructure  API.
1 Geospatial and Business Intelligence Jean-Sébastien Turcotte Executive VP San Francisco - April 2007 Streamlining web mapping applications.
FireBug. What is Firebug?  Firebug is a powerful tool that allows you to edit HTML, CSS and view the coding behind any website: CSS, HTML, DOM and JavaScript.
By Paul Richard and Jim Fitzgerald Chapter 3 – Controlling the Drawing Display.
OpenVCE Support for the Virtual Collaboration Protocol.
Concept Management Apps Intern: Jenn Parise Mentor: Darius Jazayeri Link to the Concept Management Apps Wiki.
Extend the Operations Dashboard with Custom Widgets (and more)
Lecture # 13 JavaScript Functions: A Trip to the Grocery Store.
Types of Spatial Data Sites Data portals: Find and download data –Humboldt County, National Atlas “Atlases”: General information –GoogleMaps, MapQuest.
Esri UC 2014 | Technical Workshop | Creating Geoprocessing Services Kevin Hibma.
RIA and Web2.0 Development with no Coding Juan Camilo Ruiz Senior Product Manager Development Tools.
Road Ahead for Vector Mapping
Group 3 – Karo Progress Wendy Dominik Job Janita Erik.
Internet Explorer 10 IE9 hardware-accelerated platform CSS 2D Transforms CSS Backgrounds & Borders CSS Color CSS Fonts CSS Media Queries CSS Namespaces.
Esri UC 2014 | Technical Workshop | ArcGIS API for JavaScript: An Introduction Kelly Hutchins Derek Swingley.
Introduction to ASP.NET development. Background ASP released in 1996 ASP supported for a minimum 10 years from Windows 8 release ASP.Net 1.0 released.
Part – 3 : HTML 5 SVG Tag. † SVG stands for Scalable Vector Graphics. † SVG is used to define vector-based graphics for the Web. † SVG defines the graphics.
OpenLayers Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
Top New Features in Dynamics CRM 2013 Corey Hanson Grant Geiszler.
Starting Fresh with JavaScript 4.x
3D on the Web : Understanding the basics
Introducing OS OpenSpace
Lesson 6: Enhancing Presentations
Real-Time Soft Shadows with Adaptive Light Source Sampling
ICG Syllabus 1. Introduction 2. Viewing in 3D and Graphics Programming
Adobe Flash Professional CS5 – Illustrated
Matthew Przyborski Sam Moore GEO244 April 27, 2017
Section 17.1 Section 17.2 Add an audio file using HTML
Kartotherian & Wikipedia Maps
Building beautiful and interactive apps with HTML5 & CSS3
GIS - NetmapWEB Training Slides
Geoprocessing with ArcGIS for Server
HEATHER HALL & ADRIENNE SPITZER
.NET and .NET Core 7. XAML Pan Wuming 2017.
Introduction to Google Maps
Building responsive apps and sites with HTML5 web workers
Types of Spatial Data Sites
Customizing Maps Custom controls to change the content of the map
Platform for Metro style Apps
Types of Spatial Data Sites
ICT Programming Lesson 5:
Types of Spatial Data Sites
Print the following triangle, using nested loops
Speaker name Title Title
Speaker name Title Title
LEVERAGING VECTOR TILE LAYERS IN WEB APPS
Presentation transcript:

Global Map Performance Dzianis Sheka, Javascript developer at Wargaming.net

What does map mean geographical data ux - scroll, zoom, tooltips, hover

Demo http://www.openstreetmap.org/#map=11/52.1071/23.8115

What does map mean What does global map 2.0 metagame mean geographical data ux - scroll, zoom, tooltips, hover What does global map 2.0 metagame mean game entities - provinces, clans, battles, divisions game entities to geographical one mapping applying actions to gamefield

Demo https://ru.wargaming.net/globalmap/#cluster/1510_ru_absolute_front_1_06_061

Problems: organizational quick switch from prototype to release Agile: short iterations, hard to inject long running tasks big technical debt

Problems: technical leaflet + marionette.js as out-dated technology different layers: borders, fillings, markers different data sources: accounts, common, clan, tactical situation browser frozen when need to process too much design with beautiful shadows

Metrics unified environment numbers fps ? tile rendering time

Solution profile code execution separate entities into tiles process data in a functional style progressive rendering

Solution: profile code execution profiler.start('_removeTiles ' + tilesKey.length); _.each(tilesKey, (tileKey) => { const tile = this._getTileByKey(tileKey); if (!_.isUndefined(tile)) { this.markersLayer.removeLayer(tile.layer); utils.refreshMarkerLayers({ tile: tile, lMap: this.lMap, fillMode: this.fillMode }); } profiler.end('_removeTiles ' + tilesKey.length); }, https://developer.mozilla.org/en-US/docs/Web/API/Window/performance

Solution: tile

Solution: tile

Solution: tile need to reduce call to dom api (batching) reduce number of objects to draw (1 tile - 25 objects) good old concept standard for gis

Solution: functional javascript http://shop.oreilly.com/product/0636920028857.do https://medium.com/javascript-scene/the-two-pillars-of-javascript-pt-2-functional-programming-a63aa53a41a4#.yencrkvkw

Solution: functional style processing - pipeline Data merged data filtering processing drawing Data

Solution: functional javascript - learning curve

Solution profile code execution separate entities into tiles process data in a functional style progressive rendering

Solution: renderer - dom control Sync mode Solution: renderer - dom control DRAW RENDERER Request Animation Frame Browser Dom Api Event loop https://developer.mozilla.org/en-US/docs/Web/API/window/requestAnimationFrame

Solution: progressive rendering for markers Without effects Add effects later Event handlers for container - event delegation

Solution: progressive rendering for markers &__simplified.tactical-info * { box-shadow: none; border: none; text-shadow: none; }

Results

Results transition from Object Hierarchy to Data Structure and Algorithms protocol standardisations more space for optimizations http://geojson.org/

What next new viewport based on RTREE WEBGL drawing using vector tiles https://www.npmjs.com/package/rbush https://www.mapbox.com/blog/mapbox-gl/

Questions? Thank you!