UNPKG

@here/harp-examples

Version:
1 lines 28.6 kB
(()=>{"use strict";var e={2507:(e,n)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.PerformanceTestData=void 0,function(e){const n=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20],t=[0,0,0,10,10,20,30,35,38,42,48,50,52,55,55,55,55,55,55,55];e.NEW_YORK_FLYOVER={controlPoints:[40.5833105,-73.9754567,40.7088095,-74.0143577,40.7589052,-73.9848074,40.6442765,-73.7719587],zoomLevels:[10,14,18,5],tilts:[42,55,55,10],numberOfDrawPoints:1e3},e.NEW_YORK_FLYOVER_ZL17={controlPoints:[40.706346,-74.010112,40.760026,-73.968245,40.796438,-73.940555,40.85468,-73.931703],zoomLevels:[17.1,17.1,17.1,17.1],tilts:[0,0,0,0],numberOfDrawPoints:1e3},e.NEW_YORK_ZOOM={lat:40.71455,long:-74.00714,zoomLevels:n,tilts:t},e.NEW_YORK_ZOOM_REDUCED={lat:40.71455,long:-74.00714,zoomLevels:[16],tilts:t},e.BERLIN_ZOOM={lat:52.52,long:13.405,zoomLevels:n,tilts:t},e.PARIS_ZOOM={lat:48.8566,long:2.3522,zoomLevels:n,tilts:t},e.BELLINZONA_ZOOM={lat:46.2177542,long:9.0448866,zoomLevels:n,tilts:t},e.PARIS_ZOOM_PROXY={lat:48.8566,long:1442.3522,zoomLevels:n,tilts:t},e.IZMIR_ZOOM={lat:38.40389671,long:27.15224164,zoomLevels:n,tilts:t},e.PARIS_FLYOVER={controlPoints:[48.7551441,2.3409459,48.8025186,2.3438523,48.8556621,2.3462173,48.8562293,2.3058694,48.8578814,2.2614787],zoomLevels:[10,14,18,14,10],tilts:[42,55,55,55,42],numberOfDrawPoints:5e3},e.PARIS__LONDON_FLYOVER={controlPoints:[48.7551441,2.3409459,48.8025186,2.3438523,48.8556621,2.3462173,48.8562293,2.3058694,48.8578814,2.2614787,51.2824072,1.0160497,51.5078224,-.1281347],zoomLevels:[10,14,18,14,10,1,19],tilts:[42,55,55,55,42,0,55],numberOfDrawPoints:5e3},e.PARIS_ZOOM_IN_AND_OUT={controlPoints:[48.8566,2.3522,48.8566,2.3522,48.8566,2.3522,48.8566,2.3522,48.8566,2.3522,48.8566,2.3522],zoomLevels:[10,18,14,18,13,15],tilts:[0,0,0,0,0,0],numberOfDrawPoints:250},e.BERLIN_ZOOM_IN={controlPoints:[52.5,13.4,52.5,13.4,52.5,13.4,52.5,13.4,52.5,13.4,52.5,13.4,52.5,13.4,52.5,13.4,52.5,13.4],zoomLevels:[12,13,14,15,16,17,18,19,20],tilts:[0,0,0,0,0,0,0,0,0],numberOfDrawPoints:250},e.PARIS_ZOOM_IN_AND_OUT_2={controlPoints:[48.8566,2.3522,48.8566,2.3522,48.8566,2.3522,48.8566,2.3522,48.8566,2.3522,48.8566,2.3522],zoomLevels:[13,15,14,16,15,19],tilts:[0,0,0,0,0,0],numberOfDrawPoints:100},e.MILAN_FLYOVER={controlPoints:[42.35882085,11.08081451,44.61121843,9.40003743,45.45194999,9.18193952,45.49194999,9.18193952,46.45194999,8.60979084,46.13418703,7.48400961,45.85169705,6.87959287,46.3686498,8.0091825],zoomLevels:[7,9,19,18,8,9,13,7],tilts:[44,55,55,55,55,44,55,0],numberOfDrawPoints:5e3},e.EUROPE_FLYOVER={controlPoints:[48.51,2.21,41.23,2.1,48.21,16.36,37.98,23.73,50.27,30.31,52.52,13.4],zoomLevels:[10,17,9,1,8,16],tilts:[42,55,38,0,35,55],numberOfDrawPoints:1e4}}(n.PerformanceTestData||(n.PerformanceTestData={}))},6360:(e,n,t)=>{Object.defineProperty(n,"__esModule",{value:!0}),n.PerformanceUtils=void 0;const a=t(2636),o=t(8957),r=t(5636),s=t(3074),i=t(8601),l=t(1845),c=t(2998),d=t(4428),m=t(4565),u=l.LoggerManager.instance.create("PerformanceUtils");!function(e){let n;!function(e){e[e.None=0]="None",e[e.LastFrame=1]="LastFrame",e[e.All=2]="All"}(n||(n={}));const t=l.PerformanceTimer.now(),f=["decode.decodingTime","decode.decodedTiles","geometry.geometryCreationTime","geometryCount.numGeometries","geometryCount.numPoiGeometries","geometryCount.numTechniques","geometryCount.numTextGeometries","geometryCount.numTextPathGeometries"],p={resource:"resources/normal.day.json"};function v(e,n,t,a=p){const i=document.getElementById(e),l=document.getElementById("mapOverlay"),c=new s.MapView({canvas:i,decoderUrl:"./decoder.bundle.js",decoderCount:n,theme:a.resource,enableStatistics:!0,collisionDebugCanvas:l,powerPreference:t}),d=s.MapViewUtils.calculateZoomLevelFromDistance(c,8e3);c.lookAt({target:new o.GeoCoordinates(52.518611,13.376111),zoomLevel:d});const m=r.MapControls.create(c);c.resize(window.innerWidth,window.innerHeight),window.addEventListener("resize",(()=>{"absolute"!==c.canvas.parentNode.style.position&&c.resize(window.innerWidth,window.innerHeight)}));const u=function(e){const n=e.getSupportedExtensions();if(null!==n&&n.includes("WEBGL_debug_renderer_info")){const n=e.getExtension("WEBGL_debug_renderer_info");if(null!==n)return{vendor:e.getParameter(n.UNMASKED_VENDOR_WEBGL),renderer:e.getParameter(n.UNMASKED_RENDERER_WEBGL)}}return{vendor:"",renderer:""}}(c.renderer.context);return s.PerformanceStatistics.instance.configs.set("gl.vendor",u.vendor),s.PerformanceStatistics.instance.configs.set("gl.renderer",u.renderer),{mapView:c,mapControls:m,omvDataSourceConnected:!1,mainDataSource:void 0}}function w(e){return new Promise((n=>setTimeout(n,e)))}async function g(e,n,t,a,r){const i=e.mapView;let l;return void 0!==a&&(l=s.MapViewUtils.calculateZoomLevelFromDistance(i,a)),i.lookAt({target:new o.GeoCoordinates(n,t),zoomLevel:l}),!0===r?(await w(0),await g(e,n,t,a,!1)):await new Promise(((e,n)=>{e()}))}async function P(e,t,a){const o=await async function(e,t,a){const o=await async function(e,t=n.All){const a=e.mapView,o=a.frameNumber;return await new Promise(((e,r)=>{const i=r=>{a.removeEventListener(s.MapViewEventNames.AfterRender,i);const l=a.frameNumber-o;let c;t!==n.None&&(c=s.PerformanceStatistics.instance.getAsSimpleFrameStatistics(t===n.LastFrame)),e({renderedFrames:l,lastFrameStats:c})};a.addEventListener(s.MapViewEventNames.AfterRender,i),a.update()}))}(e,!0!==a||t>=1?n.All:n.None),r=!0!==a||!s.MapViewUtils.mapViewIsLoading(e.mapView);return t>1||!r?await new Promise(((n,o)=>{P(e,t-1,a).then((e=>{n(e)})).catch((()=>n(void 0)))})):new Promise(((e,n)=>{e(o)}))}(e,t,a);return void 0!==o&&(o.renderedFrames=t),await new Promise(((e,n)=>{e(o)}))}function h(e){return new Promise(((n,t)=>{O(e).then((()=>{const t={},a=s.PerformanceStatistics.instance.getAsSimpleFrameStatistics();for(const e of f){const n=a.frames.get(e);void 0!==n?t[e]=n.reduce(((e,n)=>e+n),0):u.log("Missing decoding statistics for: ",e)}s.PerformanceStatistics.instance.clearFrames(),P(e,40,!0).then((()=>{s.PerformanceStatistics.instance.clearFrames(),P(e,20).then((e=>{if(void 0!==e){const a=e.lastFrameStats.appResults;for(const n of f)e.lastFrameStats.frames.delete(n),a.set(n,t[n]);const o=L(e.lastFrameStats);n(o)}else n(void 0)}))}))}))}))}function L(e){e.frameStats=new Map;for(const n of e.frames){const t=n[1];Array.isArray(t)&&e.frameStats.set(n[0],s.computeArrayStats(t))}return e}async function y(e,n,t,a,r,s,i){const l=e.mapView,c=new o.GeoCoordinates(n,t),m=d.MathUtils.radToDeg(s),u=-d.MathUtils.radToDeg(r);l.lookAt({target:c,zoomLevel:a,tilt:m,heading:u}),!0===i&&(await w(0),y(e,n,t,a,r,s,!1))}async function b(e,n,t,a,o,r){return await new Promise(((r,i)=>{O(e).then((()=>{s.PerformanceStatistics.instance.clear(),e.mapView.clearTileCache(),e.mapView.resetFrameNumber(),g(e,n,t),y(e,n,t,a,0,o),r(h(e))}))}))}async function O(e){const n=e.mapView;return await new Promise(((t,a)=>{const o=()=>{e.mapView.isDynamicFrame||s.MapViewUtils.mapViewIsLoading(e.mapView)?e.mapView.update():(n.removeEventListener(s.MapViewEventNames.AfterRender,o),t())};n.addEventListener(s.MapViewEventNames.AfterRender,o),n.update()}))}function _(e,n){for(const t of e.dataSources)t instanceof c.VectorTileDataSource&&F(e,t,n)}function F(e,n,t){const o=e.tileGeometryManager;void 0!==o&&void 0!==n&&(o.clear(),e.clearTileCache(n.name),o.disableKind(a.GeometryKind.Label,!t))}e.initializeMapViewApp=v,e.initializeMapView=async function(e,n,a,o,r=0,d=p){const u=v(e,a,o,d),f=l.PerformanceTimer.now();return i.debugContext.setValue("DEBUG_SCREEN_COLLISIONS",!1),await new Promise(((e,a)=>{(function(e,n,t){return Promise.all(n.map((n=>{const a=(e=>{let n;switch(e){case"OMV":n=new c.VectorTileDataSource({baseUrl:"https://vector.hereapi.com/v2/vectortiles/base/mc",apiFormat:c.APIFormat.XYZOMV,styleSetName:"tilezen",authenticationCode:m.apikey,authenticationMethod:{method:c.AuthenticationMethod.QueryString,name:"apikey"},copyrightInfo:m.copyrightInfo});break;default:throw new Error("Unknown data source")}return n})(n);return void 0!==t&&0!==t&&(a.storageLevelOffset=a.storageLevelOffset+t),e.mapView.addDataSource(a).then((()=>(a instanceof c.VectorTileDataSource&&(e.omvDataSourceConnected=!0),a)))})))})(u,n,r).then((()=>{s.PerformanceStatistics.instance.appResults.set("startTime",t),s.PerformanceStatistics.instance.appResults.set("initTime",f),e(u)})).catch((e=>{a(new Error("Failed to initialize WARP datasource"))}))}))},e.delay=w,e.measureOpenMapAtLocation=async function(e,n,t,a,o){return await new Promise(((r,i)=>{g(e,n,t,a,!0).then((()=>{_(e.mapView,o),O(e).then((()=>{s.PerformanceStatistics.instance.clear(),e.mapView.clearTileCache(),e.mapView.resetFrameNumber(),r(h(e))}))}))}))},e.zoomLevelTest=async function(e,n,t,a,o,r){return _(e.mapView,o),await new Promise((async(n,o)=>{const s=e.mapView,i={configs:new Map,appResults:new Map,frames:new Map,messages:[],zoomLevelLabels:[],zoomLevelData:void 0};s.resetFrameNumber();for(let n=0;n<t.zoomLevels.length&&(void 0===r||!r());n++){const o=await b(e,t.lat,t.long,t.zoomLevels[n],a?0:t.tilts[n]);if(void 0!==o){let e=i.zoomLevelData;if(void 0===e){e=i.zoomLevelData=new Map;for(const e of t.zoomLevels)i.zoomLevelLabels.push(e.toString());for(const n of o.frames)e.set(n[0],[]);for(const n of o.appResults)e.set(n[0],[])}const n=L(o);for(const t of n.frameStats){const n=t[1];e.has(t[0])&&e.get(t[0]).push(void 0!==n?n.avg:Number.NaN)}for(const t of n.appResults){const n=t[1];e.has(t[0])&&e.get(t[0]).push(n)}}}n(i)}))},e.measureFlyoverSpline=async function(e,n,t,a,o,r,i,c=1,m){return l.assert(t.controlPoints.length/2===t.zoomLevels.length,"Control points and zoom levels must have same number of entries"),l.assert(t.controlPoints.length/2===t.tilts.length,"Control points and tilts must have same number of entries"),_(e.mapView,i),await new Promise(((n,i)=>{const f=void 0!==a?a:t.numberOfDrawPoints,p=Math.ceil(f/(t.controlPoints.length/2-1)),v=[];for(let e=0;e<t.controlPoints.length/2;e++)v.push(new d.Vector2(t.controlPoints[2*e],t.controlPoints[2*e+1]));const g=new d.SplineCurve(v).getPoints(f);let P=0,h=0,b=0,_=0,F=0,S=[];for(let e=0;e<f;e++){const n=g[e],a=n.x,o=n.y;e%p==0?(h=t.zoomLevels[P],_=r?0:t.tilts[P],++P<t.zoomLevels.length?(b=(t.zoomLevels[P]-h)/p,F=r?0:(t.tilts[P]-_)/p):(b=0,F=0)):(h+=b,_+=F),S.push({lat:a,long:o,zoomLevel:h,tilt:_})}if(c>1){const e=S;for(let n=1;n<c;++n)S=S.concat(e)}(async function(e,n,t,a){const o=e.mapView,r=n[0];y(e,r.lat,r.long,r.zoomLevel,0,r.tilt,!0),await O(e),await w(1e3);let i=0;const c=new s.PerformanceStatistics(!0,t?n.length:2*n.length),d=l.PerformanceTimer.now();return await new Promise(((r,m)=>{const f=()=>{if(void 0!==a&&a()&&(o.endAnimation(),o.removeEventListener(s.MapViewEventNames.AfterRender,f),r(void 0)),t&&s.MapViewUtils.mapViewIsLoading(e.mapView))e.mapView.update();else if(i>=n.length){o.removeEventListener(s.MapViewEventNames.AfterRender,f);const e=l.PerformanceTimer.now()-d;if(c.appResults.set("flyoverFPS",1e3*i/e),c.appResults.set("flyoverSeconds",e/1e3),c.appResults.set("flyoverFrames",i),i>1){const e=c.frameEvents.frameEntries,n=e.get("render.fullFrameTime");n.buffer[0]=n.buffer[1];const t=e.get("render.fps");t.buffer[0]=t.buffer[1]}const n=c.getAsSimpleFrameStatistics();L(n),o.endAnimation(),u.log("actual number of frames rendered",o.frameNumber),r(n)}else{const t=n[i++];y(e,t.lat,t.long,t.zoomLevel,0,t.tilt)}};o.addEventListener(s.MapViewEventNames.AfterRender,f),s.PerformanceStatistics.instance.clear(),o.resetFrameNumber(),o.beginAnimation()}))})(e,S,o,m).then((e=>{n(e)}))}))}}(n.PerformanceUtils||(n.PerformanceUtils={}))},5600:(e,n,t)=>{n.j=void 0;const a=t(3074),o=t(1845),r=t(3860),s=t(2507),i=t(6360),l=o.LoggerManager.instance.create("PerformanceUtils"),c="Num Decoders",d="Power Preference";function m(){const e=void 0!==u?u.toFixed(0):void 0;let n="";void 0!==e&&(n+=encodeURIComponent(c)+"="+encodeURIComponent(e)),void 0!==f&&"Default"!==f&&(n.length>0&&(n+="&"),n+=encodeURIComponent(d)+"="+encodeURIComponent(f)),parent.window.location.search!==n&&(parent.window.location.search=n)}let u=function(e){const n=encodeURIComponent(c)+"=",t=e.indexOf(n);if(t>0){const a=e.substr(t+n.length),o=parseInt(a,10);if(isNaN(o))return void l.warn("Illegal NAN for 'Num Decoders'",a);if(o<-1||o>32)return void l.log(`Illegal value for 'Num Decoders' ${o}. Setting default value for DecoderCount`);if(-1===o)return;return l.log("Setting DecoderCount to",o),o}}(parent.window.location.search),f=function(e){const n=encodeURIComponent(d)+"=",t=e.indexOf(n);if(t>0){const a=e.indexOf("&",t+1),o=e.substr(t+n.length,a>0?a-t:void 0);return l.log("Power preference initialized to",o),o}}(parent.window.location.search);const p=new Map;p.set("Default",a.MapViewPowerPreference.Default),p.set("LowPower",a.MapViewPowerPreference.LowPower),p.set("HighPerformance",a.MapViewPowerPreference.HighPerformance),document.head.innerHTML+="\n<style>\n\n#canvasDiv {\n pointer-events: none;\n}\n\n.labelLine {\n height: 2px;\n text-align: left;\n}\n\n.label,\n.value {\n font-family: Arial, Helvetica, sans-serif;\n line-height: 0.3;\n font-size: small;\n}\n\n.label {\n display: inline-block;\n width: 10em;\n}\n\ntable {\n border-collapse: collapse;\n width: 100%;\n}\n\ntable,\nth,\ntd {\n border: 1px solid black;\n font-family: Arial, Helvetica, sans-serif;\n font-size: small;\n}\n\nth,\ntd {\n padding: 1px;\n text-align: left;\n}\n\nth {\n background-color: #b9dfbc;\n}\n\n.th-row {\n background-color: #809982;\n}\n\ntr:hover {\n background-color: #6fceeb;\n}\n\nth:hover {\n background-color: #447f90;\n}\n\n#tableDiv {\n padding: 10px;\n width: 100%;\n background-color: #f0fef1;\n display: none;\n overflow: scroll;\n}\n\n#copyrightNotice {\n position: absolute;\n right: 0;\n bottom: 0;\n background-color: #f0fef1;\n z-index: 100;\n padding: 2px 5px;\n font-family: sans-serif;\n font-size: 0.8em;\n font-weight: normal;\n}\n</style>\n",document.getElementById("mapCanvas").parentNode.innerHTML+='\n<div id="tableDiv">\n<p class="labelLine">\n <span class="label">Benchmark:</span>\n <span id="testTitle" class="value"></span>\n</p>\n<p class="labelLine">\n <span class="label">Location:</span>\n <span id="testLocation" class="value"></span>\n</p>\n<p class="labelLine">\n <span class="label">Canvas Size:</span>\n <span id="testCanvasSize" class="value"></span>\n</p>\n\n<p class="labelLine">\n <span class="label">Theme:</span>\n <span id="theme" class="value"></span>\n</p>\n\n<p class="labelLine">\n <span class="label" style="">PixelRatio:</span>\n <span id="pixelRatio" class="value"></span>\n</p>\n<p class="labelLine">\n <span class="label">2D:</span>\n <span id="2D" class="value"></span>\n</p>\n<p class="labelLine">\n <span class="label">ShowLabels:</span>\n <span id="showLabels" class="value"></span>\n</p>\n<p class="labelLine">\n <span class="label">FpsLimit:</span>\n <span id="fpsLimit" class="value"></span>\n</p>\n<p class="labelLine">\n <span class="label">NumDecoders:</span>\n <span id="numDecoders" class="value"></span>\n</p>\n<p class="labelLine">\n <span class="label">PhasedLoading:</span>\n <span id="phasedLoading" class="value"></span>\n</p>\n<p class="labelLine">\n <span class="label">Cancelled:</span>\n <span id="cancelled" class="value"></span>\n</p>\n\n<p class="labelLine">\n <span class="label">Start:</span>\n <span id="testStart" class="value"></span>\n</p>\n<p class="labelLine">\n <span class="label">End:</span>\n <span id="testEnd" class="value"></span>\n</p>\n<p class="labelLine">\n <span class="label">Duration:</span>\n <span id="testDuration" class="value"></span>\n</p>\n<table id="resultTable"> </table>\n</div>\n',function(e){let n,t,c,d,v,w,g,P,h,L,y,b,O,_,F,S,E=!1,D=!1,M=!0,N=!1,R=0,T=1;function V(e,t){E=!1,c.close(),h=e,L=t,g=new Date,w.domElement.setAttribute("disabled",""),n.mapView.disableFading=N,C()}function z(){c.closed&&c.open(),w.domElement.removeAttribute("disabled"),P=new Date,function(e){document.getElementById("testTitle").innerHTML=h,document.getElementById("testLocation").innerHTML=L,document.getElementById("testCanvasSize").innerHTML=b,document.getElementById("pixelRatio").innerHTML=String(O),document.getElementById("theme").innerHTML=y,document.getElementById("2D").innerHTML=String(D),document.getElementById("showLabels").innerHTML=String(M),document.getElementById("fpsLimit").innerHTML=String(R),document.getElementById("numDecoders").innerHTML=String(F),document.getElementById("cancelled").innerHTML=String(E),document.getElementById("testStart").innerHTML=g.toLocaleTimeString(),document.getElementById("testEnd").innerHTML=P.toLocaleTimeString(),document.getElementById("testDuration").innerHTML=((P.valueOf()-g.valueOf())/1e3).toFixed(2);const n=document.getElementById("tableDiv"),t=document.getElementById("resultTable");if(t.innerHTML="",void 0!==e&&void 0!==e.frameStats){const n=Array.from(e.frameStats.keys()).sort();let a=t.insertRow();if(e.appResults.size>0){Z(a,"Name","th-row"),Z(a,"Value","th-row");for(const n of e.appResults){const e=t.insertRow();Z(e,n[0]),B(e,U(n[1]))}a=t.insertRow(),a=t.insertRow()}Z(a,"Name","th-row"),Z(a,"Avg","th-row"),Z(a,"Min","th-row"),Z(a,"Max","th-row"),Z(a,"Median","th-row"),Z(a,"Med 75","th-row"),Z(a,"Med 90","th-row"),Z(a,"Med 95","th-row"),Z(a,"Med 97","th-row"),Z(a,"Med 99","th-row"),Z(a,"Med 999","th-row");for(const a of n){const n=e.frameStats.get(a),o=t.insertRow();Z(o,a),B(o,U(n.avg)),B(o,U(n.min)),B(o,U(n.max)),B(o,U(n.median)),B(o,U(n.median75)),B(o,U(n.median90)),B(o,U(n.median95)),B(o,U(n.median97)),B(o,U(n.median99)),B(o,U(n.median999))}}if(void 0!==e&&void 0!==e.zoomLevelData&&e.zoomLevelData.size>0){if(void 0!==e.zoomLevelLabels){t.insertRow();const n=t.insertRow();Z(n,"Value","th-row");for(const t of e.zoomLevelLabels)Z(n,t,"th-row")}const n=Array.from(e.zoomLevelData.keys()).sort(),a=e.zoomLevelData.get(n[0]);if(Array.isArray(a)&&a.length<30){t.insertRow(),t.insertRow();for(const a of n){const n=e.zoomLevelData.get(a),o=t.insertRow();if(Z(o,a),Array.isArray(n))for(const e of n)B(o,U(e));else B(o,U(n))}}}n.style.display="block"}(S),document.getElementById("tableDiv").style.display="block"}function I(){return E}async function A(e,t){V("Load and Render All Zoom Levels",e),S=await i.PerformanceUtils.zoomLevelTest(n,e,t,D,M,I),z()}function C(){document.getElementById("tableDiv").style.display="none"}const x=1048576;function U(e){const n=e>x;n&&(e/=x);let t=e.toFixed(2);for(;t.length>1&&t.includes(".")&&(t.endsWith("0")||t.endsWith("."));)t=t.substr(0,t.length-1);return t+(n?" M":"")}function Z(e,n,t){const a=document.createElement("th");void 0!==t&&(a.className=t),a.appendChild(document.createTextNode(n)),e.appendChild(a)}function B(e,n){const t=document.createElement("td");t.appendChild(document.createTextNode(n)),e.appendChild(t)}!async function(){n=await i.PerformanceUtils.initializeMapView("mapCanvas",["OMV"],u,p.get(void 0===f?"Default":f),void 0,{resource:"resources/berlin_tilezen_base.json"}),void 0!==n.mainDataSource&&n.mainDataSource.decoder instanceof a.WorkerBasedDecoder&&(F=n.mainDataSource.decoder.workerCount),function(){t=new r.GUI({width:300});let e=!0;const p={Theme:{default:"resources/berlin_tilezen_base.json",berlinDay:"resources/berlin_tilezen_base.json",berlinReducedDay:"resources/berlin_tilezen_day_reduced.json",berlinReducedNight:"resources/berlin_tilezen_night_reduced.json",berlinStreets:"resources/berlin_tilezen_effects_streets.json",berlinOutlines:"resources/berlin_tilezen_effects_outlines.json"},PixelRatio:{default:void 0,1.5:1.5,"1.0":1,.5:.5},CanvasSize:{default:void 0,"1100×900":"1100×900","640×400":"640×400","1024×768":"1024×768","1024×1024":"1024×1024","1280×720":"1280×720","1680×1024":"1680×1024","1920×1080":"1920×1080","2560×1440":"2560×1440","2560×1600":"2560×1600"},PowerPreference:{Default:"Default",LowPower:"LowPower",HighPerformance:"HighPerformance"},FpsLimit:{"No Limit":0,1:1,2:2,5:5,10:10,15:15,20:20,30:30,60:60},Use2D:!1,DisableFading:!1,ShowLabels:!0,NumRuns:{1:1,5:5,10:10,25:25,50:50,100:100,1e3:1e3},NumFrames:{default:void 0,10:10,25:25,50:50,100:100,250:250,500:500,1e3:1e3,2500:2500,5e3:5e3,1e4:1e4},NumDecoders:{default:void 0,1:1,2:2,3:3,4:4,6:6,8:8},throttlingEnabled:n.mapView.throttlingEnabled,maxTilesPerFrame:n.mapView.visibleTileSet.maxTilesPerFrame,PhasedLoading:!1,Berlin:()=>{!async function(){V("Show Map","Berlin"),S=await i.PerformanceUtils.measureOpenMapAtLocation(n,52.52,13.405,1600,M),z()}()},Paris:()=>{!async function(){V("Show Map","Paris"),S=await i.PerformanceUtils.measureOpenMapAtLocation(n,48.8566,2.3522,1600,M),z()}()},Bellinzona:()=>{!async function(){V("Show Map","Bellinzona"),S=await i.PerformanceUtils.measureOpenMapAtLocation(n,46.2177542,9.0448866,1e4,M),z()}()},Izmir:()=>{!async function(){V("Show Map","Izmir"),S=await i.PerformanceUtils.measureOpenMapAtLocation(n,38.40389671,27.15224164,5e3,M),z()}()},ZoomNY:()=>{A("Zoom_NewYork",s.PerformanceTestData.NEW_YORK_ZOOM)},ZoomParis:()=>{A("Zoom_Paris",s.PerformanceTestData.PARIS_ZOOM)},ZoomBellinzona:()=>{A("Zoom_Bellinzona",s.PerformanceTestData.BELLINZONA_ZOOM)},ZoomIzmir:()=>{A("Zoom_Izmir",s.PerformanceTestData.IZMIR_ZOOM)},FlyOverNY:()=>{!async function(){V("FlyOver","NewYork"),S=await i.PerformanceUtils.measureFlyoverSpline(n,"Flyover_NewYork",s.PerformanceTestData.NEW_YORK_FLYOVER,_,!1,D,M,T,I),z()}()},FlyOverNYZl17:()=>{!async function(){V("FlyOver","NewYork Zl17"),S=await i.PerformanceUtils.measureFlyoverSpline(n,"Flyover_NewYork_Zl17",s.PerformanceTestData.NEW_YORK_FLYOVER_ZL17,_,!1,D,M,T,I),z()}()},FlyOverNYLoaded:()=>{!async function(){V("FlyOver (All frames loaded)","NewYork"),S=await i.PerformanceUtils.measureFlyoverSpline(n,"Flyover_NewYork_Loaded",s.PerformanceTestData.NEW_YORK_FLYOVER,_,!0,D,M,T,I),z()}()},FlyOverParis:()=>{!async function(){V("FlyOver","Paris"),S=await i.PerformanceUtils.measureFlyoverSpline(n,"Flyover_Paris",s.PerformanceTestData.PARIS_FLYOVER,_,!1,D,M,T,I),z()}()},FlyOverParisLoaded:()=>{!async function(){V("FlyOver (All frames loaded)","Paris"),S=await i.PerformanceUtils.measureFlyoverSpline(n,"Flyover_Paris_Loaded",s.PerformanceTestData.PARIS_FLYOVER,_,!0,D,M,T,I),z()}()},FlyOverParisLondon:()=>{!async function(){V("FlyOver","Paris/London"),S=await i.PerformanceUtils.measureFlyoverSpline(n,"Flyover_Paris_London",s.PerformanceTestData.PARIS__LONDON_FLYOVER,_,!1,D,M,T,I),z()}()},FlyOverParisLondonLoaded:()=>{!async function(){V("FlyOver (All frames loaded)","Paris/London"),S=await i.PerformanceUtils.measureFlyoverSpline(n,"Flyover_Paris_London_Loaded",s.PerformanceTestData.PARIS__LONDON_FLYOVER,_,!0,D,M,T,I),z()}()},FlyOverEurope:()=>{!async function(){V("FlyOver","Europe"),S=await i.PerformanceUtils.measureFlyoverSpline(n,"Flyover_Europe",s.PerformanceTestData.EUROPE_FLYOVER,_,!1,D,M,T,I),z()}()},FlyOverEuropeLoaded:()=>{!async function(){V("FlyOver (All frames loaded)","Europe"),S=await i.PerformanceUtils.measureFlyoverSpline(n,"Flyover_Europe_Loaded",s.PerformanceTestData.EUROPE_FLYOVER,_,!0,D,M,T,I),z()}()},ZoomInBerlin:()=>{!async function(){V("ZoomIn","Berlin"),S=await i.PerformanceUtils.measureFlyoverSpline(n,"ZoomIn_Berlin",s.PerformanceTestData.BERLIN_ZOOM_IN,_,!1,!0,M,T,I),z()}()},ZoomInOutParis:()=>{!async function(){V("ZoomInOut","Paris"),S=await i.PerformanceUtils.measureFlyoverSpline(n,"ZoomInOut_Paris",s.PerformanceTestData.PARIS_ZOOM_IN_AND_OUT,_,!1,!0,M,T,I),z()}()},ZoomInOutParis2:()=>{!async function(){V("ZoomInOut2","Paris"),S=await i.PerformanceUtils.measureFlyoverSpline(n,"ZoomInOut_Paris2",s.PerformanceTestData.PARIS_ZOOM_IN_AND_OUT_2,_,!1,!0,M,T,I),z()}()},Cancel:()=>{t.closed&&t.open(),l.warn("Canceling running benchmark"),E=!0},HideResults:()=>{C()},SaveResults:()=>{!function(){const e=S;if(e){let n="Name, Avg, Min, Max, Median, Med 75, Med 90, Med 95, Med 97, Med 99, Med 999\n";const t=Array.from(e.frameStats.keys()).sort();for(const a of t){const t=e.frameStats.get(a);n+=`${a}, ${U(t.avg)}, ${U(t.min)}, ${U(t.max)}, ${U(t.median)}, ${U(t.median75)}, ${U(t.median90)}, ${U(t.median95)}, ${U(t.median97)}, ${U(t.median99)}, ${U(t.median999)}\n`}const a=new Blob([n],{type:"text/csv"}),o=document.createElement("a"),r=URL.createObjectURL(a);o.download="results.csv",o.href=r,o.dispatchEvent(new MouseEvent("click",{bubbles:!0,cancelable:!0,view:window}))}}()}};c=t.addFolder("Benchmarks"),c.add(p,"Theme",p.Theme).onChange((e=>{y=e;const t={resolveUri:e=>"fonts/Default_FontCatalog.json"===e?o.getAppBaseUrl()+"resources/fonts/Default_FontCatalog.json":e};a.ThemeLoader.load(e,{uriResolver:t}).then((async e=>{n.mapView.clearTileCache(),await n.mapView.setTheme(e)}))})).setValue("resources/berlin_tilezen_base.json"),c.add(p,"CanvasSize",p.CanvasSize).onChange((e=>{const t=document.getElementById("mapCanvas"),a=t.parentNode;if(void 0!==e&&"undefined"!==e){const o=e.split("×")[0],r=e.split("×")[1];a.style.width=o+"px",a.style.height=r+"px",a.style.position="absolute",n.mapView.resize(t.clientWidth,t.clientHeight)}else a.style.removeProperty("position"),a.style.removeProperty("width"),a.style.removeProperty("height"),n.mapView.resize(t.clientWidth,t.clientHeight);b=`${t.clientWidth}×${t.clientHeight}`})).setValue(void 0),c.add(p,"PowerPreference",p.PowerPreference).onChange((n=>{f=n,e||(alert("New value for 'PowerPreference' active after browser reload"),m())})).setValue(void 0===f?"Default":f),c.add(p,"NumDecoders",p.NumDecoders).onChange((n=>{u=void 0!==n&&"undefined"!==n?parseFloat(n):void 0,e||alert("New value for 'NumDecoders' active after browser reload"),m()})).setValue(void 0===u?void 0:u.toFixed(0)),c.add(p,"throttlingEnabled").onFinishChange((e=>{n.mapView.throttlingEnabled=e})).listen(),c.add(p,"PixelRatio",p.PixelRatio).onChange((e=>{const t="undefined"===e?void 0:parseFloat(e);O=t,n.mapView.dynamicPixelRatio=t})).setValue("undefined"),c.add(p,"FpsLimit",p.FpsLimit).onChange((e=>{R=e,n.mapView.maxFps=e})).setValue(0),c.add(p,"Use2D",p.Use2D).onChange((e=>{D=!0===e})),c.add(p,"DisableFading",p.DisableFading).onChange((e=>{N=!0===e})),c.add(p,"ShowLabels",p.ShowLabels).onChange((e=>{M=!0===e})),c.add(p,"maxTilesPerFrame",0,10,1).onFinishChange((e=>{n.mapView.visibleTileSet.maxTilesPerFrame=e})).listen(),d=c.addFolder("OpenAndZoom"),d.add(p,"Berlin"),d.add(p,"Paris"),d.add(p,"Bellinzona"),d.add(p,"Izmir"),d.add(p,"ZoomNY"),d.add(p,"ZoomParis"),d.add(p,"ZoomBellinzona"),d.add(p,"ZoomIzmir"),v=c.addFolder("FlyOvers"),v.add(p,"NumRuns",p.NumRuns).onChange((e=>{T=e})).setValue(1),v.add(p,"NumFrames",p.NumFrames).onChange((e=>{_=e})).setValue(void 0),v.add(p,"ZoomInBerlin"),v.add(p,"ZoomInOutParis"),v.add(p,"ZoomInOutParis2"),v.add(p,"FlyOverNY"),v.add(p,"FlyOverNYZl17"),v.add(p,"FlyOverNYLoaded"),v.add(p,"FlyOverParis"),v.add(p,"FlyOverParisLoaded"),v.add(p,"FlyOverParisLondon"),v.add(p,"FlyOverParisLondonLoaded"),v.add(p,"FlyOverEurope"),v.add(p,"FlyOverEuropeLoaded"),c.open(),d.open(),v.open(),w=t.add(p,"Cancel"),t.add(p,"HideResults"),t.add(p,"SaveResults"),w.domElement.setAttribute("disabled",""),e=!1}()}()}(n.j||(n.j={}))},4428:e=>{e.exports=THREE}},n={};function t(a){if(n[a])return n[a].exports;var o=n[a]={exports:{}};return e[a].call(o.exports,o,o.exports,t),o.exports}t.m=e,t.x=e=>{},t.n=e=>{var n=e&&e.__esModule?()=>e.default:()=>e;return t.d(n,{a:n}),n},t.d=(e,n)=>{for(var a in n)t.o(n,a)&&!t.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:n[a]})},t.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),t.o=(e,n)=>Object.prototype.hasOwnProperty.call(e,n),t.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.j=779,(()=>{var e={779:0,738:0},n=[[5600,592]],a=e=>{},o=(o,r)=>{for(var s,i,[l,c,d,m]=r,u=0,f=[];u<l.length;u++)i=l[u],t.o(e,i)&&e[i]&&f.push(e[i][0]),e[i]=0;for(s in c)t.o(c,s)&&(t.m[s]=c[s]);for(d&&d(t),o&&o(r);f.length;)f.shift()();return m&&n.push.apply(n,m),a()},r=self.webpackChunk_here_harp_examples=self.webpackChunk_here_harp_examples||[];function s(){for(var a,o=0;o<n.length;o++){for(var r=n[o],s=!0,i=1;i<r.length;i++){var l=r[i];0!==e[l]&&(s=!1)}s&&(n.splice(o--,1),a=t(t.s=r[0]))}return 0===n.length&&(t.x(),t.x=e=>{}),a}r.forEach(o.bind(null,0)),r.push=o.bind(null,r.push.bind(r));var i=t.x;t.x=()=>(t.x=i||(e=>{}),(a=s)())})(),t.x()})();