You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
1520 lines
3.6 MiB
1520 lines
3.6 MiB
2 years ago
|
{
|
||
|
"cells": [
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 4,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"import requests\n",
|
||
|
"import json\n",
|
||
|
"import numpy as np\n",
|
||
|
"import pandas as pd\n",
|
||
|
"import config as cfg\n",
|
||
|
"import math\n",
|
||
|
"\n",
|
||
|
"#import folium\n",
|
||
|
"#import ipywidgets as widgets\n",
|
||
|
"#from ipywidgets import Layout\n",
|
||
|
"#import matplotlib.pyplot as plt\n",
|
||
|
"import plotly.graph_objects as go\n",
|
||
|
"\n",
|
||
|
"#from ipyleaflet import Map, basemaps, basemap_to_tiles, DrawControl, Polyline, TileLayer, GeoJSON, AntPath, Marker, Icon, Circle, CircleMarker"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 5,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"par = {\n",
|
||
|
" \"key\":cfg.conf['key_TT2'],\n",
|
||
|
" # \"callback\":callback,\n",
|
||
|
" # \"fuelBudgetInLiters\":float,\n",
|
||
|
" \"maxChargeInkWh\": 95,\n",
|
||
|
" \"currentChargeInkWh\" : 80,\n",
|
||
|
" # \"timeBudgetInSec\":float,\n",
|
||
|
" # \"distanceBudgetInMeters\":float,\n",
|
||
|
" # \"report\":effectiveSettings,\n",
|
||
|
" # \"departAt\":time,\n",
|
||
|
" # \"routeType\":routeType,\n",
|
||
|
" \"traffic\": \"true\",\n",
|
||
|
" \"avoid\": \"unpavedRoads\",\n",
|
||
|
" \"travelMode\": \"car\",\n",
|
||
|
" # \"hilliness\":hilliness,\n",
|
||
|
" # \"windingness\":windingness,\n",
|
||
|
" \"vehicleMaxSpeed\": 200,\n",
|
||
|
" \"vehicleWeight\": 2000,\n",
|
||
|
" \"vehicleAxleWeight\": 1000,\n",
|
||
|
" \"vehicleLength\": 3,\n",
|
||
|
" \"vehicleWidth\": 2,\n",
|
||
|
" \"vehicleHeight\": 1.5,\n",
|
||
|
" \"vehicleCommercial\": \"true\",\n",
|
||
|
" # \"vehicleLoadType\":vehicleLoadType,\n",
|
||
|
" # \"vehicleAdrTunnelRestrictionCode\":vehicleAdrTunnelRestrictionCode,\n",
|
||
|
" \"vehicleEngineType\":\"electric\",\n",
|
||
|
" # \"constantSpeedConsumptionInLitersPerHundredkm\":CombustionConstantSpeedConsumptionPairs,\n",
|
||
|
" # \"currentFuelInLiters\":float,\n",
|
||
|
" # \"auxiliaryPowerInLitersPerHour\":float,\n",
|
||
|
" # \"fuelEnergyDensityInMJoulesPerLiter\":float,\n",
|
||
|
" # \"accelerationEfficiency\":float,\n",
|
||
|
" # \"decelerationEfficiency\":float,\n",
|
||
|
" # \"uphillEfficiency\":float,\n",
|
||
|
" # \"downhillEfficiency\":float,\n",
|
||
|
" #\"velocityOffsetUnlimitedHighway\":20,\n",
|
||
|
" #\"velocityOffsetFRC1\":15,\n",
|
||
|
" #\"velocityOffsetFRC2\":10,\n",
|
||
|
" #\"velocityOffsetFRC3\":8,\n",
|
||
|
" #\"velocityOffsetFRC4\":0,\n",
|
||
|
" #\"velocityOffsetFRC5\":0,\n",
|
||
|
" \"constantSpeedConsumptionInkWhPerHundredkm\": '0,29.4:27,27.9:45,29.4:60,23.1:75,24.7:90,27.8:100,29.5:110,31.55:120,34.35:130,35.55',\n",
|
||
|
" # \"currentChargeInkWh\":float,\n",
|
||
|
" # \"maxChargeInkWh\":float,\n",
|
||
|
" \"auxiliaryPowerInkW\": 3,\n",
|
||
|
" }"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 6,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": [
|
||
|
"def response_url(url,parameters,cfg,headers=-1,payload=-1):\n",
|
||
|
" try:\n",
|
||
|
" if headers==-1 and payload==-1: # only get ...\n",
|
||
|
" response = requests.get(url,params=parameters,timeout=300)#,proxies=cfg.conf['proxies'])\n",
|
||
|
" else: # post with headers + json ...\n",
|
||
|
" #response = requests.post(url,params=parameters,headers=headers,json=payload,timeout=300,proxies=cfg.conf['proxies'])\n",
|
||
|
" response = requests.post(url,params=parameters,headers=headers,json=payload,timeout=300)\n",
|
||
|
" response.raise_for_status() # Raise error in case of failure \n",
|
||
|
" except requests.exceptions.HTTPError as httpErr: \n",
|
||
|
" print (\"Http Error:\",httpErr) \n",
|
||
|
" print(response.json())\n",
|
||
|
" except requests.exceptions.ConnectionError as connErr: \n",
|
||
|
" print (\"Error Connecting:\",connErr) \n",
|
||
|
" except requests.exceptions.Timeout as timeOutErr: \n",
|
||
|
" print (\"Timeout Error:\",timeOutErr) \n",
|
||
|
" except requests.exceptions.RequestException as reqErr: \n",
|
||
|
" print (\"Something Else:\",reqErr) \n",
|
||
|
" #print(response.url)\n",
|
||
|
" #print(response.json())\n",
|
||
|
" return response.json()\n",
|
||
|
"\n",
|
||
|
"# Geocoding\n",
|
||
|
"def Mapbox_Geocoding(City_str):\n",
|
||
|
" url = 'https://api.mapbox.com/geocoding/v5/mapbox.places/' + City_str + '.json'\n",
|
||
|
" parameters = {'access_token':cfg.conf['key_MapBox']}\n",
|
||
|
" return response_url(url,parameters,cfg)['features'][0]['center']\n",
|
||
|
"\n",
|
||
|
"# TT EV HCP3 routing\n",
|
||
|
"def TomTom_HCP3_Routing(lat_s,lng_s,lat_d,lng_d,cfg,parameters):\n",
|
||
|
"\n",
|
||
|
" url = \"https://api.tomtom.com/routing-hcp3/1//calculateRoute/\" + str(lat_s)+ ',' +str(lng_s)+\":\"+str(lat_d)+ ',' +str(lng_d) + \"/json?\"\n",
|
||
|
"\n",
|
||
|
" response = response_url(url,parameters,cfg)#,headers,payload)\n",
|
||
|
" #print(response)\n",
|
||
|
" # data frame\n",
|
||
|
" df = pd.DataFrame(data=response['routes'][0]['legs'][0]['points'], columns=['latitude','longitude']) # legs[0]\n",
|
||
|
" \n",
|
||
|
" # single values \n",
|
||
|
" singVal = [] \n",
|
||
|
" singValName = []\n",
|
||
|
" singValName.append('batteryConsumptionInkWh_summary')\n",
|
||
|
" singVal.append(response['routes'][0]['summary']['batteryConsumptionInkWh'])\n",
|
||
|
" singValName.append('lengthInKiloMeters_summary')\n",
|
||
|
" singVal.append(response['routes'][0]['summary']['lengthInMeters']/1000) # km\n",
|
||
|
" singValName.append('travelTimeInMinutes_summary')\n",
|
||
|
" singVal.append(response['routes'][0]['summary']['travelTimeInSeconds']/60) # min\n",
|
||
|
" singValName.append('trafficDelayInMinutes_summary')\n",
|
||
|
" singVal.append(response['routes'][0]['summary']['trafficDelayInSeconds']/60) # min\n",
|
||
|
" df2 = pd.DataFrame(columns=singValName)\n",
|
||
|
" df2.loc[0] = singVal\n",
|
||
|
" \n",
|
||
|
" return df,df2\n"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": 7,
|
||
|
"metadata": {
|
||
|
"scrolled": false
|
||
|
},
|
||
|
"outputs": [
|
||
|
{
|
||
|
"data": {
|
||
|
"text/html": [
|
||
|
" <script type=\"text/javascript\">\n",
|
||
|
" window.PlotlyConfig = {MathJaxConfig: 'local'};\n",
|
||
|
" if (window.MathJax) {MathJax.Hub.Config({SVG: {font: \"STIX-Web\"}});}\n",
|
||
|
" if (typeof require !== 'undefined') {\n",
|
||
|
" require.undef(\"plotly\");\n",
|
||
|
" define('plotly', function(require, exports, module) {\n",
|
||
|
" /**\n",
|
||
|
"* plotly.js v2.9.0\n",
|
||
|
"* Copyright 2012-2022, Plotly, Inc.\n",
|
||
|
"* All rights reserved.\n",
|
||
|
"* Licensed under the MIT license\n",
|
||
|
"*/\n",
|
||
|
"!function(t){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=t();else if(\"function\"==typeof define&&define.amd)define([],t);else{(\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this).Plotly=t()}}((function(){return function t(e,r,n){function i(o,s){if(!r[o]){if(!e[o]){var l=\"function\"==typeof require&&require;if(!s&&l)return l(o,!0);if(a)return a(o,!0);var c=new Error(\"Cannot find module '\"+o+\"'\");throw c.code=\"MODULE_NOT_FOUND\",c}var u=r[o]={exports:{}};e[o][0].call(u.exports,(function(t){return i(e[o][1][t]||t)}),u,u.exports,t,e,r,n)}return r[o].exports}for(var a=\"function\"==typeof require&&require,o=0;o<n.length;o++)i(n[o]);return i}({1:[function(t,e,r){\"use strict\";var n=t(\"../src/lib\"),i={\"X,X div\":'direction:ltr;font-family:\"Open Sans\",verdana,arial,sans-serif;margin:0;padding:0;',\"X input,X button\":'font-family:\"Open Sans\",verdana,arial,sans-serif;',\"X input:focus,X button:focus\":\"outline:none;\",\"X a\":\"text-decoration:none;\",\"X a:hover\":\"text-decoration:none;\",\"X .crisp\":\"shape-rendering:crispEdges;\",\"X .user-select-none\":\"-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;\",\"X svg\":\"overflow:hidden;\",\"X svg a\":\"fill:#447adb;\",\"X svg a:hover\":\"fill:#3c6dc5;\",\"X .main-svg\":\"position:absolute;top:0;left:0;pointer-events:none;\",\"X .main-svg .draglayer\":\"pointer-events:all;\",\"X .cursor-default\":\"cursor:default;\",\"X .cursor-pointer\":\"cursor:pointer;\",\"X .cursor-crosshair\":\"cursor:crosshair;\",\"X .cursor-move\":\"cursor:move;\",\"X .cursor-col-resize\":\"cursor:col-resize;\",\"X .cursor-row-resize\":\"cursor:row-resize;\",\"X .cursor-ns-resize\":\"cursor:ns-resize;\",\"X .cursor-ew-resize\":\"cursor:ew-resize;\",\"X .cursor-sw-resize\":\"cursor:sw-resize;\",\"X .cursor-s-resize\":\"cursor:s-resize;\",\"X .cursor-se-resize\":\"cursor:se-resize;\",\"X .cursor-w-resize\":\"cursor:w-resize;\",\"X .cursor-e-resize\":\"cursor:e-resize;\",\"X .cursor-nw-resize\":\"cursor:nw-resize;\",\"X .cursor-n-resize\":\"cursor:n-resize;\",\"X .cursor-ne-resize\":\"cursor:ne-resize;\",\"X .cursor-grab\":\"cursor:-webkit-grab;cursor:grab;\",\"X .modebar\":\"position:absolute;top:2px;right:2px;\",\"X .ease-bg\":\"-webkit-transition:background-color .3s ease 0s;-moz-transition:background-color .3s ease 0s;-ms-transition:background-color .3s ease 0s;-o-transition:background-color .3s ease 0s;transition:background-color .3s ease 0s;\",\"X .modebar--hover>:not(.watermark)\":\"opacity:0;-webkit-transition:opacity .3s ease 0s;-moz-transition:opacity .3s ease 0s;-ms-transition:opacity .3s ease 0s;-o-transition:opacity .3s ease 0s;transition:opacity .3s ease 0s;\",\"X:hover .modebar--hover .modebar-group\":\"opacity:1;\",\"X .modebar-group\":\"float:left;display:inline-block;box-sizing:border-box;padding-left:8px;position:relative;vertical-align:middle;white-space:nowrap;\",\"X .modebar-btn\":\"position:relative;font-size:16px;padding:3px 4px;height:22px;cursor:pointer;line-height:normal;box-sizing:border-box;\",\"X .modebar-btn svg\":\"position:relative;top:2px;\",\"X .modebar.vertical\":\"display:flex;flex-direction:column;flex-wrap:wrap;align-content:flex-end;max-height:100%;\",\"X .modebar.vertical svg\":\"top:-1px;\",\"X .modebar.vertical .modebar-group\":\"display:block;float:none;padding-left:0px;padding-bottom:8px;\",\"X .modebar.vertical .modebar-group .modebar-btn\":\"display:block;text-align:center;\",\"X [data-title]:before,X [data-title]:after\":\"position:absolute;-webkit-transform:translate3d(0, 0, 0);-moz-transform:translate3d(0, 0, 0);-ms-transform:translate3d(0, 0, 0);-o-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0);display:none;opacity:0;z-index:1001;pointer-events:none;top:110%;right:50%;\",\"X [data-title]:hover:before,X [data-title]:hover:after\":\"display:block;opacity:1;\",\"X [data-title]:before\":'content:\"\";position:absolute;background:transparent;border:6px solid transparent;z-index:10
|
||
|
"/*!\n",
|
||
|
" * The buffer module from node.js, for the browser.\n",
|
||
|
" *\n",
|
||
|
" * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n",
|
||
|
" * @license MIT\n",
|
||
|
" */function i(t,e){if(t===e)return 0;for(var r=t.length,n=e.length,i=0,a=Math.min(r,n);i<a;++i)if(t[i]!==e[i]){r=t[i],n=e[i];break}return r<n?-1:n<r?1:0}function a(t){return r.Buffer&&\"function\"==typeof r.Buffer.isBuffer?r.Buffer.isBuffer(t):!(null==t||!t._isBuffer)}var o=t(\"util/\"),s=Object.prototype.hasOwnProperty,l=Array.prototype.slice,c=\"foo\"===function(){}.name;function u(t){return Object.prototype.toString.call(t)}function f(t){return!a(t)&&(\"function\"==typeof r.ArrayBuffer&&(\"function\"==typeof ArrayBuffer.isView?ArrayBuffer.isView(t):!!t&&(t instanceof DataView||!!(t.buffer&&t.buffer instanceof ArrayBuffer))))}var h=e.exports=y,p=/\\s*function\\s+([^\\(\\s]*)\\s*/;function d(t){if(o.isFunction(t)){if(c)return t.name;var e=t.toString().match(p);return e&&e[1]}}function g(t,e){return\"string\"==typeof t?t.length<e?t:t.slice(0,e):t}function m(t){if(c||!o.isFunction(t))return o.inspect(t);var e=d(t);return\"[Function\"+(e?\": \"+e:\"\")+\"]\"}function v(t,e,r,n,i){throw new h.AssertionError({message:r,actual:t,expected:e,operator:n,stackStartFunction:i})}function y(t,e){t||v(t,!0,e,\"==\",h.ok)}function x(t,e,r,n){if(t===e)return!0;if(a(t)&&a(e))return 0===i(t,e);if(o.isDate(t)&&o.isDate(e))return t.getTime()===e.getTime();if(o.isRegExp(t)&&o.isRegExp(e))return t.source===e.source&&t.global===e.global&&t.multiline===e.multiline&&t.lastIndex===e.lastIndex&&t.ignoreCase===e.ignoreCase;if(null!==t&&\"object\"==typeof t||null!==e&&\"object\"==typeof e){if(f(t)&&f(e)&&u(t)===u(e)&&!(t instanceof Float32Array||t instanceof Float64Array))return 0===i(new Uint8Array(t.buffer),new Uint8Array(e.buffer));if(a(t)!==a(e))return!1;var s=(n=n||{actual:[],expected:[]}).actual.indexOf(t);return-1!==s&&s===n.expected.indexOf(e)||(n.actual.push(t),n.expected.push(e),function(t,e,r,n){if(null==t||null==e)return!1;if(o.isPrimitive(t)||o.isPrimitive(e))return t===e;if(r&&Object.getPrototypeOf(t)!==Object.getPrototypeOf(e))return!1;var i=b(t),a=b(e);if(i&&!a||!i&&a)return!1;if(i)return t=l.call(t),e=l.call(e),x(t,e,r);var s,c,u=T(t),f=T(e);if(u.length!==f.length)return!1;for(u.sort(),f.sort(),c=u.length-1;c>=0;c--)if(u[c]!==f[c])return!1;for(c=u.length-1;c>=0;c--)if(s=u[c],!x(t[s],e[s],r,n))return!1;return!0}(t,e,r,n))}return r?t===e:t==e}function b(t){return\"[object Arguments]\"==Object.prototype.toString.call(t)}function _(t,e){if(!t||!e)return!1;if(\"[object RegExp]\"==Object.prototype.toString.call(e))return e.test(t);try{if(t instanceof e)return!0}catch(t){}return!Error.isPrototypeOf(e)&&!0===e.call({},t)}function w(t,e,r,n){var i;if(\"function\"!=typeof e)throw new TypeError('\"block\" argument must be a function');\"string\"==typeof r&&(n=r,r=null),i=function(t){var e;try{t()}catch(t){e=t}return e}(e),n=(r&&r.name?\" (\"+r.name+\").\":\".\")+(n?\" \"+n:\".\"),t&&!i&&v(i,r,\"Missing expected exception\"+n);var a=\"string\"==typeof n,s=!t&&i&&!r;if((!t&&o.isError(i)&&a&&_(i,r)||s)&&v(i,r,\"Got unwanted exception\"+n),t&&i&&r&&!_(i,r)||!t&&i)throw i}h.AssertionError=function(t){this.name=\"AssertionError\",this.actual=t.actual,this.expected=t.expected,this.operator=t.operator,t.message?(this.message=t.message,this.generatedMessage=!1):(this.message=function(t){return g(m(t.actual),128)+\" \"+t.operator+\" \"+g(m(t.expected),128)}(this),this.generatedMessage=!0);var e=t.stackStartFunction||v;if(Error.captureStackTrace)Error.captureStackTrace(this,e);else{var r=new Error;if(r.stack){var n=r.stack,i=d(e),a=n.indexOf(\"\\n\"+i);if(a>=0){var o=n.indexOf(\"\\n\",a+1);n=n.substring(o+1)}this.stack=n}}},o.inherits(h.AssertionError,Error),h.fail=v,h.ok=y,h.equal=function(t,e,r){t!=e&&v(t,e,r,\"==\",h.equal)},h.notEqual=function(t,e,r){t==e&&v(t,e,r,\"!=\",h.notEqual)},h.deepEqual=function(t,e,r){x(t,e,!1)||v(t,e,r,\"deepEqual\",h.deepEqual)},h.deepStrictEqual=function(t,e,r){x(t,e,!0)||v(t,e,r,\"deepStrictEqual\",h.deepStrictEqual)},h.notDeepEqual=function(t,e,r){x(t,e,!1)&&v(t,e,r,\"notDeepEqual\",h.notDeepEqual)},h.notDeepStrictEqual=function t(e,r,n){x(e,r,!0)&&v(e,r,n,\"notDeepStrictEqual\",t)},h.strictEqual=function(t,e
|
||
|
"/*!\n",
|
||
|
" * The buffer module from node.js, for the browser.\n",
|
||
|
" *\n",
|
||
|
" * @author Feross Aboukhadijeh <https://feross.org>\n",
|
||
|
" * @license MIT\n",
|
||
|
" */\n",
|
||
|
"\"use strict\";var e=t(\"base64-js\"),n=t(\"ieee754\");r.Buffer=a,r.SlowBuffer=function(t){+t!=t&&(t=0);return a.alloc(+t)},r.INSPECT_MAX_BYTES=50;function i(t){if(t>2147483647)throw new RangeError('The value \"'+t+'\" is invalid for option \"size\"');var e=new Uint8Array(t);return e.__proto__=a.prototype,e}function a(t,e,r){if(\"number\"==typeof t){if(\"string\"==typeof e)throw new TypeError('The \"string\" argument must be of type string. Received type number');return l(t)}return o(t,e,r)}function o(t,e,r){if(\"string\"==typeof t)return function(t,e){\"string\"==typeof e&&\"\"!==e||(e=\"utf8\");if(!a.isEncoding(e))throw new TypeError(\"Unknown encoding: \"+e);var r=0|f(t,e),n=i(r),o=n.write(t,e);o!==r&&(n=n.slice(0,o));return n}(t,e);if(ArrayBuffer.isView(t))return c(t);if(null==t)throw TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof t);if(B(t,ArrayBuffer)||t&&B(t.buffer,ArrayBuffer))return function(t,e,r){if(e<0||t.byteLength<e)throw new RangeError('\"offset\" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw new RangeError('\"length\" is outside of buffer bounds');var n;n=void 0===e&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,e):new Uint8Array(t,e,r);return n.__proto__=a.prototype,n}(t,e,r);if(\"number\"==typeof t)throw new TypeError('The \"value\" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return a.from(n,e,r);var o=function(t){if(a.isBuffer(t)){var e=0|u(t.length),r=i(e);return 0===r.length||t.copy(r,0,0,e),r}if(void 0!==t.length)return\"number\"!=typeof t.length||N(t.length)?i(0):c(t);if(\"Buffer\"===t.type&&Array.isArray(t.data))return c(t.data)}(t);if(o)return o;if(\"undefined\"!=typeof Symbol&&null!=Symbol.toPrimitive&&\"function\"==typeof t[Symbol.toPrimitive])return a.from(t[Symbol.toPrimitive](\"string\"),e,r);throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof t)}function s(t){if(\"number\"!=typeof t)throw new TypeError('\"size\" argument must be of type number');if(t<0)throw new RangeError('The value \"'+t+'\" is invalid for option \"size\"')}function l(t){return s(t),i(t<0?0:0|u(t))}function c(t){for(var e=t.length<0?0:0|u(t.length),r=i(e),n=0;n<e;n+=1)r[n]=255&t[n];return r}function u(t){if(t>=2147483647)throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+2147483647..toString(16)+\" bytes\");return 0|t}function f(t,e){if(a.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||B(t,ArrayBuffer))return t.byteLength;if(\"string\"!=typeof t)throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":return D(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return R(t).length;default:if(i)return n?-1:D(t).length;e=(\"\"+e).toLowerCase(),i=!0}}function h(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(e>>>=0))return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return M(this,e,r);case\"utf8\":case\"utf-8\":return T(this,e,r);case\"ascii\":return k(this,e,r);case\"latin1\":case\"binary\":return A(this,e,r);case\"base64\":return w(this,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return S(this,e,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),n=!0}}function p(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function d(t,e,r,n,i){if(0===t.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),N(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}i
|
||
|
"/*! Native Promise Only\n",
|
||
|
" v0.8.1 (c) Kyle Simpson\n",
|
||
|
" MIT License: http://getify.mit-license.org\n",
|
||
|
"*/\n",
|
||
|
"!function(t,r,n){r[t]=r[t]||n(),void 0!==e&&e.exports&&(e.exports=r[t])}(\"Promise\",void 0!==t?t:this,(function(){\"use strict\";var t,e,n,i=Object.prototype.toString,a=void 0!==r?function(t){return r(t)}:setTimeout;try{Object.defineProperty({},\"x\",{}),t=function(t,e,r,n){return Object.defineProperty(t,e,{value:r,writable:!0,configurable:!1!==n})}}catch(e){t=function(t,e,r){return t[e]=r,t}}function o(t,r){n.add(t,r),e||(e=a(n.drain))}function s(t){var e,r=typeof t;return null==t||\"object\"!=r&&\"function\"!=r||(e=t.then),\"function\"==typeof e&&e}function l(){for(var t=0;t<this.chain.length;t++)c(this,1===this.state?this.chain[t].success:this.chain[t].failure,this.chain[t]);this.chain.length=0}function c(t,e,r){var n,i;try{!1===e?r.reject(t.msg):(n=!0===e?t.msg:e.call(void 0,t.msg))===r.promise?r.reject(TypeError(\"Promise-chain cycle\")):(i=s(n))?i.call(n,r.resolve,r.reject):r.resolve(n)}catch(t){r.reject(t)}}function u(t){var e,r=this;if(!r.triggered){r.triggered=!0,r.def&&(r=r.def);try{(e=s(t))?o((function(){var n=new p(r);try{e.call(t,(function(){u.apply(n,arguments)}),(function(){f.apply(n,arguments)}))}catch(t){f.call(n,t)}})):(r.msg=t,r.state=1,r.chain.length>0&&o(l,r))}catch(t){f.call(new p(r),t)}}}function f(t){var e=this;e.triggered||(e.triggered=!0,e.def&&(e=e.def),e.msg=t,e.state=2,e.chain.length>0&&o(l,e))}function h(t,e,r,n){for(var i=0;i<e.length;i++)!function(i){t.resolve(e[i]).then((function(t){r(i,t)}),n)}(i)}function p(t){this.def=t,this.triggered=!1}function d(t){this.promise=t,this.state=0,this.triggered=!1,this.chain=[],this.msg=void 0}function g(t){if(\"function\"!=typeof t)throw TypeError(\"Not a function\");if(0!==this.__NPO__)throw TypeError(\"Not a promise\");this.__NPO__=1;var e=new d(this);this.then=function(t,r){var n={success:\"function\"!=typeof t||t,failure:\"function\"==typeof r&&r};return n.promise=new this.constructor((function(t,e){if(\"function\"!=typeof t||\"function\"!=typeof e)throw TypeError(\"Not a function\");n.resolve=t,n.reject=e})),e.chain.push(n),0!==e.state&&o(l,e),n.promise},this.catch=function(t){return this.then(void 0,t)};try{t.call(void 0,(function(t){u.call(e,t)}),(function(t){f.call(e,t)}))}catch(t){f.call(e,t)}}n=function(){var t,r,n;function i(t,e){this.fn=t,this.self=e,this.next=void 0}return{add:function(e,a){n=new i(e,a),r?r.next=n:t=n,r=n,n=void 0},drain:function(){var n=t;for(t=r=e=void 0;n;)n.fn.call(n.self),n=n.next}}}();var m=t({},\"constructor\",g,!1);return g.prototype=m,t(m,\"__NPO__\",0,!1),t(g,\"resolve\",(function(t){return t&&\"object\"==typeof t&&1===t.__NPO__?t:new this((function(e,r){if(\"function\"!=typeof e||\"function\"!=typeof r)throw TypeError(\"Not a function\");e(t)}))})),t(g,\"reject\",(function(t){return new this((function(e,r){if(\"function\"!=typeof e||\"function\"!=typeof r)throw TypeError(\"Not a function\");r(t)}))})),t(g,\"all\",(function(t){var e=this;return\"[object Array]\"!=i.call(t)?e.reject(TypeError(\"Not an array\")):0===t.length?e.resolve([]):new e((function(r,n){if(\"function\"!=typeof r||\"function\"!=typeof n)throw TypeError(\"Not a function\");var i=t.length,a=Array(i),o=0;h(e,t,(function(t,e){a[t]=e,++o===i&&r(a)}),n)}))})),t(g,\"race\",(function(t){var e=this;return\"[object Array]\"!=i.call(t)?e.reject(TypeError(\"Not an array\")):new e((function(r,n){if(\"function\"!=typeof r||\"function\"!=typeof n)throw TypeError(\"Not a function\");h(e,t,(function(t,e){r(e)}),n)}))})),g}))}).call(this)}).call(this,\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{},t(\"timers\").setImmediate)},{timers:311}],246:[function(t,e,r){var n=Math.PI,i=c(120);function a(t,e,r,n){return[\"C\",t,e,r,n,r,n]}function o(t,e,r,n,i,a){return[\"C\",t/3+2/3*r,e/3+2/3*n,i/3+2/3*r,a/3+2/3*n,i,a]}function s(t,e,r,a,o,c,u,f,h,p){if(p)T=p[0],k=p[1],_=p[2],w=p[3];else{var d=l(t,e,-o);t=d.x,e=d.y;var g=(t-(f=(d=l(f,h,-o)).x))/2,m=(e-(h=d.y))/2,v=g*g/(r*r)+m*m/(a*a);v>1&&(r*=v=Math.sqrt(v),a*=v);var y=r*r,x=a*a,b=(c==u?-1:1)*Math.sqrt(Math.abs((y*x-y*m*m-x*g*g)/(y*m*m+x*g*g)));b==1/0&&(
|
||
|
"/*\n",
|
||
|
"object-assign\n",
|
||
|
"(c) Sindre Sorhus\n",
|
||
|
"@license MIT\n",
|
||
|
"*/\n",
|
||
|
"\"use strict\";var n=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;function o(t){if(null==t)throw new TypeError(\"Object.assign cannot be called with null or undefined\");return Object(t)}e.exports=function(){try{if(!Object.assign)return!1;var t=new String(\"abc\");if(t[5]=\"de\",\"5\"===Object.getOwnPropertyNames(t)[0])return!1;for(var e={},r=0;r<10;r++)e[\"_\"+String.fromCharCode(r)]=r;if(\"0123456789\"!==Object.getOwnPropertyNames(e).map((function(t){return e[t]})).join(\"\"))return!1;var n={};return\"abcdefghijklmnopqrst\".split(\"\").forEach((function(t){n[t]=t})),\"abcdefghijklmnopqrst\"===Object.keys(Object.assign({},n)).join(\"\")}catch(t){return!1}}()?Object.assign:function(t,e){for(var r,s,l=o(t),c=1;c<arguments.length;c++){for(var u in r=Object(arguments[c]))i.call(r,u)&&(l[u]=r[u]);if(n){s=n(r);for(var f=0;f<s.length;f++)a.call(r,s[f])&&(l[s[f]]=r[s[f]])}}return l}},{}],248:[function(t,e,r){\"use strict\";function n(t,e){if(\"string\"!=typeof t)return[t];var r=[t];\"string\"==typeof e||Array.isArray(e)?e={brackets:e}:e||(e={});var n=e.brackets?Array.isArray(e.brackets)?e.brackets:[e.brackets]:[\"{}\",\"[]\",\"()\"],i=e.escape||\"___\",a=!!e.flat;n.forEach((function(t){var e=new RegExp([\"\\\\\",t[0],\"[^\\\\\",t[0],\"\\\\\",t[1],\"]*\\\\\",t[1]].join(\"\")),n=[];function a(e,a,o){var s=r.push(e.slice(t[0].length,-t[1].length))-1;return n.push(s),i+s+i}r.forEach((function(t,n){for(var i,o=0;t!=i;)if(i=t,t=t.replace(e,a),o++>1e4)throw Error(\"References have circular dependency. Please, check them.\");r[n]=t})),n=n.reverse(),r=r.map((function(e){return n.forEach((function(r){e=e.replace(new RegExp(\"(\\\\\"+i+r+\"\\\\\"+i+\")\",\"g\"),t[0]+\"$1\"+t[1])})),e}))}));var o=new RegExp(\"\\\\\"+i+\"([0-9]+)\\\\\"+i);return a?r:function t(e,r,n){for(var i,a=[],s=0;i=o.exec(e);){if(s++>1e4)throw Error(\"Circular references in parenthesis\");a.push(e.slice(0,i.index)),a.push(t(r[i[1]],r)),e=e.slice(i.index+i[0].length)}return a.push(e),a}(r[0],r)}function i(t,e){if(e&&e.flat){var r,n=e&&e.escape||\"___\",i=t[0];if(!i)return\"\";for(var a=new RegExp(\"\\\\\"+n+\"([0-9]+)\\\\\"+n),o=0;i!=r;){if(o++>1e4)throw Error(\"Circular references in \"+t);r=i,i=i.replace(a,s)}return i}return t.reduce((function t(e,r){return Array.isArray(r)&&(r=r.reduce(t,\"\")),e+r}),\"\");function s(e,r){if(null==t[r])throw Error(\"Reference \"+r+\"is undefined\");return t[r]}}function a(t,e){return Array.isArray(t)?i(t,e):n(t,e)}a.parse=n,a.stringify=i,e.exports=a},{}],249:[function(t,e,r){\"use strict\";var n=t(\"pick-by-alias\");e.exports=function(t){var e;arguments.length>1&&(t=arguments);\"string\"==typeof t?t=t.split(/\\s/).map(parseFloat):\"number\"==typeof t&&(t=[t]);t.length&&\"number\"==typeof t[0]?e=1===t.length?{width:t[0],height:t[0],x:0,y:0}:2===t.length?{width:t[0],height:t[1],x:0,y:0}:{x:t[0],y:t[1],width:t[2]-t[0]||0,height:t[3]-t[1]||0}:t&&(t=n(t,{left:\"x l left Left\",top:\"y t top Top\",width:\"w width W Width\",height:\"h height W Width\",bottom:\"b bottom Bottom\",right:\"r right Right\"}),e={x:t.left||0,y:t.top||0},null==t.width?t.right?e.width=t.right-e.x:e.width=0:e.width=t.width,null==t.height?t.bottom?e.height=t.bottom-e.y:e.height=0:e.height=t.height);return e}},{\"pick-by-alias\":253}],250:[function(t,e,r){e.exports=function(t){var e=[];return t.replace(i,(function(t,r,i){var o=r.toLowerCase();for(i=function(t){var e=t.match(a);return e?e.map(Number):[]}(i),\"m\"==o&&i.length>2&&(e.push([r].concat(i.splice(0,2))),o=\"l\",r=\"m\"==r?\"l\":\"L\");;){if(i.length==n[o])return i.unshift(r),e.push(i);if(i.length<n[o])throw new Error(\"malformed path data\");e.push([r].concat(i.splice(0,n[o])))}})),e};var n={a:7,c:6,h:1,l:2,m:2,q:4,s:4,t:2,v:1,z:0},i=/([astvzqmhlc])([^astvzqmhlc]*)/gi;var a=/-?[0-9]*\\.?[0-9]+(?:e[-+]?\\d+)?/gi},{}],251:[function(t,e,r){e.exports=function(t,e){e||(e=[0,\"\"]),t=String(t);var r=parseFloat(t,10);return e[0]=r,e[1]=t.match(/[\\d.\\-\\+]*\\s*(.*)/)[1]||\"\",e}},{}],252:[function(t,e,r){(function(t){(function(){(function(){var r,n,
|
||
|
"/*\n",
|
||
|
" * @copyright 2016 Sean Connelly (@voidqk), http://syntheti.cc\n",
|
||
|
" * @license MIT\n",
|
||
|
" * @preserve Project Home: https://github.com/voidqk/polybooljs\n",
|
||
|
" */\n",
|
||
|
"var n,i=t(\"./lib/build-log\"),a=t(\"./lib/epsilon\"),o=t(\"./lib/intersecter\"),s=t(\"./lib/segment-chainer\"),l=t(\"./lib/segment-selector\"),c=t(\"./lib/geojson\"),u=!1,f=a();function h(t,e,r){var i=n.segments(t),a=n.segments(e),o=r(n.combine(i,a));return n.polygon(o)}n={buildLog:function(t){return!0===t?u=i():!1===t&&(u=!1),!1!==u&&u.list},epsilon:function(t){return f.epsilon(t)},segments:function(t){var e=o(!0,f,u);return t.regions.forEach(e.addRegion),{segments:e.calculate(t.inverted),inverted:t.inverted}},combine:function(t,e){return{combined:o(!1,f,u).calculate(t.segments,t.inverted,e.segments,e.inverted),inverted1:t.inverted,inverted2:e.inverted}},selectUnion:function(t){return{segments:l.union(t.combined,u),inverted:t.inverted1||t.inverted2}},selectIntersect:function(t){return{segments:l.intersect(t.combined,u),inverted:t.inverted1&&t.inverted2}},selectDifference:function(t){return{segments:l.difference(t.combined,u),inverted:t.inverted1&&!t.inverted2}},selectDifferenceRev:function(t){return{segments:l.differenceRev(t.combined,u),inverted:!t.inverted1&&t.inverted2}},selectXor:function(t){return{segments:l.xor(t.combined,u),inverted:t.inverted1!==t.inverted2}},polygon:function(t){return{regions:s(t.segments,f,u),inverted:t.inverted}},polygonFromGeoJSON:function(t){return c.toPolygon(n,t)},polygonToGeoJSON:function(t){return c.fromPolygon(n,f,t)},union:function(t,e){return h(t,e,n.selectUnion)},intersect:function(t,e){return h(t,e,n.selectIntersect)},difference:function(t,e){return h(t,e,n.selectDifference)},differenceRev:function(t,e){return h(t,e,n.selectDifferenceRev)},xor:function(t,e){return h(t,e,n.selectXor)}},\"object\"==typeof window&&(window.PolyBool=n),e.exports=n},{\"./lib/build-log\":255,\"./lib/epsilon\":256,\"./lib/geojson\":257,\"./lib/intersecter\":258,\"./lib/segment-chainer\":260,\"./lib/segment-selector\":261}],255:[function(t,e,r){e.exports=function(){var t,e=0,r=!1;function n(e,r){return t.list.push({type:e,data:r?JSON.parse(JSON.stringify(r)):void 0}),t}return t={list:[],segmentId:function(){return e++},checkIntersection:function(t,e){return n(\"check\",{seg1:t,seg2:e})},segmentChop:function(t,e){return n(\"div_seg\",{seg:t,pt:e}),n(\"chop\",{seg:t,pt:e})},statusRemove:function(t){return n(\"pop_seg\",{seg:t})},segmentUpdate:function(t){return n(\"seg_update\",{seg:t})},segmentNew:function(t,e){return n(\"new_seg\",{seg:t,primary:e})},segmentRemove:function(t){return n(\"rem_seg\",{seg:t})},tempStatus:function(t,e,r){return n(\"temp_status\",{seg:t,above:e,below:r})},rewind:function(t){return n(\"rewind\",{seg:t})},status:function(t,e,r){return n(\"status\",{seg:t,above:e,below:r})},vert:function(e){return e===r?t:(r=e,n(\"vert\",{x:e}))},log:function(t){return\"string\"!=typeof t&&(t=JSON.stringify(t,!1,\" \")),n(\"log\",{txt:t})},reset:function(){return n(\"reset\")},selected:function(t){return n(\"selected\",{segs:t})},chainStart:function(t){return n(\"chain_start\",{seg:t})},chainRemoveHead:function(t,e){return n(\"chain_rem_head\",{index:t,pt:e})},chainRemoveTail:function(t,e){return n(\"chain_rem_tail\",{index:t,pt:e})},chainNew:function(t,e){return n(\"chain_new\",{pt1:t,pt2:e})},chainMatch:function(t){return n(\"chain_match\",{index:t})},chainClose:function(t){return n(\"chain_close\",{index:t})},chainAddHead:function(t,e){return n(\"chain_add_head\",{index:t,pt:e})},chainAddTail:function(t,e){return n(\"chain_add_tail\",{index:t,pt:e})},chainConnect:function(t,e){return n(\"chain_con\",{index1:t,index2:e})},chainReverse:function(t){return n(\"chain_rev\",{index:t})},chainJoin:function(t,e){return n(\"chain_join\",{index1:t,index2:e})},done:function(){return n(\"done\")}}}},{}],256:[function(t,e,r){e.exports=function(t){\"number\"!=typeof t&&(t=1e-10);var e={epsilon:function(e){return\"number\"==typeof e&&(t=e),t},pointAboveOrOnLine:function(e,r,n){var i=r[0],a=r[1],o=n[0],s=n[1],l=e[0];return(o-i)*(e[1]-a)-(s-a)*(l-i)>=-t},pointBetween:function(e,r,n){var i=e[1]-r[1],a=n[0]-r[0],o=e[0]-r[0],s=n[1]-r[1],l=o*a+i*s;return!(l<t)&&!(l-(a*a+s*s)>-t)},pointsSameX:function(e,r){r
|
||
|
"/*!\n",
|
||
|
" * The buffer module from node.js, for the browser.\n",
|
||
|
" *\n",
|
||
|
" * @author Feross Aboukhadijeh <https://feross.org>\n",
|
||
|
" * @license MIT\n",
|
||
|
" */\n",
|
||
|
"\"use strict\";var e=t(\"base64-js\"),n=t(\"ieee754\");r.Buffer=a,r.SlowBuffer=function(t){+t!=t&&(t=0);return a.alloc(+t)},r.INSPECT_MAX_BYTES=50;function i(t){if(t>2147483647)throw new RangeError('The value \"'+t+'\" is invalid for option \"size\"');var e=new Uint8Array(t);return e.__proto__=a.prototype,e}function a(t,e,r){if(\"number\"==typeof t){if(\"string\"==typeof e)throw new TypeError('The \"string\" argument must be of type string. Received type number');return l(t)}return o(t,e,r)}function o(t,e,r){if(\"string\"==typeof t)return function(t,e){\"string\"==typeof e&&\"\"!==e||(e=\"utf8\");if(!a.isEncoding(e))throw new TypeError(\"Unknown encoding: \"+e);var r=0|f(t,e),n=i(r),o=n.write(t,e);o!==r&&(n=n.slice(0,o));return n}(t,e);if(ArrayBuffer.isView(t))return c(t);if(null==t)throw TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof t);if(B(t,ArrayBuffer)||t&&B(t.buffer,ArrayBuffer))return function(t,e,r){if(e<0||t.byteLength<e)throw new RangeError('\"offset\" is outside of buffer bounds');if(t.byteLength<e+(r||0))throw new RangeError('\"length\" is outside of buffer bounds');var n;n=void 0===e&&void 0===r?new Uint8Array(t):void 0===r?new Uint8Array(t,e):new Uint8Array(t,e,r);return n.__proto__=a.prototype,n}(t,e,r);if(\"number\"==typeof t)throw new TypeError('The \"value\" argument must not be of type number. Received type number');var n=t.valueOf&&t.valueOf();if(null!=n&&n!==t)return a.from(n,e,r);var o=function(t){if(a.isBuffer(t)){var e=0|u(t.length),r=i(e);return 0===r.length||t.copy(r,0,0,e),r}if(void 0!==t.length)return\"number\"!=typeof t.length||N(t.length)?i(0):c(t);if(\"Buffer\"===t.type&&Array.isArray(t.data))return c(t.data)}(t);if(o)return o;if(\"undefined\"!=typeof Symbol&&null!=Symbol.toPrimitive&&\"function\"==typeof t[Symbol.toPrimitive])return a.from(t[Symbol.toPrimitive](\"string\"),e,r);throw new TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof t)}function s(t){if(\"number\"!=typeof t)throw new TypeError('\"size\" argument must be of type number');if(t<0)throw new RangeError('The value \"'+t+'\" is invalid for option \"size\"')}function l(t){return s(t),i(t<0?0:0|u(t))}function c(t){for(var e=t.length<0?0:0|u(t.length),r=i(e),n=0;n<e;n+=1)r[n]=255&t[n];return r}function u(t){if(t>=2147483647)throw new RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+2147483647..toString(16)+\" bytes\");return 0|t}function f(t,e){if(a.isBuffer(t))return t.length;if(ArrayBuffer.isView(t)||B(t,ArrayBuffer))return t.byteLength;if(\"string\"!=typeof t)throw new TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof t);var r=t.length,n=arguments.length>2&&!0===arguments[2];if(!n&&0===r)return 0;for(var i=!1;;)switch(e){case\"ascii\":case\"latin1\":case\"binary\":return r;case\"utf8\":case\"utf-8\":return D(t).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return 2*r;case\"hex\":return r>>>1;case\"base64\":return R(t).length;default:if(i)return n?-1:D(t).length;e=(\"\"+e).toLowerCase(),i=!0}}function h(t,e,r){var n=!1;if((void 0===e||e<0)&&(e=0),e>this.length)return\"\";if((void 0===r||r>this.length)&&(r=this.length),r<=0)return\"\";if((r>>>=0)<=(e>>>=0))return\"\";for(t||(t=\"utf8\");;)switch(t){case\"hex\":return M(this,e,r);case\"utf8\":case\"utf-8\":return T(this,e,r);case\"ascii\":return k(this,e,r);case\"latin1\":case\"binary\":return A(this,e,r);case\"base64\":return w(this,e,r);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return S(this,e,r);default:if(n)throw new TypeError(\"Unknown encoding: \"+t);t=(t+\"\").toLowerCase(),n=!0}}function p(t,e,r){var n=t[e];t[e]=t[r],t[r]=n}function d(t,e,r,n,i){if(0===t.length)return-1;if(\"string\"==typeof r?(n=r,r=0):r>2147483647?r=2147483647:r<-2147483648&&(r=-2147483648),N(r=+r)&&(r=i?0:t.length-1),r<0&&(r=t.length+r),r>=t.length){if(i)return-1;r=t.length-1}else if(r<0){if(!i)return-1;r=0}i
|
||
|
"/*!\n",
|
||
|
" * Determine if an object is a Buffer\n",
|
||
|
" *\n",
|
||
|
" * @author Feross Aboukhadijeh <https://feross.org>\n",
|
||
|
" * @license MIT\n",
|
||
|
" */\n",
|
||
|
"e.exports=function(t){return null!=t&&(n(t)||function(t){return\"function\"==typeof t.readFloatLE&&\"function\"==typeof t.slice&&n(t.slice(0,0))}(t)||!!t._isBuffer)}},{}],238:[function(t,e,r){\"use strict\";e.exports=a,e.exports.isMobile=a,e.exports.default=a;var n=/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series[46]0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i,i=/(android|bb\\d+|meego).+mobile|avantgo|bada\\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\\/|plucker|pocket|psp|series[46]0|symbian|treo|up\\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino|android|ipad|playbook|silk/i;function a(t){t||(t={});var e=t.ua;if(e||\"undefined\"==typeof navigator||(e=navigator.userAgent),e&&e.headers&&\"string\"==typeof e.headers[\"user-agent\"]&&(e=e.headers[\"user-agent\"]),\"string\"!=typeof e)return!1;var r=t.tablet?i.test(e):n.test(e);return!r&&t.tablet&&t.featureDetect&&navigator&&navigator.maxTouchPoints>1&&-1!==e.indexOf(\"Macintosh\")&&-1!==e.indexOf(\"Safari\")&&(r=!0),r}},{}],239:[function(t,e,r){\"use strict\";e.exports=function(t){for(var e,r=t.length,n=0;n<r;n++)if(((e=t.charCodeAt(n))<9||e>13)&&32!==e&&133!==e&&160!==e&&5760!==e&&6158!==e&&(e<8192||e>8205)&&8232!==e&&8233!==e&&8239!==e&&8287!==e&&8288!==e&&12288!==e&&65279!==e)return!1;return!0}},{}],240:[function(t,e,r){e.exports=function(t,e,r){return t*(1-r)+e*r}},{}],241:[function(t,e,r){var n=t(\"./normalize\"),i=t(\"gl-mat4/create\"),a=t(\"gl-mat4/clone\"),o=t(\"gl-mat4/determinant\"),s=t(\"gl-mat4/invert\"),l=t(\"gl-mat4/transpose\"),c={length:t(\"gl-vec3/length\"),normalize:t(\"gl-vec3/normalize\"),dot:t(\"gl-vec3/dot\"),cross:t(\"gl-vec3/cross\")},u=i(),f=i(),h=[0,0,0,0],p=[[0,0,0],[0,0,0],[0,0,0]],d=[0,0,0];function g(t,e,r,n,i){t[0]=e[0]*n+r[0]*i,t[1]=e[1]*n+r[1]*i,t[2]=e[2]*n+r[2]*i}e.exports=function(t,e,r,i,m,v){if(e||(e=[0,0,0]),r||(r=[0,0,0]),i||(i=[0,0,0]),m||(m=[0,0,0,1]),v||(v=[0,0,0,1]),!n(u,t))return!1;if(a(f,u),f[3]=0,f[7]=0,f[11]=0,f[15]=1,Math.abs(o(f)<1e-8))return!1;var y,x,b,_,w,T,k,A=u[3],M=u[7],S=u[11],E=u[12],L=u[13],C=u[14],P=u[15];if(0!==A||0!==M||0!==S){if(h[0]=A,h[1]=M,h[2]=S,h[3]=P,!s(f,f))return!1;l(f,f),y=m,b=f,_=(x=h)[0],w=x[1],T=x[2],k=x[3],y[0]=b[0]*_+b[4]*w+b[8]*T+b[12]*k,y[1]=b[1]*_+b[5]*w+b[9]*T+b[13]*k,y[2]=b[2]*_+b[6]*w+b[10]*T+b[14]*k,y[3]=b[3]*_+b[7]*w+b[11]*T+b[15]*k}else m[0]=m[1]=m[2]=0,m[3]=1;if(e[0]=E,e[1]=L,e[2]=C,function(t,e){t[0][0]=e[0],t[0][1]=e[1],t[0][2]=e[2],t[1][0]=e[4],t[1][1]=e[5],t[1][2]=e[6],t[2][0]=e[8],t[2][1]=e[9],t[2][2]=e[10]}(p,u),r[0]=c.length(p[0]),c.normalize(p[0],p[0]),i[0]=c.dot(p[0],p[1]),g(p[1],p[1],p[0],1,-i[0]),r[1]=c.length(p[1]),c.normalize(p[1],p[1]),i[0]/=r[1],i[1]=c.dot(p[0],p[2]),g(p[2],p[2],p[0],1,-i[1]),i[2]=c.dot(p[1],p[2]),g(p[2],p[2],p[1],1,-i[2]),r[2]=c.length(p[2]),c.normalize(p[2],p[2]),i[1]/=r[2],i[2]/=r[2],c.cross(d,p[1],p[2]),c.dot(p[0],d)<0)for(var I=0;I<3;I++)r[I]*=-1,p[I][0]*=-1,p[I][1]*=-1,p[I][2]*=-1;return v[0]=.5*Math.sqrt(Math.max(1+p[0][0]-p[1][1]-p[2][2],0)),v[1]=.5*Math.sqrt(Math.max(1-p[0][0]+p[1][1]-p[2][2],0)),v[2]=.5*Math.sqrt(Math.max(1-p[0][0]-p[1][1]+p[2][2],0)),v[3]=.5*Math.sqrt(Math.max(1+p[0][0]+p[1][1]+p[2][2],0)),p[2][1]>p[1][2]&&(v[0]=-v[0]),p[0][2]>p[2][0]&&(v[1]=-v[1]),p[1][0]>p[0][1]&&(v[2]=-v[2]),!0}},{\"./normalize\":242,\"gl-mat4/clone\":92,\"gl-mat4/create\":93,\"gl-mat4/determinant\":94,\"gl-mat4/invert\":98,\"gl-mat4/transpose\":109,\"gl-vec3/cross\":157,\"gl-vec3/dot\":162,\"gl-vec3/length\":172,\"gl-vec3/normalize\":179}],242:[function(t,e,r){e.exports=function(t,e){var r=e[15];if(0===r)return!1;for(var n=1/r,i=0;i<16;i++)t[i]=e[i]*n;return!0}},{}],243:[function(t,e,r){var n=t(\"gl-vec3/lerp\"),i=t(\"mat4-recompose\"),a=t(\"mat4-decompose\"),o=t(\"gl-mat4/determinant\"),s=t(\"
|
||
|
"/*!\n",
|
||
|
" * pad-left <https://github.com/jonschlinkert/pad-left>\n",
|
||
|
" *\n",
|
||
|
" * Copyright (c) 2014-2015, Jon Schlinkert.\n",
|
||
|
" * Licensed under the MIT license.\n",
|
||
|
" */\n",
|
||
|
"\"use strict\";var n=t(\"repeat-string\");e.exports=function(t,e,r){return n(r=void 0!==r?r+\"\":\" \",e)+t}},{\"repeat-string\":277}],265:[function(t,e,r){e.exports=function(t,e){e||(e=[0,\"\"]),t=String(t);var r=parseFloat(t,10);return e[0]=r,e[1]=t.match(/[\\d.\\-\\+]*\\s*(.*)/)[1]||\"\",e}},{}],266:[function(t,e,r){\"use strict\";e.exports=function(t,e){for(var r=0|e.length,i=t.length,a=[new Array(r),new Array(r)],o=0;o<r;++o)a[0][o]=[],a[1][o]=[];for(o=0;o<i;++o){var s=t[o];a[0][s[0]].push(s),a[1][s[1]].push(s)}var l=[];for(o=0;o<r;++o)a[0][o].length+a[1][o].length===0&&l.push([o]);function c(t,e){var r=a[e][t[e]];r.splice(r.indexOf(t),1)}function u(t,r,i){for(var o,s,l,u=0;u<2;++u)if(a[u][r].length>0){o=a[u][r][0],l=u;break}s=o[1^l];for(var f=0;f<2;++f)for(var h=a[f][r],p=0;p<h.length;++p){var d=h[p],g=d[1^f];n(e[t],e[r],e[s],e[g])>0&&(o=d,s=g,l=f)}return i||o&&c(o,l),s}function f(t,r){var i=a[r][t][0],o=[t];c(i,r);for(var s=i[1^r];;){for(;s!==t;)o.push(s),s=u(o[o.length-2],s,!1);if(a[0][t].length+a[1][t].length===0)break;var l=o[o.length-1],f=t,h=o[1],p=u(l,f,!0);if(n(e[l],e[f],e[h],e[p])<0)break;o.push(t),s=u(l,f)}return o}function h(t,e){return e[1]===e[e.length-1]}for(o=0;o<r;++o)for(var p=0;p<2;++p){for(var d=[];a[p][o].length>0;){a[0][o].length;var g=f(o,p);h(0,g)?d.push.apply(d,g):(d.length>0&&l.push(d),d=g)}d.length>0&&l.push(d)}return l};var n=t(\"compare-angle\")},{\"compare-angle\":54}],267:[function(t,e,r){\"use strict\";e.exports=function(t,e){for(var r=n(t,e.length),i=new Array(e.length),a=new Array(e.length),o=[],s=0;s<e.length;++s){var l=r[s].length;a[s]=l,i[s]=!0,l<=1&&o.push(s)}for(;o.length>0;){var c=o.pop();i[c]=!1;var u=r[c];for(s=0;s<u.length;++s){var f=u[s];0==--a[f]&&o.push(f)}}var h=new Array(e.length),p=[];for(s=0;s<e.length;++s)if(i[s]){c=p.length;h[s]=c,p.push(e[s])}else h[s]=-1;var d=[];for(s=0;s<t.length;++s){var g=t[s];i[g[0]]&&i[g[1]]&&d.push([h[g[0]],h[g[1]]])}return[d,p]};var n=t(\"edges-to-adjacency-list\")},{\"edges-to-adjacency-list\":66}],268:[function(t,e,r){\"use strict\";e.exports=function(t,e){var r=c(t,e);t=r[0];for(var f=(e=r[1]).length,h=(t.length,n(t,e.length)),p=0;p<f;++p)if(h[p].length%2==1)throw new Error(\"planar-graph-to-polyline: graph must be manifold\");var d=i(t,e);var g=(d=d.filter((function(t){for(var r=t.length,n=[0],i=0;i<r;++i){var a=e[t[i]],l=e[t[(i+1)%r]],c=o(-a[0],a[1]),u=o(-a[0],l[1]),f=o(l[0],a[1]),h=o(l[0],l[1]);n=s(n,s(s(c,u),s(f,h)))}return n[n.length-1]>0}))).length,m=new Array(g),v=new Array(g);for(p=0;p<g;++p){m[p]=p;var y=new Array(g),x=d[p].map((function(t){return e[t]})),b=a([x]),_=0;t:for(var w=0;w<g;++w)if(y[w]=0,p!==w){for(var T=(H=d[w]).length,k=0;k<T;++k){var A=b(e[H[k]]);if(0!==A){A<0&&(y[w]=1,_+=1);continue t}}y[w]=1,_+=1}v[p]=[_,p,y]}v.sort((function(t,e){return e[0]-t[0]}));for(p=0;p<g;++p){var M=(y=v[p])[1],S=y[2];for(w=0;w<g;++w)S[w]&&(m[w]=M)}var E=function(t){for(var e=new Array(t),r=0;r<t;++r)e[r]=[];return e}(g);for(p=0;p<g;++p)E[p].push(m[p]),E[m[p]].push(p);var L={},C=u(f,!1);for(p=0;p<g;++p)for(T=(H=d[p]).length,w=0;w<T;++w){var P=H[w],I=H[(w+1)%T],O=Math.min(P,I)+\":\"+Math.max(P,I);if(O in L){var z=L[O];E[z].push(p),E[p].push(z),C[P]=C[I]=!0}else L[O]=p}function D(t){for(var e=t.length,r=0;r<e;++r)if(!C[t[r]])return!1;return!0}var R=[],F=u(g,-1);for(p=0;p<g;++p)m[p]!==p||D(d[p])?F[p]=-1:(R.push(p),F[p]=0);r=[];for(;R.length>0;){var B=R.pop(),N=E[B];l(N,(function(t,e){return t-e}));var j,U=N.length,V=F[B];if(0===V){var H=d[B];j=[H]}for(p=0;p<U;++p){var q=N[p];if(!(F[q]>=0))if(F[q]=1^V,R.push(q),0===V)D(H=d[q])||(H.reverse(),j.push(H))}0===V&&r.push(j)}return r};var n=t(\"edges-to-adjacency-list\"),i=t(\"planar-dual\"),a=t(\"point-in-big-polygon\"),o=t(\"two-product\"),s=t(\"robust-sum\"),l=t(\"uniq\"),c=t(\"./lib/trim-leaves\");function u(t,e){for(var r=new Array(t),n=0;n<t;++n)r[n]=e;return r}},{\"./lib/trim-leaves\":267,\"edges-to-adjacency-list\":66,\"planar-dual\":266,\"point-in-big-polygon\":269,\"robust-sum\":289,\"two-product\":306,uniq:310}],269:[function(t,e,r){e.exports=function(t){for(var e=t.length,r=[]
|
||
|
"/*!\n",
|
||
|
" * repeat-string <https://github.com/jonschlinkert/repeat-string>\n",
|
||
|
" *\n",
|
||
|
" * Copyright (c) 2014-2015, Jon Schlinkert.\n",
|
||
|
" * Licensed under the MIT License.\n",
|
||
|
" */\n",
|
||
|
"\"use strict\";var n,i=\"\";e.exports=function(t,e){if(\"string\"!=typeof t)throw new TypeError(\"expected a string\");if(1===e)return t;if(2===e)return t+t;var r=t.length*e;if(n!==t||void 0===n)n=t,i=\"\";else if(i.length>=r)return i.substr(0,r);for(;r>i.length&&e>1;)1&e&&(i+=t),e>>=1,t+=t;return i=(i+=t).substr(0,r)}},{}],278:[function(t,e,r){(function(t){(function(){e.exports=t.performance&&t.performance.now?function(){return performance.now()}:Date.now||function(){return+new Date}}).call(this)}).call(this,void 0!==n?n:\"undefined\"!=typeof self?self:\"undefined\"!=typeof window?window:{})},{}],279:[function(t,e,r){\"use strict\";e.exports=function(t){for(var e=t.length,r=t[t.length-1],n=e,i=e-2;i>=0;--i){var a=r,o=t[i];(l=o-((r=a+o)-a))&&(t[--n]=r,r=l)}var s=0;for(i=n;i<e;++i){var l;a=t[i];(l=(o=r)-((r=a+o)-a))&&(t[s++]=l)}return t[s++]=r,t.length=s,t}},{}],280:[function(t,e,r){\"use strict\";var n=t(\"two-product\"),i=t(\"robust-sum\"),a=t(\"robust-scale\"),o=t(\"robust-compress\");function s(t,e,r,n){return function(e){return n(t(r(e[0][0],e[1][1]),r(-e[0][1],e[1][0])))}}function l(t,e,r,n){return function(i){return n(t(e(t(r(i[1][1],i[2][2]),r(-i[1][2],i[2][1])),i[0][0]),t(e(t(r(i[1][0],i[2][2]),r(-i[1][2],i[2][0])),-i[0][1]),e(t(r(i[1][0],i[2][1]),r(-i[1][1],i[2][0])),i[0][2]))))}}function c(t){return(2===t?s:3===t?l:void 0)(i,a,n,o)}var u=[function(){return[0]},function(t){return[t[0][0]]}];function f(t,e,r,n,i,a){return function(o){switch(o.length){case 0:return t(o);case 1:return e(o);case 2:return r(o);case 3:return n(o)}var s=i[o.length];return s||(s=i[o.length]=a(o.length)),s(o)}}!function(){for(;u.length<4;)u.push(c(u.length));e.exports=f.apply(void 0,u.concat([u,c]));for(var t=0;t<u.length;++t)e.exports[t]=u[t]}()},{\"robust-compress\":279,\"robust-scale\":286,\"robust-sum\":289,\"two-product\":306}],281:[function(t,e,r){\"use strict\";var n=t(\"two-product\"),i=t(\"robust-sum\");e.exports=function(t,e){for(var r=n(t[0],e[0]),a=1;a<t.length;++a)r=i(r,n(t[a],e[a]));return r}},{\"robust-sum\":289,\"two-product\":306}],282:[function(t,e,r){\"use strict\";var n=t(\"two-product\"),i=t(\"robust-sum\"),a=t(\"robust-subtract\"),o=t(\"robust-scale\");function s(t){return(3===t?l:4===t?c:5===t?u:f)(i,a,n,o)}function l(t,e,r,n){return function(i,a,o){var s=r(i[0],i[0]),l=n(s,a[0]),c=n(s,o[0]),u=r(a[0],a[0]),f=n(u,i[0]),h=n(u,o[0]),p=r(o[0],o[0]),d=n(p,i[0]),g=n(p,a[0]),m=t(e(g,h),e(f,l)),v=e(d,c),y=e(m,v);return y[y.length-1]}}function c(t,e,r,n){return function(i,a,o,s){var l=t(r(i[0],i[0]),r(i[1],i[1])),c=n(l,a[0]),u=n(l,o[0]),f=n(l,s[0]),h=t(r(a[0],a[0]),r(a[1],a[1])),p=n(h,i[0]),d=n(h,o[0]),g=n(h,s[0]),m=t(r(o[0],o[0]),r(o[1],o[1])),v=n(m,i[0]),y=n(m,a[0]),x=n(m,s[0]),b=t(r(s[0],s[0]),r(s[1],s[1])),_=n(b,i[0]),w=n(b,a[0]),T=n(b,o[0]),k=t(t(n(e(T,x),a[1]),t(n(e(w,g),-o[1]),n(e(y,d),s[1]))),t(n(e(w,g),i[1]),t(n(e(_,f),-a[1]),n(e(p,c),s[1])))),A=t(t(n(e(T,x),i[1]),t(n(e(_,f),-o[1]),n(e(v,u),s[1]))),t(n(e(y,d),i[1]),t(n(e(v,u),-a[1]),n(e(p,c),o[1])))),M=e(k,A);return M[M.length-1]}}function u(t,e,r,n){return function(i,a,o,s,l){var c=t(r(i[0],i[0]),t(r(i[1],i[1]),r(i[2],i[2]))),u=n(c,a[0]),f=n(c,o[0]),h=n(c,s[0]),p=n(c,l[0]),d=t(r(a[0],a[0]),t(r(a[1],a[1]),r(a[2],a[2]))),g=n(d,i[0]),m=n(d,o[0]),v=n(d,s[0]),y=n(d,l[0]),x=t(r(o[0],o[0]),t(r(o[1],o[1]),r(o[2],o[2]))),b=n(x,i[0]),_=n(x,a[0]),w=n(x,s[0]),T=n(x,l[0]),k=t(r(s[0],s[0]),t(r(s[1],s[1]),r(s[2],s[2]))),A=n(k,i[0]),M=n(k,a[0]),S=n(k,o[0]),E=n(k,l[0]),L=t(r(l[0],l[0]),t(r(l[1],l[1]),r(l[2],l[2]))),C=n(L,i[0]),P=n(L,a[0]),I=n(L,o[0]),O=n(L,s[0]),z=t(t(t(n(t(n(e(O,E),o[1]),t(n(e(I,T),-s[1]),n(e(S,w),l[1]))),a[2]),t(n(t(n(e(O,E),a[1]),t(n(e(P,y),-s[1]),n(e(M,v),l[1]))),-o[2]),n(t(n(e(I,T),a[1]),t(n(e(P,y),-o[1]),n(e(_,m),l[1]))),s[2]))),t(n(t(n(e(S,w),a[1]),t(n(e(M,v),-o[1]),n(e(_,m),s[1]))),-l[2]),t(n(t(n(e(O,E),a[1]),t(n(e(P,y),-s[1]),n(e(M,v),l[1]))),i[2]),n(t(n(e(O,E),i[1]),t(n(e(C,p),-s[1]),n(e(A,h),l[1]))),-a[2])))),t(t(n(t(n(e(P,y),i[1]),t(n(e(C,p),-a[1]),n(e(g,u),l[1]))),s[2]),t(n(t(n(e(M,v),i[1]),t(n(e(A,h),-a[1]),n(e(g,u),s[1]))),-l[2]),n(t(n(e(S,
|
||
|
" });\n",
|
||
|
" require(['plotly'], function(Plotly) {\n",
|
||
|
" window._Plotly = Plotly;\n",
|
||
|
" });\n",
|
||
|
" }\n",
|
||
|
" </script>\n",
|
||
|
" "
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
},
|
||
|
{
|
||
|
"data": {
|
||
|
"application/vnd.plotly.v1+json": {
|
||
|
"config": {
|
||
|
"plotlyServerURL": "https://plot.ly"
|
||
|
},
|
||
|
"data": [
|
||
|
{
|
||
|
"lat": [
|
||
|
48.78574,
|
||
|
48.78507,
|
||
|
48.78485,
|
||
|
48.78489,
|
||
|
48.78493,
|
||
|
48.7853,
|
||
|
48.78533,
|
||
|
48.78538,
|
||
|
48.78547,
|
||
|
48.78531,
|
||
|
48.78484,
|
||
|
48.78476,
|
||
|
48.78471,
|
||
|
48.78451,
|
||
|
48.78426,
|
||
|
48.78418,
|
||
|
48.78407,
|
||
|
48.78396,
|
||
|
48.7839,
|
||
|
48.78386,
|
||
|
48.7838,
|
||
|
48.78368,
|
||
|
48.78355,
|
||
|
48.78344,
|
||
|
48.78341,
|
||
|
48.78336,
|
||
|
48.78282,
|
||
|
48.78275,
|
||
|
48.7827,
|
||
|
48.7825,
|
||
|
48.78237,
|
||
|
48.78198,
|
||
|
48.78195,
|
||
|
48.78191,
|
||
|
48.78184,
|
||
|
48.78182,
|
||
|
48.78172,
|
||
|
48.78164,
|
||
|
48.78157,
|
||
|
48.78165,
|
||
|
48.78196,
|
||
|
48.78197,
|
||
|
48.78198,
|
||
|
48.78265,
|
||
|
48.78271,
|
||
|
48.78281,
|
||
|
48.78359,
|
||
|
48.78368,
|
||
|
48.78373,
|
||
|
48.78379,
|
||
|
48.784,
|
||
|
48.78449,
|
||
|
48.78455,
|
||
|
48.78468,
|
||
|
48.78477,
|
||
|
48.78483,
|
||
|
48.78487,
|
||
|
48.7849,
|
||
|
48.785,
|
||
|
48.78506,
|
||
|
48.7851,
|
||
|
48.78517,
|
||
|
48.78532,
|
||
|
48.78539,
|
||
|
48.78542,
|
||
|
48.78557,
|
||
|
48.78563,
|
||
|
48.78571,
|
||
|
48.78581,
|
||
|
48.786,
|
||
|
48.78587,
|
||
|
48.78583,
|
||
|
48.78572,
|
||
|
48.78557,
|
||
|
48.78552,
|
||
|
48.78541,
|
||
|
48.78537,
|
||
|
48.78534,
|
||
|
48.78523,
|
||
|
48.78511,
|
||
|
48.78507,
|
||
|
48.78499,
|
||
|
48.78491,
|
||
|
48.78481,
|
||
|
48.78475,
|
||
|
48.78466,
|
||
|
48.78449,
|
||
|
48.78428,
|
||
|
48.78423,
|
||
|
48.78418,
|
||
|
48.78415,
|
||
|
48.78397,
|
||
|
48.78396,
|
||
|
48.78378,
|
||
|
48.78372,
|
||
|
48.78364,
|
||
|
48.78355,
|
||
|
48.78345,
|
||
|
48.78336,
|
||
|
48.78311,
|
||
|
48.78301,
|
||
|
48.78291,
|
||
|
48.78269,
|
||
|
48.78251,
|
||
|
48.78247,
|
||
|
48.78241,
|
||
|
48.78232,
|
||
|
48.78217,
|
||
|
48.7821,
|
||
|
48.78178,
|
||
|
48.78163,
|
||
|
48.78146,
|
||
|
48.7814,
|
||
|
48.78122,
|
||
|
48.7811,
|
||
|
48.78109,
|
||
|
48.78094,
|
||
|
48.78092,
|
||
|
48.78058,
|
||
|
48.78009,
|
||
|
48.77999,
|
||
|
48.7797,
|
||
|
48.77965,
|
||
|
48.77952,
|
||
|
48.77948,
|
||
|
48.77941,
|
||
|
48.7793,
|
||
|
48.77929,
|
||
|
48.77923,
|
||
|
48.77904,
|
||
|
48.7786,
|
||
|
48.77855,
|
||
|
48.77846,
|
||
|
48.77797,
|
||
|
48.77778,
|
||
|
48.77769,
|
||
|
48.77762,
|
||
|
48.77752,
|
||
|
48.77732,
|
||
|
48.77697,
|
||
|
48.77688,
|
||
|
48.77677,
|
||
|
48.77659,
|
||
|
48.77648
|
||
|
],
|
||
|
"lon": [
|
||
|
11.39516,
|
||
|
11.39553,
|
||
|
11.39565,
|
||
|
11.39583,
|
||
|
11.39598,
|
||
|
11.39728,
|
||
|
11.39738,
|
||
|
11.39755,
|
||
|
11.39783,
|
||
|
11.39792,
|
||
|
11.39819,
|
||
|
11.39825,
|
||
|
11.39827,
|
||
|
11.39839,
|
||
|
11.39852,
|
||
|
11.39857,
|
||
|
11.39865,
|
||
|
11.39871,
|
||
|
11.39874,
|
||
|
11.39878,
|
||
|
11.39884,
|
||
|
11.39898,
|
||
|
11.39919,
|
||
|
11.39938,
|
||
|
11.39946,
|
||
|
11.39953,
|
||
|
11.40065,
|
||
|
11.4008,
|
||
|
11.40088,
|
||
|
11.40131,
|
||
|
11.4016,
|
||
|
11.40242,
|
||
|
11.40252,
|
||
|
11.40259,
|
||
|
11.40273,
|
||
|
11.40279,
|
||
|
11.403,
|
||
|
11.40315,
|
||
|
11.40333,
|
||
|
11.40342,
|
||
|
11.40379,
|
||
|
11.40381,
|
||
|
11.40381,
|
||
|
11.4046,
|
||
|
11.40467,
|
||
|
11.40478,
|
||
|
11.4057,
|
||
|
11.40581,
|
||
|
11.40586,
|
||
|
11.40593,
|
||
|
11.40618,
|
||
|
11.40677,
|
||
|
11.40684,
|
||
|
11.407,
|
||
|
11.4071,
|
||
|
11.40717,
|
||
|
11.40721,
|
||
|
11.40725,
|
||
|
11.40737,
|
||
|
11.40745,
|
||
|
11.40749,
|
||
|
11.40757,
|
||
|
11.40775,
|
||
|
11.40784,
|
||
|
11.40788,
|
||
|
11.40806,
|
||
|
11.40813,
|
||
|
11.40822,
|
||
|
11.40835,
|
||
|
11.40858,
|
||
|
11.40889,
|
||
|
11.40903,
|
||
|
11.40931,
|
||
|
11.40966,
|
||
|
11.40978,
|
||
|
11.41006,
|
||
|
11.41015,
|
||
|
11.41022,
|
||
|
11.41047,
|
||
|
11.41069,
|
||
|
11.41077,
|
||
|
11.41088,
|
||
|
11.41103,
|
||
|
11.41117,
|
||
|
11.41126,
|
||
|
11.41137,
|
||
|
11.4116,
|
||
|
11.41184,
|
||
|
11.41191,
|
||
|
11.41195,
|
||
|
11.41198,
|
||
|
11.41217,
|
||
|
11.41219,
|
||
|
11.41236,
|
||
|
11.41241,
|
||
|
11.41251,
|
||
|
11.4126,
|
||
|
11.41271,
|
||
|
11.41279,
|
||
|
11.41301,
|
||
|
11.41311,
|
||
|
11.4132,
|
||
|
11.41338,
|
||
|
11.41352,
|
||
|
11.41356,
|
||
|
11.41359,
|
||
|
11.41366,
|
||
|
11.41379,
|
||
|
11.41383,
|
||
|
11.4141,
|
||
|
11.41422,
|
||
|
11.41433,
|
||
|
11.41439,
|
||
|
11.41452,
|
||
|
11.4146,
|
||
|
11.4146,
|
||
|
11.41472,
|
||
|
11.41473,
|
||
|
11.41498,
|
||
|
11.4153,
|
||
|
11.41537,
|
||
|
11.41554,
|
||
|
11.41558,
|
||
|
11.41565,
|
||
|
11.41567,
|
||
|
11.41572,
|
||
|
11.41578,
|
||
|
11.41579,
|
||
|
11.41581,
|
||
|
11.41593,
|
||
|
11.41613,
|
||
|
11.41616,
|
||
|
11.41619,
|
||
|
11.4164,
|
||
|
11.41647,
|
||
|
11.4165,
|
||
|
11.41653,
|
||
|
11.41656,
|
||
|
11.41662,
|
||
|
11.41672,
|
||
|
11.41675,
|
||
|
11.41677,
|
||
|
11.41682,
|
||
|
11.41685
|
||
|
],
|
||
|
"marker": {
|
||
|
"color": "rgb(180,50,50)",
|
||
|
"opacity": 0.25,
|
||
|
"size": 8
|
||
|
},
|
||
|
"mode": "markers+lines+text",
|
||
|
"name": "TomTom Routing",
|
||
|
"text": "TT HCP3 Routing",
|
||
|
"type": "scattermapbox"
|
||
|
},
|
||
|
{
|
||
|
"lat": [
|
||
|
"48.776529"
|
||
|
],
|
||
|
"lon": [
|
||
|
"11.417135"
|
||
|
],
|
||
|
"marker": {
|
||
|
"color": "rgb(180,50,50)",
|
||
|
"opacity": 0.8,
|
||
|
"size": 25
|
||
|
},
|
||
|
"mode": "markers",
|
||
|
"name": "TomTom Routing",
|
||
|
"text": "TT HCP3 Routing",
|
||
|
"type": "scattermapbox"
|
||
|
},
|
||
|
{
|
||
|
"lat": [
|
||
|
"48.785931"
|
||
|
],
|
||
|
"lon": [
|
||
|
"11.395945"
|
||
|
],
|
||
|
"marker": {
|
||
|
"color": "rgb(180,50,50)",
|
||
|
"opacity": 0.8,
|
||
|
"size": 25
|
||
|
},
|
||
|
"mode": "markers",
|
||
|
"name": "TomTom Routing",
|
||
|
"text": "TT HCP3 Routing",
|
||
|
"type": "scattermapbox"
|
||
|
}
|
||
|
],
|
||
|
"layout": {
|
||
|
"mapbox": {
|
||
|
"center": {
|
||
|
"lat": 48.776529,
|
||
|
"lon": 11.417135
|
||
|
},
|
||
|
"style": "stamen-terrain",
|
||
|
"zoom": 10
|
||
|
},
|
||
|
"margin": {
|
||
|
"b": 0,
|
||
|
"l": 0,
|
||
|
"r": 0,
|
||
|
"t": 0
|
||
|
},
|
||
|
"template": {
|
||
|
"data": {
|
||
|
"bar": [
|
||
|
{
|
||
|
"error_x": {
|
||
|
"color": "#2a3f5f"
|
||
|
},
|
||
|
"error_y": {
|
||
|
"color": "#2a3f5f"
|
||
|
},
|
||
|
"marker": {
|
||
|
"line": {
|
||
|
"color": "#E5ECF6",
|
||
|
"width": 0.5
|
||
|
},
|
||
|
"pattern": {
|
||
|
"fillmode": "overlay",
|
||
|
"size": 10,
|
||
|
"solidity": 0.2
|
||
|
}
|
||
|
},
|
||
|
"type": "bar"
|
||
|
}
|
||
|
],
|
||
|
"barpolar": [
|
||
|
{
|
||
|
"marker": {
|
||
|
"line": {
|
||
|
"color": "#E5ECF6",
|
||
|
"width": 0.5
|
||
|
},
|
||
|
"pattern": {
|
||
|
"fillmode": "overlay",
|
||
|
"size": 10,
|
||
|
"solidity": 0.2
|
||
|
}
|
||
|
},
|
||
|
"type": "barpolar"
|
||
|
}
|
||
|
],
|
||
|
"carpet": [
|
||
|
{
|
||
|
"aaxis": {
|
||
|
"endlinecolor": "#2a3f5f",
|
||
|
"gridcolor": "white",
|
||
|
"linecolor": "white",
|
||
|
"minorgridcolor": "white",
|
||
|
"startlinecolor": "#2a3f5f"
|
||
|
},
|
||
|
"baxis": {
|
||
|
"endlinecolor": "#2a3f5f",
|
||
|
"gridcolor": "white",
|
||
|
"linecolor": "white",
|
||
|
"minorgridcolor": "white",
|
||
|
"startlinecolor": "#2a3f5f"
|
||
|
},
|
||
|
"type": "carpet"
|
||
|
}
|
||
|
],
|
||
|
"choropleth": [
|
||
|
{
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
},
|
||
|
"type": "choropleth"
|
||
|
}
|
||
|
],
|
||
|
"contour": [
|
||
|
{
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
},
|
||
|
"colorscale": [
|
||
|
[
|
||
|
0,
|
||
|
"#0d0887"
|
||
|
],
|
||
|
[
|
||
|
0.1111111111111111,
|
||
|
"#46039f"
|
||
|
],
|
||
|
[
|
||
|
0.2222222222222222,
|
||
|
"#7201a8"
|
||
|
],
|
||
|
[
|
||
|
0.3333333333333333,
|
||
|
"#9c179e"
|
||
|
],
|
||
|
[
|
||
|
0.4444444444444444,
|
||
|
"#bd3786"
|
||
|
],
|
||
|
[
|
||
|
0.5555555555555556,
|
||
|
"#d8576b"
|
||
|
],
|
||
|
[
|
||
|
0.6666666666666666,
|
||
|
"#ed7953"
|
||
|
],
|
||
|
[
|
||
|
0.7777777777777778,
|
||
|
"#fb9f3a"
|
||
|
],
|
||
|
[
|
||
|
0.8888888888888888,
|
||
|
"#fdca26"
|
||
|
],
|
||
|
[
|
||
|
1,
|
||
|
"#f0f921"
|
||
|
]
|
||
|
],
|
||
|
"type": "contour"
|
||
|
}
|
||
|
],
|
||
|
"contourcarpet": [
|
||
|
{
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
},
|
||
|
"type": "contourcarpet"
|
||
|
}
|
||
|
],
|
||
|
"heatmap": [
|
||
|
{
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
},
|
||
|
"colorscale": [
|
||
|
[
|
||
|
0,
|
||
|
"#0d0887"
|
||
|
],
|
||
|
[
|
||
|
0.1111111111111111,
|
||
|
"#46039f"
|
||
|
],
|
||
|
[
|
||
|
0.2222222222222222,
|
||
|
"#7201a8"
|
||
|
],
|
||
|
[
|
||
|
0.3333333333333333,
|
||
|
"#9c179e"
|
||
|
],
|
||
|
[
|
||
|
0.4444444444444444,
|
||
|
"#bd3786"
|
||
|
],
|
||
|
[
|
||
|
0.5555555555555556,
|
||
|
"#d8576b"
|
||
|
],
|
||
|
[
|
||
|
0.6666666666666666,
|
||
|
"#ed7953"
|
||
|
],
|
||
|
[
|
||
|
0.7777777777777778,
|
||
|
"#fb9f3a"
|
||
|
],
|
||
|
[
|
||
|
0.8888888888888888,
|
||
|
"#fdca26"
|
||
|
],
|
||
|
[
|
||
|
1,
|
||
|
"#f0f921"
|
||
|
]
|
||
|
],
|
||
|
"type": "heatmap"
|
||
|
}
|
||
|
],
|
||
|
"heatmapgl": [
|
||
|
{
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
},
|
||
|
"colorscale": [
|
||
|
[
|
||
|
0,
|
||
|
"#0d0887"
|
||
|
],
|
||
|
[
|
||
|
0.1111111111111111,
|
||
|
"#46039f"
|
||
|
],
|
||
|
[
|
||
|
0.2222222222222222,
|
||
|
"#7201a8"
|
||
|
],
|
||
|
[
|
||
|
0.3333333333333333,
|
||
|
"#9c179e"
|
||
|
],
|
||
|
[
|
||
|
0.4444444444444444,
|
||
|
"#bd3786"
|
||
|
],
|
||
|
[
|
||
|
0.5555555555555556,
|
||
|
"#d8576b"
|
||
|
],
|
||
|
[
|
||
|
0.6666666666666666,
|
||
|
"#ed7953"
|
||
|
],
|
||
|
[
|
||
|
0.7777777777777778,
|
||
|
"#fb9f3a"
|
||
|
],
|
||
|
[
|
||
|
0.8888888888888888,
|
||
|
"#fdca26"
|
||
|
],
|
||
|
[
|
||
|
1,
|
||
|
"#f0f921"
|
||
|
]
|
||
|
],
|
||
|
"type": "heatmapgl"
|
||
|
}
|
||
|
],
|
||
|
"histogram": [
|
||
|
{
|
||
|
"marker": {
|
||
|
"pattern": {
|
||
|
"fillmode": "overlay",
|
||
|
"size": 10,
|
||
|
"solidity": 0.2
|
||
|
}
|
||
|
},
|
||
|
"type": "histogram"
|
||
|
}
|
||
|
],
|
||
|
"histogram2d": [
|
||
|
{
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
},
|
||
|
"colorscale": [
|
||
|
[
|
||
|
0,
|
||
|
"#0d0887"
|
||
|
],
|
||
|
[
|
||
|
0.1111111111111111,
|
||
|
"#46039f"
|
||
|
],
|
||
|
[
|
||
|
0.2222222222222222,
|
||
|
"#7201a8"
|
||
|
],
|
||
|
[
|
||
|
0.3333333333333333,
|
||
|
"#9c179e"
|
||
|
],
|
||
|
[
|
||
|
0.4444444444444444,
|
||
|
"#bd3786"
|
||
|
],
|
||
|
[
|
||
|
0.5555555555555556,
|
||
|
"#d8576b"
|
||
|
],
|
||
|
[
|
||
|
0.6666666666666666,
|
||
|
"#ed7953"
|
||
|
],
|
||
|
[
|
||
|
0.7777777777777778,
|
||
|
"#fb9f3a"
|
||
|
],
|
||
|
[
|
||
|
0.8888888888888888,
|
||
|
"#fdca26"
|
||
|
],
|
||
|
[
|
||
|
1,
|
||
|
"#f0f921"
|
||
|
]
|
||
|
],
|
||
|
"type": "histogram2d"
|
||
|
}
|
||
|
],
|
||
|
"histogram2dcontour": [
|
||
|
{
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
},
|
||
|
"colorscale": [
|
||
|
[
|
||
|
0,
|
||
|
"#0d0887"
|
||
|
],
|
||
|
[
|
||
|
0.1111111111111111,
|
||
|
"#46039f"
|
||
|
],
|
||
|
[
|
||
|
0.2222222222222222,
|
||
|
"#7201a8"
|
||
|
],
|
||
|
[
|
||
|
0.3333333333333333,
|
||
|
"#9c179e"
|
||
|
],
|
||
|
[
|
||
|
0.4444444444444444,
|
||
|
"#bd3786"
|
||
|
],
|
||
|
[
|
||
|
0.5555555555555556,
|
||
|
"#d8576b"
|
||
|
],
|
||
|
[
|
||
|
0.6666666666666666,
|
||
|
"#ed7953"
|
||
|
],
|
||
|
[
|
||
|
0.7777777777777778,
|
||
|
"#fb9f3a"
|
||
|
],
|
||
|
[
|
||
|
0.8888888888888888,
|
||
|
"#fdca26"
|
||
|
],
|
||
|
[
|
||
|
1,
|
||
|
"#f0f921"
|
||
|
]
|
||
|
],
|
||
|
"type": "histogram2dcontour"
|
||
|
}
|
||
|
],
|
||
|
"mesh3d": [
|
||
|
{
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
},
|
||
|
"type": "mesh3d"
|
||
|
}
|
||
|
],
|
||
|
"parcoords": [
|
||
|
{
|
||
|
"line": {
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
}
|
||
|
},
|
||
|
"type": "parcoords"
|
||
|
}
|
||
|
],
|
||
|
"pie": [
|
||
|
{
|
||
|
"automargin": true,
|
||
|
"type": "pie"
|
||
|
}
|
||
|
],
|
||
|
"scatter": [
|
||
|
{
|
||
|
"marker": {
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
}
|
||
|
},
|
||
|
"type": "scatter"
|
||
|
}
|
||
|
],
|
||
|
"scatter3d": [
|
||
|
{
|
||
|
"line": {
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
}
|
||
|
},
|
||
|
"marker": {
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
}
|
||
|
},
|
||
|
"type": "scatter3d"
|
||
|
}
|
||
|
],
|
||
|
"scattercarpet": [
|
||
|
{
|
||
|
"marker": {
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
}
|
||
|
},
|
||
|
"type": "scattercarpet"
|
||
|
}
|
||
|
],
|
||
|
"scattergeo": [
|
||
|
{
|
||
|
"marker": {
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
}
|
||
|
},
|
||
|
"type": "scattergeo"
|
||
|
}
|
||
|
],
|
||
|
"scattergl": [
|
||
|
{
|
||
|
"marker": {
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
}
|
||
|
},
|
||
|
"type": "scattergl"
|
||
|
}
|
||
|
],
|
||
|
"scattermapbox": [
|
||
|
{
|
||
|
"marker": {
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
}
|
||
|
},
|
||
|
"type": "scattermapbox"
|
||
|
}
|
||
|
],
|
||
|
"scatterpolar": [
|
||
|
{
|
||
|
"marker": {
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
}
|
||
|
},
|
||
|
"type": "scatterpolar"
|
||
|
}
|
||
|
],
|
||
|
"scatterpolargl": [
|
||
|
{
|
||
|
"marker": {
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
}
|
||
|
},
|
||
|
"type": "scatterpolargl"
|
||
|
}
|
||
|
],
|
||
|
"scatterternary": [
|
||
|
{
|
||
|
"marker": {
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
}
|
||
|
},
|
||
|
"type": "scatterternary"
|
||
|
}
|
||
|
],
|
||
|
"surface": [
|
||
|
{
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
},
|
||
|
"colorscale": [
|
||
|
[
|
||
|
0,
|
||
|
"#0d0887"
|
||
|
],
|
||
|
[
|
||
|
0.1111111111111111,
|
||
|
"#46039f"
|
||
|
],
|
||
|
[
|
||
|
0.2222222222222222,
|
||
|
"#7201a8"
|
||
|
],
|
||
|
[
|
||
|
0.3333333333333333,
|
||
|
"#9c179e"
|
||
|
],
|
||
|
[
|
||
|
0.4444444444444444,
|
||
|
"#bd3786"
|
||
|
],
|
||
|
[
|
||
|
0.5555555555555556,
|
||
|
"#d8576b"
|
||
|
],
|
||
|
[
|
||
|
0.6666666666666666,
|
||
|
"#ed7953"
|
||
|
],
|
||
|
[
|
||
|
0.7777777777777778,
|
||
|
"#fb9f3a"
|
||
|
],
|
||
|
[
|
||
|
0.8888888888888888,
|
||
|
"#fdca26"
|
||
|
],
|
||
|
[
|
||
|
1,
|
||
|
"#f0f921"
|
||
|
]
|
||
|
],
|
||
|
"type": "surface"
|
||
|
}
|
||
|
],
|
||
|
"table": [
|
||
|
{
|
||
|
"cells": {
|
||
|
"fill": {
|
||
|
"color": "#EBF0F8"
|
||
|
},
|
||
|
"line": {
|
||
|
"color": "white"
|
||
|
}
|
||
|
},
|
||
|
"header": {
|
||
|
"fill": {
|
||
|
"color": "#C8D4E3"
|
||
|
},
|
||
|
"line": {
|
||
|
"color": "white"
|
||
|
}
|
||
|
},
|
||
|
"type": "table"
|
||
|
}
|
||
|
]
|
||
|
},
|
||
|
"layout": {
|
||
|
"annotationdefaults": {
|
||
|
"arrowcolor": "#2a3f5f",
|
||
|
"arrowhead": 0,
|
||
|
"arrowwidth": 1
|
||
|
},
|
||
|
"autotypenumbers": "strict",
|
||
|
"coloraxis": {
|
||
|
"colorbar": {
|
||
|
"outlinewidth": 0,
|
||
|
"ticks": ""
|
||
|
}
|
||
|
},
|
||
|
"colorscale": {
|
||
|
"diverging": [
|
||
|
[
|
||
|
0,
|
||
|
"#8e0152"
|
||
|
],
|
||
|
[
|
||
|
0.1,
|
||
|
"#c51b7d"
|
||
|
],
|
||
|
[
|
||
|
0.2,
|
||
|
"#de77ae"
|
||
|
],
|
||
|
[
|
||
|
0.3,
|
||
|
"#f1b6da"
|
||
|
],
|
||
|
[
|
||
|
0.4,
|
||
|
"#fde0ef"
|
||
|
],
|
||
|
[
|
||
|
0.5,
|
||
|
"#f7f7f7"
|
||
|
],
|
||
|
[
|
||
|
0.6,
|
||
|
"#e6f5d0"
|
||
|
],
|
||
|
[
|
||
|
0.7,
|
||
|
"#b8e186"
|
||
|
],
|
||
|
[
|
||
|
0.8,
|
||
|
"#7fbc41"
|
||
|
],
|
||
|
[
|
||
|
0.9,
|
||
|
"#4d9221"
|
||
|
],
|
||
|
[
|
||
|
1,
|
||
|
"#276419"
|
||
|
]
|
||
|
],
|
||
|
"sequential": [
|
||
|
[
|
||
|
0,
|
||
|
"#0d0887"
|
||
|
],
|
||
|
[
|
||
|
0.1111111111111111,
|
||
|
"#46039f"
|
||
|
],
|
||
|
[
|
||
|
0.2222222222222222,
|
||
|
"#7201a8"
|
||
|
],
|
||
|
[
|
||
|
0.3333333333333333,
|
||
|
"#9c179e"
|
||
|
],
|
||
|
[
|
||
|
0.4444444444444444,
|
||
|
"#bd3786"
|
||
|
],
|
||
|
[
|
||
|
0.5555555555555556,
|
||
|
"#d8576b"
|
||
|
],
|
||
|
[
|
||
|
0.6666666666666666,
|
||
|
"#ed7953"
|
||
|
],
|
||
|
[
|
||
|
0.7777777777777778,
|
||
|
"#fb9f3a"
|
||
|
],
|
||
|
[
|
||
|
0.8888888888888888,
|
||
|
"#fdca26"
|
||
|
],
|
||
|
[
|
||
|
1,
|
||
|
"#f0f921"
|
||
|
]
|
||
|
],
|
||
|
"sequentialminus": [
|
||
|
[
|
||
|
0,
|
||
|
"#0d0887"
|
||
|
],
|
||
|
[
|
||
|
0.1111111111111111,
|
||
|
"#46039f"
|
||
|
],
|
||
|
[
|
||
|
0.2222222222222222,
|
||
|
"#7201a8"
|
||
|
],
|
||
|
[
|
||
|
0.3333333333333333,
|
||
|
"#9c179e"
|
||
|
],
|
||
|
[
|
||
|
0.4444444444444444,
|
||
|
"#bd3786"
|
||
|
],
|
||
|
[
|
||
|
0.5555555555555556,
|
||
|
"#d8576b"
|
||
|
],
|
||
|
[
|
||
|
0.6666666666666666,
|
||
|
"#ed7953"
|
||
|
],
|
||
|
[
|
||
|
0.7777777777777778,
|
||
|
"#fb9f3a"
|
||
|
],
|
||
|
[
|
||
|
0.8888888888888888,
|
||
|
"#fdca26"
|
||
|
],
|
||
|
[
|
||
|
1,
|
||
|
"#f0f921"
|
||
|
]
|
||
|
]
|
||
|
},
|
||
|
"colorway": [
|
||
|
"#636efa",
|
||
|
"#EF553B",
|
||
|
"#00cc96",
|
||
|
"#ab63fa",
|
||
|
"#FFA15A",
|
||
|
"#19d3f3",
|
||
|
"#FF6692",
|
||
|
"#B6E880",
|
||
|
"#FF97FF",
|
||
|
"#FECB52"
|
||
|
],
|
||
|
"font": {
|
||
|
"color": "#2a3f5f"
|
||
|
},
|
||
|
"geo": {
|
||
|
"bgcolor": "white",
|
||
|
"lakecolor": "white",
|
||
|
"landcolor": "#E5ECF6",
|
||
|
"showlakes": true,
|
||
|
"showland": true,
|
||
|
"subunitcolor": "white"
|
||
|
},
|
||
|
"hoverlabel": {
|
||
|
"align": "left"
|
||
|
},
|
||
|
"hovermode": "closest",
|
||
|
"mapbox": {
|
||
|
"style": "light"
|
||
|
},
|
||
|
"paper_bgcolor": "white",
|
||
|
"plot_bgcolor": "#E5ECF6",
|
||
|
"polar": {
|
||
|
"angularaxis": {
|
||
|
"gridcolor": "white",
|
||
|
"linecolor": "white",
|
||
|
"ticks": ""
|
||
|
},
|
||
|
"bgcolor": "#E5ECF6",
|
||
|
"radialaxis": {
|
||
|
"gridcolor": "white",
|
||
|
"linecolor": "white",
|
||
|
"ticks": ""
|
||
|
}
|
||
|
},
|
||
|
"scene": {
|
||
|
"xaxis": {
|
||
|
"backgroundcolor": "#E5ECF6",
|
||
|
"gridcolor": "white",
|
||
|
"gridwidth": 2,
|
||
|
"linecolor": "white",
|
||
|
"showbackground": true,
|
||
|
"ticks": "",
|
||
|
"zerolinecolor": "white"
|
||
|
},
|
||
|
"yaxis": {
|
||
|
"backgroundcolor": "#E5ECF6",
|
||
|
"gridcolor": "white",
|
||
|
"gridwidth": 2,
|
||
|
"linecolor": "white",
|
||
|
"showbackground": true,
|
||
|
"ticks": "",
|
||
|
"zerolinecolor": "white"
|
||
|
},
|
||
|
"zaxis": {
|
||
|
"backgroundcolor": "#E5ECF6",
|
||
|
"gridcolor": "white",
|
||
|
"gridwidth": 2,
|
||
|
"linecolor": "white",
|
||
|
"showbackground": true,
|
||
|
"ticks": "",
|
||
|
"zerolinecolor": "white"
|
||
|
}
|
||
|
},
|
||
|
"shapedefaults": {
|
||
|
"line": {
|
||
|
"color": "#2a3f5f"
|
||
|
}
|
||
|
},
|
||
|
"ternary": {
|
||
|
"aaxis": {
|
||
|
"gridcolor": "white",
|
||
|
"linecolor": "white",
|
||
|
"ticks": ""
|
||
|
},
|
||
|
"baxis": {
|
||
|
"gridcolor": "white",
|
||
|
"linecolor": "white",
|
||
|
"ticks": ""
|
||
|
},
|
||
|
"bgcolor": "#E5ECF6",
|
||
|
"caxis": {
|
||
|
"gridcolor": "white",
|
||
|
"linecolor": "white",
|
||
|
"ticks": ""
|
||
|
}
|
||
|
},
|
||
|
"title": {
|
||
|
"x": 0.05
|
||
|
},
|
||
|
"xaxis": {
|
||
|
"automargin": true,
|
||
|
"gridcolor": "white",
|
||
|
"linecolor": "white",
|
||
|
"ticks": "",
|
||
|
"title": {
|
||
|
"standoff": 15
|
||
|
},
|
||
|
"zerolinecolor": "white",
|
||
|
"zerolinewidth": 2
|
||
|
},
|
||
|
"yaxis": {
|
||
|
"automargin": true,
|
||
|
"gridcolor": "white",
|
||
|
"linecolor": "white",
|
||
|
"ticks": "",
|
||
|
"title": {
|
||
|
"standoff": 15
|
||
|
},
|
||
|
"zerolinecolor": "white",
|
||
|
"zerolinewidth": 2
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
},
|
||
|
"text/html": [
|
||
|
"<div> <div id=\"9357acbf-f4a1-4e81-9238-81d71ca9937f\" class=\"plotly-graph-div\" style=\"height:525px; width:100%;\"></div> <script type=\"text/javascript\"> require([\"plotly\"], function(Plotly) { window.PLOTLYENV=window.PLOTLYENV || {}; if (document.getElementById(\"9357acbf-f4a1-4e81-9238-81d71ca9937f\")) { Plotly.newPlot( \"9357acbf-f4a1-4e81-9238-81d71ca9937f\", [{\"lat\":[48.78574,48.78507,48.78485,48.78489,48.78493,48.7853,48.78533,48.78538,48.78547,48.78531,48.78484,48.78476,48.78471,48.78451,48.78426,48.78418,48.78407,48.78396,48.7839,48.78386,48.7838,48.78368,48.78355,48.78344,48.78341,48.78336,48.78282,48.78275,48.7827,48.7825,48.78237,48.78198,48.78195,48.78191,48.78184,48.78182,48.78172,48.78164,48.78157,48.78165,48.78196,48.78197,48.78198,48.78265,48.78271,48.78281,48.78359,48.78368,48.78373,48.78379,48.784,48.78449,48.78455,48.78468,48.78477,48.78483,48.78487,48.7849,48.785,48.78506,48.7851,48.78517,48.78532,48.78539,48.78542,48.78557,48.78563,48.78571,48.78581,48.786,48.78587,48.78583,48.78572,48.78557,48.78552,48.78541,48.78537,48.78534,48.78523,48.78511,48.78507,48.78499,48.78491,48.78481,48.78475,48.78466,48.78449,48.78428,48.78423,48.78418,48.78415,48.78397,48.78396,48.78378,48.78372,48.78364,48.78355,48.78345,48.78336,48.78311,48.78301,48.78291,48.78269,48.78251,48.78247,48.78241,48.78232,48.78217,48.7821,48.78178,48.78163,48.78146,48.7814,48.78122,48.7811,48.78109,48.78094,48.78092,48.78058,48.78009,48.77999,48.7797,48.77965,48.77952,48.77948,48.77941,48.7793,48.77929,48.77923,48.77904,48.7786,48.77855,48.77846,48.77797,48.77778,48.77769,48.77762,48.77752,48.77732,48.77697,48.77688,48.77677,48.77659,48.77648],\"lon\":[11.39516,11.39553,11.39565,11.39583,11.39598,11.39728,11.39738,11.39755,11.39783,11.39792,11.39819,11.39825,11.39827,11.39839,11.39852,11.39857,11.39865,11.39871,11.39874,11.39878,11.39884,11.39898,11.39919,11.39938,11.39946,11.39953,11.40065,11.4008,11.40088,11.40131,11.4016,11.40242,11.40252,11.40259,11.40273,11.40279,11.403,11.40315,11.40333,11.40342,11.40379,11.40381,11.40381,11.4046,11.40467,11.40478,11.4057,11.40581,11.40586,11.40593,11.40618,11.40677,11.40684,11.407,11.4071,11.40717,11.40721,11.40725,11.40737,11.40745,11.40749,11.40757,11.40775,11.40784,11.40788,11.40806,11.40813,11.40822,11.40835,11.40858,11.40889,11.40903,11.40931,11.40966,11.40978,11.41006,11.41015,11.41022,11.41047,11.41069,11.41077,11.41088,11.41103,11.41117,11.41126,11.41137,11.4116,11.41184,11.41191,11.41195,11.41198,11.41217,11.41219,11.41236,11.41241,11.41251,11.4126,11.41271,11.41279,11.41301,11.41311,11.4132,11.41338,11.41352,11.41356,11.41359,11.41366,11.41379,11.41383,11.4141,11.41422,11.41433,11.41439,11.41452,11.4146,11.4146,11.41472,11.41473,11.41498,11.4153,11.41537,11.41554,11.41558,11.41565,11.41567,11.41572,11.41578,11.41579,11.41581,11.41593,11.41613,11.41616,11.41619,11.4164,11.41647,11.4165,11.41653,11.41656,11.41662,11.41672,11.41675,11.41677,11.41682,11.41685],\"marker\":{\"color\":\"rgb(180,50,50)\",\"opacity\":0.25,\"size\":8},\"mode\":\"markers+lines+text\",\"name\":\"TomTom Routing\",\"text\":\"TT HCP3 Routing\",\"type\":\"scattermapbox\"},{\"lat\":[\"48.776529\"],\"lon\":[\"11.417135\"],\"marker\":{\"color\":\"rgb(180,50,50)\",\"opacity\":0.8,\"size\":25},\"mode\":\"markers\",\"name\":\"TomTom Routing\",\"text\":\"TT HCP3 Routing\",\"type\":\"scattermapbox\"},{\"lat\":[\"48.785931\"],\"lon\":[\"11.395945\"],\"marker\":{\"color\":\"rgb(180,50,50)\",\"opacity\":0.8,\"size\":25},\"mode\":\"markers\",\"name\":\"TomTom Routing\",\"text\":\"TT HCP3 Routing\",\"type\":\"scattermapbox\"}], {\"template\":{\"data\":{\"bar\":[{\"error_x\":{\"color\":\"#2a3f5f\"},\"error_y\":{\"color\":\"#2a3f5f\"},\"marker\":{\"line\":{\"color\":\"#E5ECF6\",\"width\":0.5},\"pattern\":{\"fillmode\":\"overlay\",\"size\":10,\"solidity\":0.2}},\"type\":\"bar\"}],\"barpolar\":[{\"marker\":{\"line\":{\"color\":\"#
|
||
|
" \n",
|
||
|
"var gd = document.getElementById('9357acbf-f4a1-4e81-9238-81d71ca9937f');\n",
|
||
|
"var x = new MutationObserver(function (mutations, observer) {{\n",
|
||
|
" var display = window.getComputedStyle(gd).display;\n",
|
||
|
" if (!display || display === 'none') {{\n",
|
||
|
" console.log([gd, 'removed!']);\n",
|
||
|
" Plotly.purge(gd);\n",
|
||
|
" observer.disconnect();\n",
|
||
|
" }}\n",
|
||
|
"}});\n",
|
||
|
"\n",
|
||
|
"// Listen for the removal of the full notebook cells\n",
|
||
|
"var notebookContainer = gd.closest('#notebook-container');\n",
|
||
|
"if (notebookContainer) {{\n",
|
||
|
" x.observe(notebookContainer, {childList: true});\n",
|
||
|
"}}\n",
|
||
|
"\n",
|
||
|
"// Listen for the clearing of the current output cell\n",
|
||
|
"var outputEl = gd.closest('.output');\n",
|
||
|
"if (outputEl) {{\n",
|
||
|
" x.observe(outputEl, {childList: true});\n",
|
||
|
"}}\n",
|
||
|
"\n",
|
||
|
" }) }; }); </script> </div>"
|
||
|
]
|
||
|
},
|
||
|
"metadata": {},
|
||
|
"output_type": "display_data"
|
||
|
}
|
||
|
],
|
||
|
"source": [
|
||
|
"lng_s,lat_s = Mapbox_Geocoding('Pascalstraße 7, 85057 Ingolstadt') # Only Germany ...\n",
|
||
|
"lng_d,lat_d = Mapbox_Geocoding('Ettinger Str. 26A, 85057 Ingolstadt') # Only Germany ...\n",
|
||
|
"\n",
|
||
|
"df,df2 = TomTom_HCP3_Routing(lat_s,lng_s,lat_d,lng_d,cfg,par)\n",
|
||
|
"\n",
|
||
|
"fig = go.Figure(go.Scattermapbox(\n",
|
||
|
" mode = \"markers+lines+text\",\n",
|
||
|
" lon = df.longitude,\n",
|
||
|
" lat = df.latitude,\n",
|
||
|
" marker = {'size': 8, 'color':'rgb(180,50,50)','opacity' : 0.25},\n",
|
||
|
" text='TT HCP3 Routing',\n",
|
||
|
" name='TomTom Routing'\n",
|
||
|
" ))\n",
|
||
|
"fig.add_trace(go.Scattermapbox(\n",
|
||
|
" mode = \"markers\",\n",
|
||
|
" lon = [str(lng_d)],\n",
|
||
|
" lat = [str(lat_d)],\n",
|
||
|
" marker = {'size': 25, 'color':'rgb(180,50,50)','opacity' : 0.8},\n",
|
||
|
" text='TT HCP3 Routing',\n",
|
||
|
" name='TomTom Routing'\n",
|
||
|
" ))\n",
|
||
|
"fig.add_trace(go.Scattermapbox(\n",
|
||
|
" mode = \"markers\",\n",
|
||
|
" lon = [str(lng_s)],\n",
|
||
|
" lat = [str(lat_s)],\n",
|
||
|
" marker = {'size': 25, 'color':'rgb(180,50,50)','opacity' : 0.8},\n",
|
||
|
" text='TT HCP3 Routing',\n",
|
||
|
" name='TomTom Routing'\n",
|
||
|
" ))\n",
|
||
|
"fig.update_layout(\n",
|
||
|
" margin ={'l':0,'t':0,'b':0,'r':0},\n",
|
||
|
" mapbox = {\n",
|
||
|
" 'center': {'lon': lng_s, 'lat': lat_s},\n",
|
||
|
" 'style': \"stamen-terrain\",\n",
|
||
|
" 'center': {'lon': lng_d, 'lat': lat_d},\n",
|
||
|
" 'zoom': 10})\n",
|
||
|
"\n",
|
||
|
"fig.show()"
|
||
|
]
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": null,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": []
|
||
|
},
|
||
|
{
|
||
|
"cell_type": "code",
|
||
|
"execution_count": null,
|
||
|
"metadata": {},
|
||
|
"outputs": [],
|
||
|
"source": []
|
||
|
}
|
||
|
],
|
||
|
"metadata": {
|
||
|
"kernelspec": {
|
||
|
"display_name": "Python 3 (ipykernel)",
|
||
|
"language": "python",
|
||
|
"name": "python3"
|
||
|
},
|
||
|
"language_info": {
|
||
|
"codemirror_mode": {
|
||
|
"name": "ipython",
|
||
|
"version": 3
|
||
|
},
|
||
|
"file_extension": ".py",
|
||
|
"mimetype": "text/x-python",
|
||
|
"name": "python",
|
||
|
"nbconvert_exporter": "python",
|
||
|
"pygments_lexer": "ipython3",
|
||
|
"version": "3.8.10"
|
||
|
}
|
||
|
},
|
||
|
"nbformat": 4,
|
||
|
"nbformat_minor": 4
|
||
|
}
|