window["ID"]="40002063";window["VERSION"]="1.9";window["LANG"]="ja";window["MAP_URL"]="https://alttile.transfer.navitime.biz/map/";window["COPYRIGHT_TEXT"]="© NAVITIME JAPAN. All Rights Reserved. Map data © ZENRIN CO., LTD.";window["REQUEST_URL"]="https://mapscript.cld.navitime.jp/v1/{sid}/mapscript/css";window["PALETTE_TYPE"]="TEST";var navitime=navitime||{};navitime.geo=navitime.geo||{};navitime.geo.parent=navitime;navitime.geo.namespace=function(a){a=a.split(".");var b=navitime.geo.parent;b===window[a[0]]&&(a=a.slice(1));for(var c=0,d=a.length;c<d;c++)"undefined"===typeof b[a[c]]&&(b[a[c]]={}),b=b[a[c]];return b};navitime.geo.namespace("navitime.geo.Util");navitime.geo.namespace("navitime.geo.Util.Function");navitime.geo.Util.falseFn=function(){return!1};navitime.geo.Util.extend=function(a,b){a=a||{};if(b){for(var c in b){var d=b[c];void 0!==d&&(a[c]=d)}"function"==typeof window.Event&&b instanceof window.Event||(!b.hasOwnProperty||!b.hasOwnProperty("toString"))||(a.toString=b.toString)}return a};
navitime.geo.Util.indexOf=function(a,b){if("function"==typeof a.indexOf)return a.indexOf(b);for(var c=0,d=a.length;c<d;c++)if(a[c]==b)return c;return-1};
navitime.geo.Util.pagePosition=function(a){for(var b=0,c=0,d=a,e=a;d&&(d!=document.body||"absolute"!=navitime.geo.Util.getStyle(e,"position"));){b+=d.offsetTop||0;c+=d.offsetLeft||0;e=d;try{d=d.offsetParent}catch(f){break}}for(d=a;d;){if(d.scrollTop||d.scrollLeft)if(b-=d.scrollTop||0,c-=d.scrollLeft||0,d===document.body)break;d=d.parentNode}return[c,b]};
navitime.geo.Util.getStyle=function(a,b){var c=null;if(a&&a.style){c=b;c||(document.defaultView&&document.defaultView.getComputedStyle?c=(c=document.defaultView.getComputedStyle(a,null))?c.getPropertyValue(b):null:a.currentStyle&&(c=a.currentStyle[b]));var d=["left","top","right","bottom"];window.opera&&(-1!=d.indexOf(b)&&"static"==navitime.geo.Util.getStyle(a,"position"))&&(c="auto")}return"auto"==c?null:c};
navitime.geo.Util.CheckAlpha=function(){var a=null,b=navigator.appVersion.split("MSIE"),b=parseFloat(b[1]),c=!1;try{c=!!document.body.filters}catch(d){}a=!(c&&5.5<=b&&7>b);navitime.geo.Util.CheckAlpha=function(){return a};return a};
navitime.geo.Util.transDatumJtoW=function(){return function(a){var b=a.lat/1E3*Math.PI/648E3,c=a.lng/1E3*Math.PI/648E3,d=6377397.155/Math.sqrt(1-0.006674372174974933*Math.sin(b)*Math.sin(b));a=(d+0)*Math.cos(b)*Math.cos(c)-147.54;var c=(d+0)*Math.cos(b)*Math.sin(c)- -507.26,b=(0.9933256278250251*d+0)*Math.sin(b)- -680.47,d=Math.sqrt(a*a+c*c),e=Math.atan(6378137*b/(6356752.31424518*d)),b=Math.atan2(b+42841.311513312336*Math.sin(e)*Math.sin(e)*Math.sin(e),d-42697.67270717874*Math.cos(e)*Math.cos(e)*
Math.cos(e));a=Math.atan2(c,a);return new navitime.geo.LatLng(Math.round(1E3*b*(648E3/Math.PI)),Math.round(1E3*a*(648E3/Math.PI)))}}();
navitime.geo.Util.transDatumWtoJ=function(){return function(a){var b=a.lat/1E3*(Math.PI/648E3),c=a.lng/1E3*(Math.PI/648E3),d=6378137/Math.sqrt(1-0.006694379990141124*Math.sin(b)*Math.sin(b));a=(d+0)*Math.cos(b)*Math.cos(c)+147.54;var c=(d+0)*Math.cos(b)*Math.sin(c)-507.26,b=(0.9933056200098589*d+0)*Math.sin(b)-680.47,d=Math.sqrt(a*a+c*c),e=Math.atan(6377397.155*b/(6356078.963*d)),b=Math.atan2(b+42707.88489116032*Math.sin(e)*Math.sin(e)*Math.sin(e),d-42565.1221200963*Math.cos(e)*Math.cos(e)*Math.cos(e));
a=Math.atan2(c,a);return new navitime.geo.LatLng(Math.round(1E3*b*(648E3/Math.PI)),Math.round(1E3*a*(648E3/Math.PI)))}}();
navitime.geo.Util.calcAutomaticAdjustmentViewPort=function(a,b,c,d){if(!b)return!1;for(var e,f,g,h,k=0,l=b.length;k<l;k++){var m=b[k];if(!e||e>m.lng)e=m.lng;if(!f||f<m.lng)f=m.lng;if(!g||g>m.lat)g=m.lat;if(!h||h<m.lat)h=m.lat}k=a._grid.tileSize;b=12756274*Math.PI/k;k=1.271350462849036E7*Math.PI/k;d||(d=new navitime.geo.LatLng(Math.round((h+g)/2),Math.round((f+e)/2)));e=Math.abs(d.lng-f)>Math.abs(d.lng-e)?f:e;h=Math.abs(d.lat-h)>Math.abs(d.lat-g)?h:g;g=2.6*navitime.geo.LatLng.getDistance(new navitime.geo.LatLng(0,
d.lng),new navitime.geo.LatLng(0,e));h=2.6*navitime.geo.LatLng.getDistance(new navitime.geo.LatLng(d.lat,0),new navitime.geo.LatLng(h,0));c||(c=a._zoomMax);e=-1;for(f=a._displayBounds;g<b*f.getWidth()&&h<k*f.getHeight()&&e<c;)b/=2,k/=2,e++;return{zoom:e<a._zoomMin?a._zoomMin:e,latlng:d}};navitime.geo.Util.getYYYYMMDDHHMMSS=function(){var a=(new Date).getSeconds();10>a&&(a="0"+a);return navitime.geo.Util.getYYYYMMDDHHMM()+a};
navitime.geo.Util.getYYYYMMDDHHMM=function(){var a=new Date,b=a.getYear(),c=a.getMonth()+1,d=a.getDate(),e=a.getHours(),a=a.getMinutes();2E3>b&&(b+=1900);10>c&&(c="0"+c);10>d&&(d="0"+d);10>e&&(e="0"+e);10>a&&(a="0"+a);return""+b+c+d+e+a};navitime.geo.Util.Function.bindAsEventListener=function(a,b){return function(c){return a.call(b,c||window.event)}};
navitime.geo.Util.Function.bind=function(a,b){var c=Array.prototype.slice.apply(arguments,[2]);return function(){var d=c.concat(Array.prototype.slice.apply(arguments,[0]));return a.apply(b,d)}};navitime.geo.Util.fixOnMouseOut=function(a,b){var c=null;b.toElement?c=b.toElement:b.relatedTarget&&(c=b.relatedTarget);var d;a:{d=c;if(null!=d)for(;d.parentNode;)if((d=d.parentNode)==a){d=!0;break a}d=!1}return d||a==c?!1:!0};
navitime.geo.Util.getRealImageSize=function(a){var b,c,d=a.width,e=a.height;if("undefined"!==typeof a.naturalWidth)d=a.naturalWidth,e=a.naturalHeight;else if("undefined"!==typeof a.runtimeStyle){var f=a.runtimeStyle;b=f.width;c=f.height;f.width="auto";f.height="auto";d=a.width;e=a.height;f.width=b;f.height=c}else b=a.width,c=a.height,a.removeAttribute("width"),a.removeAttribute("height"),d=a.width,e=a.height,a.width=b,a.height=c;return new navitime.geo.Size(d,e)};
navitime.geo.Util.changeDynamicArray=function(a,b,c){if(a instanceof Array){var d=Array.prototype.slice.apply(arguments,[3]);a.push=function(){var e=Array.prototype.push.apply(a,arguments);c.apply(b,d);return e};a.pop=function(){var e=Array.prototype.pop.apply(a,arguments);c.apply(b,d);return e};a.shift=function(){var e=Array.prototype.shift.apply(a,arguments);c.apply(b,d);return e};a.unshift=function(){var e=Array.prototype.unshift.apply(a,arguments);c.apply(b,d);return e};a.splice=function(){var e=
Array.prototype.splice.apply(a,arguments);c.apply(b,d);return e}}};navitime.geo.Util._getSerial=function(){var a=0;return function(){return a++}}();String.prototype.trim||(String.prototype.trim=function(){for(var a=this.toString();" "==a.charAt(0);)a=a.substring(1,a.length);for(;" "==a.charAt(a.length-1);)a=a.substring(0,a.length-1);return a});navitime.geo.namespace("navitime.geo");navitime.geo.Browser={touchable:function(){var a=document.documentElement;return window.navigator&&window.navigator.msPointerEnabled&&window.navigator.msMaxTouchPoints||"ontouchstart"in a?!0:!1}()};navitime.geo.namespace("navitime.geo.MeshUtil");
navitime.geo.MeshUtil.toMeshCode=function(a,b){var c=navitime.geo.MeshUtil._toScale(b),d=[[6,6],[3,3],[10,10],[5,5],[1,1]],e=[],f=[],g=[],h=[],k=a.lng,l=a.lat+324E6,m=k%36E5,p=l%24E5,q=l%3E5,r=k%45E4;e[1]=Math.floor(l/24E5);e[0]=Math.floor(k/36E5);360<=e[0]&&(e[0]-=360);var n;n=""+e[1];n+=e[0];1===c?(f[1]=Math.floor(p/(24E5/d[0][1]))+10,f[0]=Math.floor(m/(36E5/d[0][0]))+10,n+=f[1].toString(16),n+=f[0].toString(16)):(f[1]=Math.floor(p/3E5),f[0]=Math.floor(m/45E4),2===c?(g[1]=Math.floor(q/(3E5/d[1][1]))+
10,g[0]=Math.floor(r/(45E4/d[1][0]))+10,n+=f[1],n+=f[0],n+=g[1].toString(16),n+=g[0].toString(16)):3===c?(g[1]=Math.floor(q/(3E5/d[2][1])),g[0]=Math.floor(r/(45E4/d[2][0])),n+=f[1],n+=f[0],n+=g[1],n+=g[0]):4===c&&(g[1]=Math.floor(q/(3E5/d[2][1])),g[0]=Math.floor(r/(45E4/d[2][0])),h[1]=Math.floor(l%3E4/(3E4/d[3][1])),h[0]=Math.floor(k%45E3/(45E3/d[3][0])),n+=f[1],n+=f[0],n+=g[1],n+=g[0],n+=h[1],n+=h[0]));return n};
navitime.geo.MeshUtil._toScale=function(a){switch(a){case 6:case 7:case 8:return 0;case 9:case 10:case 11:return 1;case 12:case 13:case 14:return 2;case 15:case 16:return 3;case 17:case 18:case 19:return 4;default:return 0}};navitime.geo.MeshUtil.getGap=function(a){a=navitime.geo.MeshUtil._toScale(a);var b={};0>=a?(b.y=24E5,b.x=36E5):1===a?(b.y=4E5,b.x=6E5):2===a?(b.y=1E5,b.x=15E4):3===a?(b.y=3E4,b.x=45E3):4<=a&&(b.y=6E3,b.x=9E3);return b};navitime.geo.namespace("navitime.geo.base");
navitime.geo.base.Class=function(){for(var a=function(){arguments&&this.initialize.apply(this,arguments)},b={},c,d=0,e=arguments.length;d<e;++d)"function"==typeof arguments[d]?(0==d&&1<e&&(c=arguments[d].prototype.initialize,arguments[d].prototype.initialize=function(){},b=new arguments[d],void 0===c?delete arguments[d].prototype.initialize:arguments[d].prototype.initialize=c),c=arguments[d].prototype):c=arguments[d],navitime.geo.Util.extend(b,c);a.prototype=b;return a};navitime.geo.namespace("navitime.geo.base.config");
navitime.geo.base.config.Constants=navitime.geo.base.Class({URL_TILE_SUFFIX:"tile/",URL_FILE_SUFFIX:"files",URL_ROUTE_SUFFIX:"route",BLANK_URL:"blank.png",BG_URL:"bg.png",CLOSE_URL:"close.png",URL_SATELLITE_TILE:"http://mars.navitime.co.jp/mars/tile/",URL_SNOW_SUFFIX:"snow",SNOW_1_URL:"1.png",SNOW_3_URL:"3.png",SNOW_5_URL:"5.png",SNOW_20_URL:"20.png",SNOW_50_URL:"50.png",SNOW_100_URL:"100.png",SNOW_200_URL:"200.png",initialize:function(){},clone:function(){var a=new navitime.geo.base.config.Constants,
b;for(b in this){var c=this[b];void 0!==c&&"function"!=typeof c&&(a[b]=c)}return a},getTileRequestURL:function(){return this.URL_TILE+this.SERVICE_ID+"/"+this.URL_TILE_SUFFIX},getFileRequestURL:function(){return this.URL_TILE+this.SERVICE_ID+"/"+this.URL_FILE_SUFFIX},getRouteRequestURL:function(){return this.URL_TILE+this.SERVICE_ID+"/"+this.URL_ROUTE_SUFFIX},getSnowRequestURL:function(){return this.getFileRequestURL()+"/"+this.URL_SNOW_SUFFIX}});navitime.geo.base.Config=new navitime.geo.base.config.Constants;(function(){var a=-1!==location.protocol.search(/http/)?location.protocol:"http:";navitime.geo.base.Config.SERVICE_ID=window.ID;navitime.geo.base.Config.URL_TILE=window.MAP_URL.replace(/https?:/,a);navitime.geo.base.Config.URL_SATELLITE_TILE=navitime.geo.base.Config.URL_SATELLITE_TILE.replace(/https?:/,a);navitime.geo.base.Config.COPYRIGHT_TEXT=window.COPYRIGHT_TEXT;navitime.geo.base.Config.PALETTE_TYPE=window.PALETTE_TYPE;navitime.geo.base.Config.LANG=window.LANG;var a=window.REQUEST_URL.replace("{sid}",
navitime.geo.base.Config.SERVICE_ID).replace(/https?:/,a),b=window.VERSION,c=document.getElementsByTagName("head")[0],d=document.createElement("link");d.rel="stylesheet";d.type="text/css";d.href=a+"?version\x3d"+b;c.appendChild(d);try{delete window.ID,delete window.MAP_URL,delete window.COPYRIGHT_TEXT,delete window.REQUEST_URL,delete window.VERSION,delete window.PALETTE_TYPE,delete window.LANG}catch(e){window.ID=void 0,window.MAP_URL=void 0,window.COPYRIGHT_TEXT=void 0,window.REQUEST_URL=void 0,window.VERSION=
void 0,window.PALETTE_TYPE=void 0,window.LANG=void 0}})();navitime.geo.namespace("navitime.geo");
navitime.geo.BoundsInfo=navitime.geo.base.Class({left:null,right:null,top:null,bottom:null,initialize:function(a,b,c,d){null!=!a&&(this.left=parseFloat(a));null!=d&&(this.bottom=parseFloat(d));null!=b&&(this.right=parseFloat(b));null!=c&&(this.top=parseFloat(c))},clone:function(){return new navitime.geo.BoundsInfo(this.left,this.right,this.top,this.bottom)},equals:function(a){var b=!1;null!=a&&(b=this.left==a.left&&this.right==a.right&&this.top==a.top&&this.bottom==a.bottom);return b},getWidth:function(){return this.right-
this.left},getHeight:function(){return this.bottom-this.top},getCenterX:function(){return(this.left+this.right)/2},getCenterY:function(){return(this.bottom+this.top)/2},add:function(a,b){return new navitime.geo.BoundsInfo(this.left+a,this.right+a,this.top+b,this.bottom+b)},move:function(a,b){return this.add(a-this.left,b-this.top)},contains:function(a,b){return this.left<=a&&a<=this.right&&this.top<=b&&b<=this.bottom}});navitime.geo.namespace("navitime.geo.DOM");navitime.geo.DOM.create=function(a,b,c){a=document.createElement(a);b&&(a.className=b);c&&c.appendChild(a);return a};
navitime.geo.DOM.addElementOption=function(a,b,c,d,e,f,g,h){var k=a.style;b&&(k.left=b.left+"px",k.top=b.top+"px");c&&(k.width=c.width+"px",k.height=c.height+"px");d&&(k.position=d);e&&(k.border=e);f&&(k.overflow=f);g&&(0<=parseFloat(g)&&1>parseFloat(g)?(k.filter="alpha(opacity\x3d"+100*g+")",k.opacity=g):1==parseFloat(g)&&(k.filter="",k.opacity=""));h&&!navitime.geo.Util.CheckAlpha()&&(k.display="inline-block",h.sizing||(h.sizing="scale"),k.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src\x3d'"+
h.src+"', sizingMethod\x3d'"+h.sizing+"')",0<=parseFloat(k.opacity)&&1>parseFloat(k.opacity)&&(k.filter+=" alpha(opacity\x3d"+100*k.opacity+")"),a=a.childNodes[0])&&(a.style.filter="alpha(opacity\x3d0)")};navitime.geo.DOM.createImage=function(a,b,c,d,e,f,g){var h=document.createElement("img");d||(d="relative");navitime.geo.DOM.addElementOption(h,a,b,d,e,null,f);a=h.style;g||(a.display="none");h.galleryImg="no";c&&(h.src=c);return h};
navitime.geo.DOM.createAlphaImage=function(a,b,c,d,e,f,g){var h=navitime.geo.DOM.create("div");f=c||f?{sizing:f,src:c}:null;c=navitime.geo.DOM.createImage(null,b,c,"relative",e,null,!0);h.appendChild(c);navitime.geo.DOM.addElementOption(h,a,b,d,null,"hidden",g,f);return h};
navitime.geo.DOM.setCss=function(){if(document.all){var a=document.createStyleSheet();return function(b,c){a.addRule(b,"{"+c+"}")}}var b=document.createElement("style");b.setAttribute("type","text/css");document.getElementsByTagName("head").item(0).appendChild(b);var c=b.sheet;return function(a,b){c.insertRule(a+"{"+b+"}",c.cssRules.length)}}();navitime.geo.namespace("navitime.geo");
navitime.geo.LatLng=navitime.geo.base.Class({lng:0,lat:0,originalLng:0,originalLat:0,initialize:function(a,b){this.originalLng=navitime.geo.LatLng.transMillisec(b+"");this.originalLat=navitime.geo.LatLng.transMillisec(a+"");this.lng=this.originalLng;this.lat=this.originalLat;navitime.geo.LatLng.toCorrectLatLngIfNeeded(this)},add:function(a,b){return new navitime.geo.LatLng(this.lat+navitime.geo.LatLng.transMillisec(a+""),this.lng+navitime.geo.LatLng.transMillisec(b+""))},clone:function(){return new navitime.geo.LatLng(this.lat,
this.lng)},equals:function(a){return a&&a.lng===this.lng&&a.lat===this.lat},getLon:function(){return this.lng},getLng:function(){return navitime.geo.LatLng.transMILLItoDEG(this.lng)+""},getLat:function(){return navitime.geo.LatLng.transMILLItoDEG(this.lat)+""},getOriginalLng:function(){return navitime.geo.LatLng.transMILLItoDEG(this.originalLng)+""},getOriginalLat:function(){return navitime.geo.LatLng.transMILLItoDEG(this.originalLat)+""}});
navitime.geo.LatLng.getDistance=function(a,b){var c=navitime.geo.LatLng.getDifference(a,b);return Math.sqrt(Math.pow(c.x,2)+Math.pow(c.y,2))};
navitime.geo.LatLng.getDifference=function(a,b){var c=navitime.geo.LatLng.transMILLItoDEG(a.lat),d=navitime.geo.LatLng.transMILLItoDEG(a.lng),e=navitime.geo.LatLng.transMILLItoDEG(b.lat),f=navitime.geo.LatLng.transMILLItoDEG(b.lng),g=(e+c)/2*Math.PI/180,c=(e-c)*Math.PI/180,d=(f-d)*Math.PI/180,f=Math.sqrt(1-0.00669437999019758*Math.pow(Math.sin(g),2)),e=6335439.32729246/Math.pow(f,3);return{x:d*(6378137/f)*Math.cos(g),y:c*e}};
navitime.geo.LatLng.transMILLItoDMS=function(a){var b=null,c=null,c=a%1E3;a=parseInt(a/1E3);c="0"+c/10;b=c.substring(c.length-2);c=a%60;a=parseInt(a/60);c="0"+c;b=c.substring(c.length-2)+"."+b;c=a%60;a=parseInt(a/60);c="0"+c;return b=a+"."+c.substring(c.length-2)+"."+b};navitime.geo.LatLng.transMILLItoDEG=function(a){return Math.round(a/3.6)/1E6};
navitime.geo.LatLng.transMillisec=function(a){var b=null,c=1;a=a.trim();0==a.indexOf("+")&&(a=a.substring(1));0==a.indexOf("-")&&(a=a.substring(1),c=-1);if(-1!=a.indexOf(","))b=a.split(",");else if(-1!=a.indexOf("."))b=a.split(".");else return parseInt(a)*c;if(2==b.length)return Math.round(36E5*parseFloat(a));a=parseInt(b[0]);var d=parseInt(b[1]),e=parseInt(b[2]);if(4==b.length&&0<b[3].length){3<b[3].length&&(b[3]=b[3].substring(0,3));var f=parseInt(b[3])*Math.pow(10,3-b[3].length)}return(1E3*(3600*
a+60*d+e)+f)*c};navitime.geo.LatLng.transDEGtoDMS=function(a){a=a.trim();0==a.indexOf("+")&&(a=a.substring(1));0==a.indexOf("-")&&(a=a.substring(1));var b=null;if(-1!=a.indexOf(","))b=a.split(",");else if(-1!=a.indexOf("."))b=a.split(".");else return 0;a=60*parseFloat("0."+b[1]);var c=Math.round(6E4*(a-Math.floor(a)))/1E3;return b[0]+"."+Math.floor(a)+"."+c};
navitime.geo.LatLng.transDEGtoMillisec=function(a){var b=[];a=a.trim();0==a.indexOf("+")&&(a=a.substring(1));0==a.indexOf("-")&&(a=a.substring(1));-1!=a.indexOf(",")?b=a.split(","):-1!=a.indexOf(".")?b=a.split("."):b.push(a);return 2>=b.length?Math.round(36E5*parseFloat(a)):parseInt(a,10)};
navitime.geo.LatLng.REMOTE_ISLANDS=[{min:{lat:88784041,lng:508510199},max:{lat:89384113,lng:508960208},offset:{lat:25254,lng:-5660}},{min:{lat:93285151,lng:472507492},max:{lat:93585191,lng:472957426},offset:{lat:12077,lng:-18830}},{min:{lat:92685087,lng:472057351},max:{lat:93285166,lng:472957398},offset:{lat:12077,lng:-18830}},{min:{lat:88485054,lng:448655228},max:{lat:89385158,lng:449105224},offset:{lat:9152,lng:-17206}},{min:{lat:87885092,lng:442354650},max:{lat:88185140,lng:443254711},offset:{lat:-4788,
lng:-7088}},{min:{lat:116687119,lng:503111021},max:{lat:116987159,lng:503561045},offset:{lat:-2440,lng:-139}},{min:{lat:89385111,lng:450455405},max:{lat:89985191,lng:451355453},offset:{lat:1839,lng:-2410}},{min:{lat:88785039,lng:450455378},max:{lat:89385127,lng:451805462},offset:{lat:1839,lng:-2410}},{min:{lat:88485077,lng:447305089},max:{lat:88785117,lng:447755112},offset:{lat:-4700,lng:-7300}},{min:{lat:88185045,lng:446855037},max:{lat:88485093,lng:447755098},offset:{lat:-4700,lng:-7300}},{min:{lat:87885013,
lng:446404986},max:{lat:88185069,lng:447755084},offset:{lat:-4700,lng:-7300}},{min:{lat:87584981,lng:446625E3},max:{lat:87885037,lng:447755071},offset:{lat:-4700,lng:-7300}},{min:{lat:87284957,lng:446625E3},max:{lat:87585005,lng:447305019},offset:{lat:-4700,lng:-7300}}];
navitime.geo.LatLng.toCorrectLatLngIfNeeded=function(a){if(a)for(var b=0;b<navitime.geo.LatLng.REMOTE_ISLANDS.length;b++){var c=navitime.geo.LatLng.REMOTE_ISLANDS[b];if(c.min.lat<=a.lat&&a.lat<=c.max.lat&&c.min.lng<=a.lng&&a.lng<=c.max.lng){a.lat+=c.offset.lat;a.lng+=c.offset.lng;break}}};navitime.geo.namespace("navitime.geo");navitime.geo.Size=navitime.geo.base.Class({width:0,height:0,initialize:function(a,b){this.width=parseFloat(a);this.height=parseFloat(b)},clone:function(){return new navitime.geo.Size(this.width,this.height)}});navitime.geo.namespace("navitime.geo.base");
navitime.geo.Color=navitime.geo.base.Class({_color:null,initialize:function(a){a=a.toLowerCase();for(var b=navitime.geo.Color.table,c=0,d=b.length;c<d;c++)if(b[c].decimal===a||b[c].color===a||b[c].hex===a){this._color=b[c];return}this._color={decimal:navitime.geo.Color.changeHexToDecimal(a),hex:navitime.geo.Color.changeDecimalToHex(a)}},getDecimal:function(){return null===this._color?null:this._color.decimal},getHex:function(){return null===this._color?null:this._color.hex},getColor:function(){return null===
this._color?null:this._color.color},addBrightness:function(a){var b=navitime.geo.Color.changeDecimalToHSV(this._color.decimal);b.v+=a;b.v=255<b.v?255:0>b.v?0:b.v;a=navitime.geo.Color.changeHSVToDecimal(b);this._color={decimal:a,hex:navitime.geo.Color.changeDecimalToHex(a)}},addBrightnessPercent:function(a){this.addBrightness(2.55*a)},equals:function(a){return this.getDecimal()===a.getDecimal()}});
navitime.geo.Color.changeHexToDecimal=function(a){if(!a)return null;-1!==a.indexOf("#")&&(a=parseInt(a.substring(1,3),16)+","+parseInt(a.substring(3,5),16)+","+parseInt(a.substring(5,8),16));return a};navitime.geo.Color.changeDecimalToHex=function(a){if(!a)return null;-1!==a.indexOf(",")&&(a=a.split(","),a="#"+("0"+parseInt(a[0]).toString(16)).slice(-2)+("0"+parseInt(a[1]).toString(16)).slice(-2)+("0"+parseInt(a[2]).toString(16)).slice(-2));return a};
navitime.geo.Color.changeDecimalToHSV=function(a){if(!a)return null;if(-1!==a.indexOf(",")){a=a.split(",");var b=a[0]-0,c=a[1]-0,d=a[2]-0;a=Math.max(b,c,d);var e=Math.min(b,c,d);a===e?c=b=0:(b=a===b?60*(c-d)/(a-e):a===c?60*(d-b)/(a-e)+120:60*(b-c)/(a-e)+240,c=255*(a-e)/a);return{h:0>b?b+360:359<b?b-360:b,s:c,v:a}}return null};
navitime.geo.Color.changeHSVToDecimal=function(a){if(!a)return null;var b,c,d,e=a.h,f=a.s;a=a.v;if(0===f)return Math.round(a)+","+Math.round(a)+","+Math.round(a);var g=Math.floor(e/60),h=e/60-g,e=a*(1-f/255),k=a*(1-h*f/255),f=a*(1-(1-h)*f/255);0===g?(b=a,c=f,d=e):1===g?(b=k,c=a,d=e):2===g?(b=e,c=a,d=f):3===g?(b=e,c=k,d=a):4===g?(b=f,c=e,d=a):5===g&&(b=a,c=e,d=k);return Math.round(b)+","+Math.round(c)+","+Math.round(d)};
navitime.geo.Color.changeHex=function(a){if(!a)return null;a=a.toLowerCase();for(var b=navitime.geo.Color.table,c=0,d=b.length;c<d;c++)if(b[c].decimal===a||b[c].color===a)return b[c].hex;return navitime.geo.Color.changeDecimalToHex(a)};navitime.geo.Color.changeDecimal=function(a){if(!a)return null;a=a.toLowerCase();for(var b=navitime.geo.Color.table,c=0,d=b.length;c<d;c++)if(b[c].color===a||b[c].hex===a)return b[c].decimal;return navitime.geo.Color.changeHexToDecimal(a)};
navitime.geo.Color.table=[{color:"aliceblue",hex:"#f0f8ff",decimal:"240,248,255"},{color:"antiquewhite",hex:"#faebd7",decimal:"250,235,215"},{color:"aqua",hex:"#00ffff",decimal:"0,255,255"},{color:"aquamarine",hex:"#7fffd4",decimal:"127,255,212"},{color:"azure",hex:"#f0ffff",decimal:"240,255,255"},{color:"beige",hex:"#f5f5dc",decimal:"245,245,220"},{color:"bisque",hex:"#ffe4c4",decimal:"255,228,196"},{color:"black",hex:"#000000",decimal:"0,0,0"},{color:"blanchedalmond",hex:"#ffebcd",decimal:"255,235,205"},
{color:"blue",hex:"#0000ff",decimal:"0,0,255"},{color:"blueviolet",hex:"#8a2be2",decimal:"138,43,226"},{color:"brown",hex:"#a52a2a",decimal:"165,42,42"},{color:"burlywood",hex:"#deb887",decimal:"222,184,135"},{color:"cadetblue",hex:"#5f9ea0",decimal:"95,158,160"},{color:"chartreuse",hex:"#7fff00",decimal:"127,255,0"},{color:"chocolate",hex:"#d2691e",decimal:"210,105,30"},{color:"coral",hex:"#ff7f50",decimal:"255,127,80"},{color:"cornflowerblue",hex:"#6495ed",decimal:"100,149,237"},{color:"cornsilk",
hex:"#fff8dc",decimal:"255,248,220"},{color:"crimson",hex:"#dc143c",decimal:"220,20,60"},{color:"cyan",hex:"#00ffff",decimal:"0,255,255"},{color:"darkblue",hex:"#00008b",decimal:"0,0,139"},{color:"darkcyan",hex:"#008b8b",decimal:"0,139,139"},{color:"darkgoldenrod",hex:"#b8860b",decimal:"184,134,11"},{color:"darkgray",hex:"#a9a9a9",decimal:"169,169,169"},{color:"darkgreen",hex:"#006400",decimal:"0,100,0"},{color:"darkgrey",hex:"#a9a9a9",decimal:"169,169,169"},{color:"darkkhaki",hex:"#bdb76b",decimal:"189,183,107"},
{color:"darkmagenta",hex:"#8b008b",decimal:"139,0,139"},{color:"darkolivegreen",hex:"#556b2f",decimal:"85,107,47"},{color:"darkorange",hex:"#ff8c00",decimal:"255,140,0"},{color:"darkorchid",hex:"#9932cc",decimal:"153,50,204"},{color:"darkred",hex:"#8b0000",decimal:"139,0,0"},{color:"darksalmon",hex:"#e9967a",decimal:"233,150,122"},{color:"darkseagreen",hex:"#8fbc8f",decimal:"143,188,143"},{color:"darkslateblue",hex:"#483d8b",decimal:"72,61,139"},{color:"darkslategray",hex:"#2f4f4f",decimal:"47,79,79"},
{color:"darkslategrey",hex:"#2f4f4f",decimal:"47,79,79"},{color:"darkturquoise",hex:"#00ced1",decimal:"0,206,209"},{color:"darkviolet",hex:"#9400d3",decimal:"148,0,211"},{color:"deeppink",hex:"#ff1493",decimal:"255,20,147"},{color:"deepskyblue",hex:"#00bfff",decimal:"0,191,255"},{color:"dimgray",hex:"#696969",decimal:"105,105,105"},{color:"dimgrey",hex:"#696969",decimal:"105,105,105"},{color:"dodgerblue",hex:"#1e90ff",decimal:"30,144,255"},{color:"firebrick",hex:"#b22222",decimal:"178,34,34"},{color:"floralwhite",
hex:"#fffaf0",decimal:"255,250,240"},{color:"forestgreen",hex:"#228b22",decimal:"34,139,34"},{color:"fuchsia",hex:"#ff00ff",decimal:"255,0,255"},{color:"gainsboro",hex:"#dcdcdc",decimal:"220,220,220"},{color:"ghostwhite",hex:"#f8f8ff",decimal:"248,248,255"},{color:"gold",hex:"#ffd700",decimal:"255,215,0"},{color:"goldenrod",hex:"#daa520",decimal:"218,165,32"},{color:"gray",hex:"#808080",decimal:"128,128,128"},{color:"green",hex:"#008000",decimal:"0,128,0"},{color:"greenyellow",hex:"#adff2f",decimal:"173,255,47"},
{color:"grey",hex:"#808080",decimal:"128,128,128"},{color:"honeydew",hex:"#f0fff0",decimal:"240,255,240"},{color:"hotpink",hex:"#ff69b4",decimal:"255,105,180"},{color:"indianred",hex:"#cd5c5c",decimal:"205,92,92"},{color:"indigo",hex:"#4b0082",decimal:"75,0,130"},{color:"ivory",hex:"#fffff0",decimal:"255,255,240"},{color:"khaki",hex:"#f0e68c",decimal:"240,230,140"},{color:"lavender",hex:"#e6e6fa",decimal:"230,230,250"},{color:"lavenderblush",hex:"#fff0f5",decimal:"255,240,245"},{color:"lawngreen",
hex:"#7cfc00",decimal:"124,252,0"},{color:"lemonchiffon",hex:"#fffacd",decimal:"255,250,205"},{color:"lightblue",hex:"#add8e6",decimal:"173,216,230"},{color:"lightcoral",hex:"#f08080",decimal:"240,128,128"},{color:"lightcyan",hex:"#e0ffff",decimal:"224,255,255"},{color:"lightgoldenrodyellow",hex:"#fafad2",decimal:"250,250,210"},{color:"lightgray",hex:"#d3d3d3",decimal:"211,211,211"},{color:"lightgreen",hex:"#90ee90",decimal:"144,238,144"},{color:"lightgrey",hex:"#d3d3d3",decimal:"211,211,211"},{color:"lightpink",
hex:"#ffb6c1",decimal:"255,182,193"},{color:"lightsalmon",hex:"#ffa07a",decimal:"255,160,122"},{color:"lightseagreen",hex:"#20b2aa",decimal:"32,178,170"},{color:"lightskyblue",hex:"#87cefa",decimal:"135,206,250"},{color:"lightslategray",hex:"#778899",decimal:"119,136,153"},{color:"lightslategrey",hex:"#778899",decimal:"119,136,153"},{color:"lightsteelblue",hex:"#b0c4de",decimal:"176,196,222"},{color:"lightyellow",hex:"#ffffe0",decimal:"255,255,224"},{color:"lime",hex:"#00ff00",decimal:"0,255,0"},
{color:"limegreen",hex:"#32cd32",decimal:"50,205,50"},{color:"linen",hex:"#faf0e6",decimal:"250,240,230"},{color:"magenta",hex:"#ff00ff",decimal:"255,0,255"},{color:"maroon",hex:"#800000",decimal:"128,0,0"},{color:"mediumaquamarine",hex:"#66cdaa",decimal:"102,205,170"},{color:"mediumblue",hex:"#0000cd",decimal:"0,0,205"},{color:"mediumorchid",hex:"#ba55d3",decimal:"186,85,211"},{color:"mediumpurple",hex:"#9370db",decimal:"147,112,219"},{color:"mediumseagreen",hex:"#3cb371",decimal:"60,179,113"},{color:"mediumslateblue",
hex:"#7b68ee",decimal:"123,104,238"},{color:"mediumspringgreen",hex:"#00fa9a",decimal:"0,250,154"},{color:"mediumturquoise",hex:"#48d1cc",decimal:"72,209,204"},{color:"mediumvioletred",hex:"#c71585",decimal:"199,21,133"},{color:"midnightblue",hex:"#191970",decimal:"25,25,112"},{color:"mintcream",hex:"#f5fffa",decimal:"245,255,250"},{color:"mistyrose",hex:"#ffe4e1",decimal:"255,228,225"},{color:"moccasin",hex:"#ffe4b5",decimal:"255,228,181"},{color:"navajowhite",hex:"#ffdead",decimal:"255,222,173"},
{color:"navy",hex:"#000080",decimal:"0,0,128"},{color:"oldlace",hex:"#fdf5e6",decimal:"253,245,230"},{color:"olive",hex:"#808000",decimal:"128,128,0"},{color:"olivedrab",hex:"#6b8e23",decimal:"107,142,35"},{color:"orange",hex:"#ffa500",decimal:"255,165,0"},{color:"orangered",hex:"#ff4500",decimal:"255,69,0"},{color:"orchid",hex:"#da70d6",decimal:"218,112,214"},{color:"palegoldenrod",hex:"#eee8aa",decimal:"238,232,170"},{color:"palegreen",hex:"#98fb98",decimal:"152,251,152"},{color:"paleturquoise",
hex:"#afeeee",decimal:"175,238,238"},{color:"palevioletred",hex:"#db7093",decimal:"219,112,147"},{color:"papayawhip",hex:"#ffefd5",decimal:"255,239,213"},{color:"peachpuff",hex:"#ffdab9",decimal:"255,218,185"},{color:"peru",hex:"#cd853f",decimal:"205,133,63"},{color:"pink",hex:"#ffc0cb",decimal:"255,192,203"},{color:"plum",hex:"#dda0dd",decimal:"221,160,221"},{color:"powderblue",hex:"#b0e0e6",decimal:"176,224,230"},{color:"purple",hex:"#800080",decimal:"128,0,128"},{color:"red",hex:"#ff0000",decimal:"255,0,0"},
{color:"rosybrown",hex:"#bc8f8f",decimal:"188,143,143"},{color:"royalblue",hex:"#4169e1",decimal:"65,105,225"},{color:"saddlebrown",hex:"#8b4513",decimal:"139,69,19"},{color:"salmon",hex:"#fa8072",decimal:"250,128,114"},{color:"sandybrown",hex:"#f4a460",decimal:"244,164,96"},{color:"seagreen",hex:"#2e8b57",decimal:"46,139,87"},{color:"seashell",hex:"#fff5ee",decimal:"255,245,238"},{color:"sienna",hex:"#a0522d",decimal:"160,82,45"},{color:"silver",hex:"#c0c0c0",decimal:"192,192,192"},{color:"skyblue",
hex:"#87ceeb",decimal:"135,206,235"},{color:"slateblue",hex:"#6a5acd",decimal:"106,90,205"},{color:"slategray",hex:"#708090",decimal:"112,128,144"},{color:"slategrey",hex:"#708090",decimal:"112,128,144"},{color:"snow",hex:"#fffafa",decimal:"255,250,250"},{color:"springgreen",hex:"#00ff7f",decimal:"0,255,127"},{color:"steelblue",hex:"#4682b4",decimal:"70,130,180"},{color:"tan",hex:"#d2b48c",decimal:"210,180,140"},{color:"teal",hex:"#008080",decimal:"0,128,128"},{color:"thistle",hex:"#d8bfd8",decimal:"216,191,216"},
{color:"tomato",hex:"#ff6347",decimal:"255,99,71"},{color:"turquoise",hex:"#40e0d0",decimal:"64,224,208"},{color:"violet",hex:"#ee82ee",decimal:"238,130,238"},{color:"wheat",hex:"#f5deb3",decimal:"245,222,179"},{color:"white",hex:"#ffffff",decimal:"255,255,255"},{color:"whitesmoke",hex:"#f5f5f5",decimal:"245,245,245"},{color:"yellow",hex:"#ffff00",decimal:"255,255,0"},{color:"yellowgreen",hex:"#9acd32",decimal:"154,205,50"}];navitime.geo.namespace("navitime.geo");
navitime.geo.RouteInfo=navitime.geo.base.Class({type:0,size:0,color:new navitime.geo.Color("none"),opacity:0,linecap:null,linejoin:null,dasharray:null,initialize:function(a,b,c,d){null!==a&&void 0!==a&&(this.type=a,0===this.type||"0"===this.type)&&(this.linejoin=this.linecap="round");b&&(this.size=b);c&&(this.color=new navitime.geo.Color(c));d&&(1<d&&(d/=100),this.opacity=d)},clone:function(){return new navitime.geo.RouteInfo(this.type,this.size,this.color,this.opacity)},equals:function(a){return this.type===
a.type&&this.size===a.size&&this.color.equals(a.color)&&this.opacity===a.opacity}});navitime.geo.namespace("navitime.geo");
navitime.geo.LatLngBounds=navitime.geo.base.Class({_northWest:null,_southEast:null,_northEast:null,_southWest:null,initialize:function(a,b){this._southWest=a;this._northEast=b},getNorthWest:function(){this._northWest||(this._northWest=new navitime.geo.LatLng(this._southWest.lat,this._northEast.lng));return this._northWest},getSouthEast:function(){this._southEast||(this._southEast=new navitime.geo.LatLng(this._northEast.lat,this._southWest.lng));return this._southEast},getNorthEast:function(){return this._northEast},
getSouthWest:function(){return this._southWest}});navitime.geo.namespace("navitime.geo.base");
navitime.geo.base.LineInfo=navitime.geo.base.Class({_inlineInfo:null,_outlineInfo:null,initialize:function(a,b,c,d){this._inlineInfo=a?a:new navitime.geo.RouteInfo;this._outlineInfo=b},destroy:function(){this._outlineInfo=this._inlineInfo=null},clone:function(){return new navitime.geo.base.LineInfo(this._inlineInfo.clone(),this._outlineInfo?this._outlineInfo.clone():null,this._inarrowInfo.clone())},equals:function(a){return this._inlineInfo.equals(a._inlineInfo)&&(!this._outlineInfo||this._outlineInfo.equals(a._outlineInfo))}});navitime.geo.namespace("navitime.geo.base");
navitime.geo.base.Ajax={getURL:function(a,b){var c;window.XDomainRequest?(c=new XDomainRequest,c.onload=function(){b(c.responseText,c.contentType)},c.open("GET",a)):(c=this._createXMLHttpRequest(b),c.open("GET",a,!0));c.send()},_createXMLHttpRequest:function(a){var b=null;try{b=new XMLHttpRequest}catch(c){try{b=new ActiveXObject("Msxml2.XMLHTTP")}catch(d){try{b=new ActiveXObject("Microsoft.XMLHTTP")}catch(e){return null}}}b&&(b.onreadystatechange=function(){4==b.readyState&&(200==b.status?a(b.responseText):
window.console.log("status \x3d "+b.status))});return b}};
navitime.geo.base.Ajax.JSONP={_scripts:{},_charset:"utf-8",_counter:1,_lastTime:null,_head:document.getElementsByTagName("head")[0],_name:function(a){this._lastTime=(new Date).getTime();var b="jsonp_"+this._lastTime+"_"+this._counter;this._counter++;window.name=function(c){return function(d){window.name=void 0;try{delete window.name}catch(e){}a(d,b);c._head.removeChild(c._scripts[b]);delete c._scripts[b]}}(this);return b},_load:function(a,b){var c=document.createElement("script");c.type="text/javascript";
c._charset=this._charset;c.src=a;this._head.appendChild(c);this._scripts[b]=c},getJSONP:function(a,b){var c=this._name(b),d=a.replace(/{ callback }/,c);this._load(d,c);return this}};navitime.geo.namespace("navitime.geo.base");
navitime.geo.base.TileMapParameter=navitime.geo.base.Class({trafficTime:null,searchtime:null,rainOffsetTime:null,timestamp:null,product:"web",annotation:null,uid:null,definedRegulation:null,drCategory:null,regulationTime:null,displacement:null,tandem:null,drawArrow:null,tfsrc:null,roadregulation:null,carType:null,height:null,width:null,length:null,weight:null,maxload:null,dangerousGoods:null,useTraffic:null,initialize:function(){this.queryParam={}},clone:function(){var a=new navitime.geo.base.TileMapParameter;
a.setTrafficTime(this.trafficTime);a.setSearchTime(this.searchtime);a.setRainOffsetTime(this.rainOffsetTime);a.setTimestamp(this.timestamp);a.setAnnotation(this.annotation);a.setUid(this.uid);a.setDrawArrow(this.drawArrow);a.setTfsrc(this.tfsrc);a.setDefinedRegulation(this.definedRegulation);a.setDefinedRegulationCategory(this.drCategory);a.setRegulationTime(this.regulationTime);a.setDisplacement(this.displacement);a.setTandem(this.tandem);a.setRoadregulation(this.roadregulation);a.setCarType(this.carType);
a.setHeight(this.height);a.setWidth(this.width);a.setLength(this.length);a.setWeight(this.weight);a.setMaxload(this.maxload);a.setDangerousGoods(this.dangerousGoods);a.setUseTraffic(this.useTraffic);for(var b in this.queryParam)this.queryParam.hasOwnProperty(b)&&(a.queryParam[b]=this.queryParam[b]);return a},toString:function(){var a="";this.product&&(a+="?product\x3d"+this.product);if(this.trafficTime){var b="function"===typeof this.trafficTime?this.trafficTime():this.trafficTime;b&&(a+="\x26traffic-time\x3d"+
b)}this.searchtime&&(b="function"===typeof this.searchtime?this.searchtime():this.searchtime)&&(a+="\x26searchtime\x3d"+b);this.rainOffsetTime&&(b="function"===typeof this.rainOffsetTime?this.rainOffsetTime():this.rainOffsetTime)&&(a+="\x26rain-offsettime\x3d"+b);this.timestamp&&(b="function"===typeof this.timestamp?this.timestamp():this.timestamp)&&(a+="\x26timestamp\x3d"+b);this.annotation&&!1===("function"===typeof this.annotation?this.annotation():this.annotation)&&(a+="\x26annotation\x3dfalse");
this.uid&&(b="function"===typeof this.uid?this.uid():this.uid)&&(a+="\x26uid\x3d"+b);this.definedRegulation&&!0===("function"===typeof this.definedRegulation?this.definedRegulation():this.definedRegulation)&&(a+="\x26definedregulation\x3dtrue");this.drCategory&&(b="function"===typeof this.drCategory?this.drCategory():this.drCategory)&&(a+="\x26drcategory\x3d"+b);this.regulationTime&&(b="function"===typeof this.regulationTime?this.regulationTime():this.regulationTime)&&(a+="\x26regulation-time\x3d"+
b);this.displacement&&(b="function"===typeof this.displacement?this.displacement():this.displacement)&&(a+="\x26displacement\x3d"+b);this.tandem&&(b="function"===typeof this.tandem?this.tandem():this.tandem,a+="\x26tandem\x3d"+(b?"true":"false"));this.drawArrow&&(b="function"===typeof this.drawArrow?this.drawArrow():this.drawArrow,a+="\x26drawArrow\x3d"+(b?"true":"false"));this.tfsrc&&(b="function"===typeof this.tfsrc?this.tfsrc():this.tfsrc)&&(a+="\x26tfsrc\x3d"+b);this.roadregulation&&(b="function"===
typeof this.roadregulation?this.roadregulation():this.roadregulation)&&(a+="\x26roadregulation\x3d"+b);this.carType&&(b="function"===typeof this.carType?this.carType():this.carType)&&(a+="\x26car-type\x3d"+b);this.height&&(b="function"===typeof this.height?this.height():this.height)&&(a+="\x26height\x3d"+b);this.width&&(b="function"===typeof this.width?this.width():this.width)&&(a+="\x26width\x3d"+b);this.length&&(b="function"===typeof this.length?this.length():this.length)&&(a+="\x26length\x3d"+
b);this.weight&&(b="function"===typeof this.weight?this.weight():this.weight)&&(a+="\x26weight\x3d"+b);this.maxload&&(b="function"===typeof this.maxload?this.maxload():this.maxload)&&(a+="\x26max-load\x3d"+b);this.dangerousGoods&&(b="function"===typeof this.dangerousGoods?this.dangerousGoods():this.dangerousGoods)&&(a+="\x26dangerous-goods\x3d"+b);this.useTraffic&&((b="function"===typeof this.useTraffic?this.useTraffic():this.useTraffic)||(a+="\x26use-traffic\x3d"+b));if(this.queryParam)for(var c in this.queryParam)this.queryParam.hasOwnProperty(c)&&
(a="function"===typeof this.queryParam[c]?a+("\x26"+c+"\x3d"+this.queryParam[c]()):a+("\x26"+c+"\x3d"+this.queryParam[c]));return a},setProduct:function(a){this.product=a},setTrafficTime:function(a){this.trafficTime=a},setSearchTime:function(a){this.searchtime=a},setRainOffsetTime:function(a){this.rainOffsetTime=a},setTimestamp:function(a){this.timestamp=a},setAnnotation:function(a){this.annotation=a},setUid:function(a){this.uid=a},setDefinedRegulation:function(a){this.definedRegulation=a},setDefinedRegulationCategory:function(a){this.drCategory=
a},setRegulationTime:function(a){this.regulationTime=a},setDisplacement:function(a){this.displacement=a},setTandem:function(a){this.tandem=a},setDrawArrow:function(a){this.drawArrow=a},setTfsrc:function(a){this.tfsrc=a},setRoadregulation:function(a){this.roadregulation=a},setCarType:function(a){this.carType=a},setHeight:function(a){this.height=a},setWidth:function(a){this.width=a},setLength:function(a){this.length=a},setWeight:function(a){this.weight=a},setMaxload:function(a){this.maxload=a},setDangerousGoods:function(a){this.dangerousGoods=
a},setUseTraffic:function(a){this.useTraffic=a},addQueryParam:function(a,b){this.queryParam[a]=b}});navitime.geo.namespace("navitime.geo.base");navitime.geo.base.RequestPathCreator=navitime.geo.base.Class({x:null,y:null,z:null,_tileSize:null,_tileType:null,initialize:function(a,b,c){this.x=a.x;this.y=a.y;this.z=a.z;this._tileSize=b;this._tileType=c},clone:function(){return new navitime.geo.base.RequestPathCreator({x:this.x,y:this.y,z:this.z},this._tileSize,this._tileType)},createPath:function(){return("tile"===this._tileType?"":this._tileType+"/")+this._tileSize+"/"+this.z+"/"+this.y+"/"+this.x}});navitime.geo.namespace("navitime.geo.event");
navitime.geo.event.BrowserEventController={KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,observers:null,addEvent:function(a,b,c,d){d=d||!1;"keypress"==b&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||a.attachEvent)&&(b="keydown");null==this.observers&&(this.observers={});var e=a.id;this.observers[e]||(this.observers[e]=[]);this.observers[e].push({element:a,name:b,observer:c,useCapture:d});a.addEventListener?a.addEventListener(b,
c,d):a.attachEvent&&a.attachEvent("on"+b,c)},removeEvent:function(a,b,c,d){d=d||!1;"keypress"==b&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||a.attachEvent)&&(b="keydown");a.removeEventListener?a.removeEventListener(b,c,d):a&&a.detachEvent&&a.detachEvent("on"+b,c)},removeElementEvents:function(a){if(a=this.observers[a.id])for(var b=0,c=a.length;b<c;b++){var d=a[b];this.removeEvent(d.element,d.name,d.observer,d.useCapture)}},isLeftClick:function(a){return a.which&&1==a.which||a.button&&
1==a.button},isRightClick:function(a){return a.which&&3==a.which||a.button&&2==a.button},stop:function(a,b){b||(a.preventDefault?a.preventDefault():a.returnValue=!1);a.stopPropagation?a.stopPropagation():a.cancelBubble=!0}};navitime.geo.namespace("navitime.geo.event");
navitime.geo.event.InnerEventController=navitime.geo.base.Class({BROWSER_EVENTS:"mouseover mouseout mousedown mouseup mousemove click dblclick resize focus blur mousewheel DOMMouseScroll wheel touchstart touchmove touchend gesturestart gesturechange gestureend pointerdown MSPointerDown MSGestureChange MSGestureEnd".split(" "),_object:null,_element:null,_eventTypes:null,_listeners:null,_eventHandler:null,_fallThrough:null,initialize:function(a,b,c,d){this._object=a;this._listeners={};this._fallThrough=
d;this._eventTypes=[];if(null!=c)for(a=0,d=c.length;a<d;a++)this.addEventType(c[a]);this._eventHandler=navitime.geo.Util.Function.bindAsEventListener(this._handleBrowserEvent,this);b&&this.attachToElement(b)},destroy:function(){this.detachFromElement();this._fallThrough=this._eventTypes=this._object=this._listeners=this._element=null},attachToElement:function(a){this._element=a;this._element.hasScrollEvent||(navitime.geo.event.BrowserEventController.addEvent(window,"scroll",navitime.geo.Util.Function.bind(this._clearMouseCache,
this)),this._element.hasScrollEvent=!0);for(var b=0;b<this.BROWSER_EVENTS.length;b++){var c=this.BROWSER_EVENTS[b];this.addEventType(c);navitime.geo.event.BrowserEventController.addEvent(a,c,this._eventHandler)}navitime.geo.event.BrowserEventController.addEvent(a,"dragstart",navitime.geo.event.BrowserEventController.stop)},detachFromElement:function(){if(this._element){for(var a=0;a<this.BROWSER_EVENTS.length;a++)navitime.geo.event.BrowserEventController.removeEvent(this._element,this.BROWSER_EVENTS[a],
this._eventHandler);this._element.hasScrollEvent&&navitime.geo.event.BrowserEventController.removeEvent(window,"scroll",navitime.geo.Util.Function.bind(this._clearMouseCache,this))}},addEventType:function(a){this._listeners[a]||(this._eventTypes.push(a),this._listeners[a]=[])},register:function(a,b,c){-1===navitime.geo.Util.indexOf(this._eventTypes,a)&&this.addEventType(a);null!=c&&(null==b&&(b=this._object),this._listeners[a].push({obj:b,func:c}))},registerPriority:function(a,b,c){-1===navitime.geo.Util.indexOf(this._eventTypes,
a)&&this.addEventType(a);null!=c&&(null==b&&(b=this.obj),this._listeners[a].unshift({obj:b,func:c}))},unregister:function(a,b,c){null==b&&(b=this._object);a=this._listeners[a];if(null!=a)for(var d=0,e=a.length;d<e;d++)if(a[d].obj==b&&a[d].func==c){a.splice(d,1);break}},triggerEvent:function(a,b){var c=this._listeners[a];if(c&&0!=c.length){null==b&&(b={});b.object=this._object;b.element=this._element;b.type||(b.type=a);b.stop=function(){navitime.geo.event.BrowserEventController.stop(b,!0)};b.getLatLng||
(b.getLatLng=function(){});for(var c=c.slice(),d,e=0,f=c.length;e<f&&(d=c[e],d=d.func.apply(d.obj,[b]),void 0==d||!1!=d);e++);!1===this._fallThrough&&navitime.geo.event.BrowserEventController.stop(b,!0);return d}},_handleBrowserEvent:function(a){a.xy=this._getMousePosition(a);if(this._object&&this._object.getMap){var b=this._object.getMap();if(b){var c=a.xy[0]||a.xy;a.getLatLng=function(){var a=b.getViewDivPixel();return b.getMovedLatLng(a.left+b._displayBounds.getCenterX()-c.x,a.top+b._displayBounds.getCenterY()-
c.y)}}}this.triggerEvent(a.type,a)},_getMousePosition:function(a){if(this._element){this._element.scrolls||(this._element.scrolls=[document.documentElement.scrollLeft||document.body.scrollLeft,document.documentElement.scrollTop||document.body.scrollTop]);this._element.lefttop||(this._element.lefttop=[document.documentElement.clientLeft||0,document.documentElement.clientTop||0]);this._element.offsets=navitime.geo.Util.pagePosition(this._element);this._element.offsets[0]+=this._element.scrolls[0];this._element.offsets[1]+=
this._element.scrolls[1];if(a.touches){var b=[],c=[];if("touchstart"===a.type||"touchmove"===a.type){for(var d=0,e=a.touches.length;d<e;d++)b.push({x:Math.round(a.touches[d].pageX)-this._element.offsets[0]-this._element.lefttop[0],y:Math.round(a.touches[d].pageY)-this._element.offsets[1]-this._element.lefttop[1]});this._xy=b}else if("touchend"===a.type){var b=this._xy,f=Math.round(a.changedTouches[0].pageX)-this._element.offsets[0]-this._element.lefttop[0];a=Math.round(a.changedTouches[0].pageY)-
this._element.offsets[1]-this._element.lefttop[1];d=0;for(e=this._xy.length;d<e;d++)f!==this._xy[d].x&&a!==this._xy[d].y&&c.push(this._xy[d]);this._xy=0===b.length?null:c}return b}return{x:Math.round(a.clientX)+this._element.scrolls[0]-this._element.offsets[0]-this._element.lefttop[0],y:Math.round(a.clientY)+this._element.scrolls[1]-this._element.offsets[1]-this._element.lefttop[1]}}},_clearMouseCache:function(){this._element&&(this._element.scrolls=null,this._element.lefttop=null,this._element.offsets=
null)}});navitime.geo.namespace("navitime.geo.ControlPosition");navitime.geo.ControlPosition.BOTTOM=6;navitime.geo.ControlPosition.BOTTOM_LEFT=7;navitime.geo.ControlPosition.BOTTOM_RIGHT=5;navitime.geo.ControlPosition.LEFT=8;navitime.geo.ControlPosition.RIGHT=4;navitime.geo.ControlPosition.TOP=2;navitime.geo.ControlPosition.TOP_LEFT=1;navitime.geo.ControlPosition.TOP_RIGHT=3;navitime.geo.ControlPosition.CENTER=0;navitime.geo.namespace("navitime.geo.DisplayType");navitime.geo.DisplayType.ALWAYS=1;navitime.geo.DisplayType.FOCUSED=2;navitime.geo.namespace("navitime.geo");
navitime.geo.Icon=navitime.geo.base.Class({url:null,bounds:null,imageDiv:null,iconCenter:null,_afterLoad:null,_onloadListener:null,_timerId:null,_visibility:!0,_offsetX:0,_offsetY:0,initialize:function(a,b){b=b||{};this.url=a;if(void 0===b.centerType||null===b.centerType)b.centerType=6;b.pixelOffset&&b.pixelOffset.x&&(this._offsetX=b.pixelOffset.x);b.pixelOffset&&b.pixelOffset.y&&(this._offsetY=b.pixelOffset.y);if(b.size)this.bounds=new navitime.geo.BoundsInfo(this._offsetX,this._offsetX+(b.size.width||
0),this._offsetY,this._offsetY+(b.size.height||0)),this._setCenterPoint(b.centerType),this.imageDiv=navitime.geo.DOM.createAlphaImage(this.bounds,b.size,a);else{this.imageDiv=navitime.geo.DOM.createAlphaImage();var c=this.imageDiv.childNodes[0];c.style.visibility="hidden";this._onloadListener=navitime.geo.Util.Function.bind(function(){this._timerId=window.setTimeout(navitime.geo.Util.Function.bind(function(){var d=navitime.geo.Util.getRealImageSize(c);this.bounds=new navitime.geo.BoundsInfo(this._offsetX,
this._offsetX+d.width,this._offsetY,this._offsetY+d.height);navitime.geo.DOM.addElementOption(this.imageDiv,this.bounds,d,null,null,null,null,{src:a});navitime.geo.DOM.addElementOption(c,null,d);this._setCenterPoint(b.centerType);this._afterLoad&&(this._afterLoad(),this.moveTo=this._moveTo,this._afterLoad=null);c.style.visibility=""},this),50);navitime.geo.event.BrowserEventController.removeEvent(c,"load",this._onloadListener)},this);navitime.geo.event.BrowserEventController.addEvent(c,"load",this._onloadListener);
c.src=a}this.imageDiv.className="ntgeo-icon"},destroy:function(){this.bounds=this.url=null;window.clearTimeout(this._timerId);this._timerId=null;navitime.geo.event.BrowserEventController.removeEvent(this.imageDiv.childNodes[0],"load",this._onloadListener);this.imageDiv.parentNode&&this.imageDiv.parentNode.removeChild(this.imageDiv);this.imageDiv=null},clone:function(){return new navitime.geo.Icon(this.url,this.bounds)},moveTo:function(a,b){this.bounds?this._moveTo(a,b):this._afterLoad=navitime.geo.Util.Function.bind(this._moveTo,
this,a,b)},_moveTo:function(a,b){this.bounds=this.bounds.move(a+this.iconCenter.x,b+this.iconCenter.y);var c=this.imageDiv.style;void 0!==c.transform?c.transform="translate("+this.bounds.left+"px, "+this.bounds.top+"px)":(c.left=this.bounds.left+"px",c.top=this.bounds.top+"px")},display:function(a){this.imageDiv.style.display=a?"":"none"},_setCenterPoint:function(a){switch(a){case navitime.geo.ControlPosition.CENTER:this.iconCenter={x:-1*Math.floor(this.bounds.getWidth()/2),y:-1*Math.floor(this.bounds.getHeight()/
2)};break;case navitime.geo.ControlPosition.TOP_LEFT:this.iconCenter={x:0,y:0};break;case navitime.geo.ControlPosition.TOP:this.iconCenter={x:-1*Math.floor(this.bounds.getWidth()/2),y:0};break;case navitime.geo.ControlPosition.TOP_RIGHT:this.iconCenter={x:-1*this.bounds.getWidth(),y:0};break;case navitime.geo.ControlPosition.RIGHT:this.iconCenter={x:-1*this.bounds.getWidth(),y:-1*Math.floor(this.bounds.getHeight()/2)};break;case navitime.geo.ControlPosition.BOTTOM_RIGHT:this.iconCenter={x:-1*this.bounds.getWidth(),
y:-1*this.bounds.getHeight()};break;case navitime.geo.ControlPosition.BOTTOM:this.iconCenter={x:-1*Math.floor(this.bounds.getWidth()/2),y:-1*this.bounds.getHeight()};break;case navitime.geo.ControlPosition.BOTTOM_LEFT:this.iconCenter={x:0,y:-1*this.bounds.getHeight()};break;case navitime.geo.ControlPosition.LEFT:this.iconCenter={x:0,y:-1*Math.floor(this.bounds.getHeight()/2)};break;default:this.iconCenter={x:-1*Math.floor(this.bounds.getWidth()/2),y:-1*this.bounds.getHeight()}}},setVisibility:function(a){this._visibility=
a;this.imageDiv.style.visibility=this._visibility?"":"hidden"},changeImageUrl:function(a){var b=this.imageDiv.childNodes[0];b&&(this.url=b.src=a)}});navitime.geo.namespace("navitime.geo.handler");
navitime.geo.handler.AbstractHandler=navitime.geo.base.Class({_control:null,_callbacks:null,_events:null,map:null,isActive:!1,initialize:function(a,b,c){this._control=a;this._callbacks=b;a.map&&(this.map=a.map.getMap());this._events=c?c:this.map.events},destroy:function(){this.deactivate();this._events=this.map=this._control=this._callbacks=null},activate:function(){if(this.isActive)return!1;for(var a=navitime.geo.event.InnerEventController.prototype.BROWSER_EVENTS,b=0,c=a.length;b<c;b++)this[a[b]]&&
this._events.registerPriority(a[b],this,this[a[b]]);return this.isActive=!0},deactivate:function(){if(!this.isActive)return!1;for(var a=navitime.geo.event.InnerEventController.prototype.BROWSER_EVENTS,b=0,c=a.length;b<c;b++)this[a[b]]&&this._events.unregister(a[b],this,this[a[b]]);this.isActive=!1;return!0},callback:function(a,b){a&&this._callbacks[a]&&this._callbacks[a].apply(this._control,b)}});navitime.geo.namespace("navitime.geo.handler");
navitime.geo.handler.Click=navitime.geo.base.Class(navitime.geo.handler.AbstractHandler,{singleClick:!0,doubleClick:!0,rightDoubleClick:!0,DOUBLE_CLICK_DELAY:300,stopSingle:!1,stopDouble:!1,_timerId:null,_rightclickTimerId:null,initialize:function(a,b,c){navitime.geo.handler.AbstractHandler.prototype.initialize.apply(this,arguments)},mousedown:function(a){},mouseup:function(a){return navitime.geo.event.BrowserEventController.isRightClick(a)?this.rightclick(a):!0},rightclick:function(a){if(null!=this._rightclickTimerId&&
!0===this.rightDoubleClick)return this._clearTimer(),this.callback("dblrightclick",[a]),!this.stopDouble;a=this.doubleClick?navitime.geo.Util.extend({},a):this.callback("rightclick",[a]);a=navitime.geo.Util.Function.bind(this.delayedRightCall,this,a);this._rightclickTimerId=window.setTimeout(a,this.DOUBLE_CLICK_DELAY);return!this.stopSingle},delayedRightCall:function(a){this._rightclickTimerId=null;a&&this.callback("rightclick",[a]);return!this.stopSingle},click:function(a){null!=this._timerId?this._clearTimer():
(a=this.singleClick?navitime.geo.Util.extend({},a):null,this._timerId=window.setTimeout(navitime.geo.Util.Function.bind(this._delayedCall,this,a),this.DOUBLE_CLICK_DELAY));return!this.stopSingle},dblclick:function(a){this.doubleClick&&this.callback("dblclick",[a]);this._clearTimer();return!this.stopDouble},_clearTimer:function(){null!=this._timerId&&(window.clearTimeout(this._timerId),this._timerId=null);null!=this._rightclickTimerId&&(window.clearTimeout(this._rightclickTimerId),this._rightclickTimerId=
null)},_delayedCall:function(a){this._timerId=null;a&&this.callback("click",[a])}});navitime.geo.namespace("navitime.geo.handler");
navitime.geo.handler.Drag=navitime.geo.base.Class(navitime.geo.handler.AbstractHandler,{_startXY:null,_endXY:null,_boobyXY:null,_oldOnselectstart:null,_isIE:!1,_documentEvents:null,initialize:function(a,b,c){navitime.geo.handler.AbstractHandler.prototype.initialize.apply(this,arguments);this._isIE=!!window.ActiveXObject},destroy:function(){this._documentEvents&&this._destroyDocumentEvents();this._endXY=this._startXY=null;this.isWait=!1;this._oldOnselectstart=null;navitime.geo.handler.AbstractHandler.prototype.destroy.apply(this,
arguments)},activate:function(){if(this.isActive)return!1;this._events.registerPriority("mousedown",this,this.mousedown);return this.isActive=!0},deactivate:function(){if(!this.isActive)return!1;this._events.unregister("mousedown",this,this.mousedown);this.isActive=!1;return!0},mousedown:function(a){return navitime.geo.event.BrowserEventController.isLeftClick(a)?(null!==this._documentEvents&&this._destroyDocumentEvents(),this._documentEvents=new navitime.geo.event.InnerEventController(this),this._documentEvents.BROWSER_EVENTS=
["mouseup","mousemove"],this._documentEvents.attachToElement(document),this._documentEvents.register("mousemove",this,this.mousemove),this._documentEvents.register("mouseup",this,this.mouseup),this._isIE&&this.map._parentDiv.setCapture(),this._endXY=this._startXY=a.xy,this.callback("down",[a]),navitime.geo.event.BrowserEventController.stop(a,!0),this._oldOnselectstart||(this._oldOnselectstart=document.onselectstart?document.onselectstart:function(){return!0},document.onselectstart=function(){return!1}),
!0):!1},mousemove:function(a){this._addBrowserStatus(a);if(!this._endXY||a.xy.x==this._endXY.x&&a.xy.y==this._endXY.y)return!1;this.callback("move",[a]);this._oldOnselectstart||(this._oldOnselectstart=document.onselectstart,document.onselectstart=function(){return!1});this._boobyXY={x:this._endXY.x,y:this._endXY.y,timeStamp:this._endXY.timeStamp};this._endXY=a.xy;this._endXY.timeStamp=a.timeStamp?a.timeStamp:(new Date).getTime();return!0},mouseup:function(a){return navitime.geo.event.BrowserEventController.isLeftClick(a)?
(this._addBrowserStatus(a),this._isIE&&this.map._parentDiv.releaseCapture(),this._destroyDocumentEvents(),a.time=a.timeStamp?a.timeStamp:(new Date).getTime(),this._startXY!=this._endXY?this.callback("dragged",[a]):this.callback("cancel",[a]),document.onselectstart=this._oldOnselectstart,this._boobyXY=this._endXY=this._startXY=null,!0):!1},_destroyDocumentEvents:function(){this._documentEvents.destroy();this._documentEvents=null},_addBrowserStatus:function(a){var b=this._events._element;a.xy.x-=b.offsets[0];
a.xy.y-=b.offsets[1];a.xy.x+=b.scrolls[0];a.xy.y+=b.scrolls[1];a.xy.x-=b.lefttop[0];a.xy.y-=b.lefttop[1]}});navitime.geo.namespace("navitime.geo.handler");
navitime.geo.handler.MouseWheel=navitime.geo.base.Class(navitime.geo.handler.AbstractHandler,{initialize:function(a,b,c){navitime.geo.handler.AbstractHandler.prototype.initialize.apply(this,arguments)},DOMMouseScroll:function(a){this._wheelZoom(a);navitime.geo.event.BrowserEventController.stop(a,!1)},mousewheel:function(a){this._wheelZoom(a);navitime.geo.event.BrowserEventController.stop(a,!1)},wheel:function(a){this._wheelZoom(a);navitime.geo.event.BrowserEventController.stop(a,!1)},_wheelZoom:function(a){var b=
0;a||(a=window.event);a.wheelDelta?(b=a.wheelDelta/120,window.opera&&9.2>window.opera.version()&&(b=-b)):a.deltaY?b=-Math.sign(a.deltaY):a.detail&&(b=-a.detail/3);0>b?this.callback("down",[a,b]):this.callback("up",[a,b])}});navitime.geo.namespace("navitime.geo.handler");
navitime.geo.handler.Keyboard=navitime.geo.base.Class(navitime.geo.handler.AbstractHandler,{KEY_EVENTS:["keydown","keyup","keypress"],_eventListener:null,initialize:function(a,b,c){navitime.geo.handler.AbstractHandler.prototype.initialize.apply(this,arguments);this._eventListener=navitime.geo.Util.Function.bindAsEventListener(this._handleKeyEvent,this)},destroy:function(){this.deactivate();this._eventListener=null;navitime.geo.handler.AbstractHandler.prototype.destroy.apply(this,arguments)},activate:function(){if(navitime.geo.handler.AbstractHandler.prototype.activate.apply(this,
arguments)){for(var a=0,b=this.KEY_EVENTS.length;a<b;a++)navitime.geo.event.BrowserEventController.addEvent(document,this.KEY_EVENTS[a],this._eventListener);return!0}return!1},deactivate:function(){if(navitime.geo.handler.AbstractHandler.prototype.deactivate.apply(this,arguments)){for(var a=0,b=this.KEY_EVENTS.length;a<b;a++)navitime.geo.event.BrowserEventController.removeEvent(document,this.KEY_EVENTS[a],this._eventListener);return!0}return!1},_handleKeyEvent:function(a){this.callback(a.type,[a])}});navitime.geo.namespace("navitime.geo.control");
navitime.geo.control.AbstractControl=navitime.geo.base.Class({EVENT_TYPES:["activate","deactivate"],id:null,div:null,map:null,events:null,isActive:!1,handlers:null,initialize:function(a){this.id=a;this.div=navitime.geo.DOM.create("div","ntgeo-control");this.events=new navitime.geo.event.InnerEventController(this,null,this.EVENT_TYPE);this.handlers={};this.setUnSelectable()},destroy:function(){if(this.handlers){for(var a in this.handlers)this.handlers.hasOwnProperty(a)&&"function"==typeof this.handlers[a].destroy&&
this.handlers[a].destroy();this.handlers=null}this.events&&(this.events.destroy(),this.evens=null);this.map&&(this.map.removeControl(this),this.map=null);this.div=null},setMap:function(a){if(a)return this.map=a,this.map.addControl(this)&&this._onAdd(),this.activate(),!0;this.map&&(this.map.removeControl(this),this.map=null);this.deactivate();return!1},_onAdd:function(){},activate:function(){if(this.isActive)return!1;if(this.handlers)for(var a in this.handlers)this.handlers.hasOwnProperty(a)&&"function"==
typeof this.handlers[a].activate&&this.handlers[a].activate();this.isActive=!0;this.events.triggerEvent("activate");return!0},deactivate:function(){if(!this.isActive)return!1;if(this.handlers)for(var a in this.handlers)this.handlers.hasOwnProperty(a)&&"function"==typeof this.handlers[a].deactivate&&this.handlers[a].deactivate();this.isActive=!1;this.events.triggerEvent("deactivate");return!0},setUnSelectable:function(){this.div.setAttribute("unselectable","on",0);this.div.onselectstart=function(){return!1}},
getMap:function(){return this.map}});navitime.geo.namespace("navitime.geo.control");
navitime.geo.control.MouseControl=navitime.geo.base.Class(navitime.geo.control.AbstractControl,{_timerId:null,_total:0,WHEEL_DELAY:100,TRACKPAD_DELAY:100,_isDrag:!1,_setTransForm:null,_setTransFormOrigin:null,_useTrackpad:!1,initialize:function(){navitime.geo.control.AbstractControl.prototype.initialize.apply(this,["MouseCtl"]);this._setTransForm=navitime.geo.base.CSS3Style.setTransForm;this._setTransFormOrigin=navitime.geo.base.CSS3Style.setTransFormOrigin},_onAdd:function(){this.map._mouseKey=this.id;
this.handlers.click=new navitime.geo.handler.Click(this,{rightclick:this._defaultRightClick,dblclick:this._defaultDblClick,dblrightclick:this._defaultDblRightClick});this.handlers.wheel=new navitime.geo.handler.MouseWheel(this,{up:this._wheelUp,down:this._wheelDown});this.handlers.drag=new navitime.geo.handler.Drag(this,{down:this._dragStart,cancel:this._cancelDrag,move:this._move,dragged:this._drag})},_defaultRightClick:function(a){this.map.events.triggerEvent("rightclick",a)},_defaultDblClick:function(a){a.xy.x-=
this.map._displayBounds.getCenterX();a.xy.y-=this.map._displayBounds.getCenterY();this.map.zoomToCenter(1,a.xy.x,a.xy.y)},_defaultDblRightClick:function(a){a.xy.x-=this.map._displayBounds.getCenterX();a.xy.y-=this.map._displayBounds.getCenterY();this.map.zoomToCenter(-1,a.xy.x,a.xy.y);this.map.events.triggerEvent("dblrightclick",a)},_wheelUp:function(a,b){this._wheelChange(a,b||1)},_wheelDown:function(a,b){this._wheelChange(a,b||-1)},_wheelChange:function(a,b){var c;if(a.ctrlKey){if(this._useTrackpad){c=
this.map._layerContainerDiv;-1===c.className.indexOf("ntgeo-pinch-gesture")&&(c.className+=" ntgeo-pinch-gesture",this.map._baseLayer._bgDiv.style.visibility="hidden");null!=this._timerId&&this.clearTimer();this._total+=b;c=0<this._total?Math.ceil(this._total/15):Math.floor(this._total/15);c=this.map._checkZoomDelta(c);if(0===c)return!1;var d=this.map._baseLayer.div;this._setTransFormOrigin(d,-this.map._translateX+a.xy.x+"px "+(-this.map._translateY+a.xy.y)+"px");this._setTransForm(d,"scale("+Math.pow(2,
this._total/15)+") translate("+-this.map._baseLayer._translateX+"px, "+-this.map._baseLayer._translateY+"px)");this._timerId=window.setTimeout(navitime.geo.Util.Function.bind(this._trackpadZoomCall,this,a,c),this.TRACKPAD_DELAY);this.map._layerContainerDiv.className=this.map._layerContainerDiv.className.replace(" ntgeo-pinch-gesture","")}}else null!=this._timerId&&this.clearTimer(),this._total+=b,c=0<this._total?Math.ceil(this._total/5):Math.floor(this._total/5),0!=c&&(this._timerId=window.setTimeout(navitime.geo.Util.Function.bind(this._delayedZoomCall,
this,a,c),this.WHEEL_DELAY))},_dragStart:function(a){this._isDrag=this.map.isMovingStop=!0;this.map.events.triggerEvent("panstart",a);this.map.events.triggerEvent("dragstart",a)},_cancelDrag:function(a){this._isDrag=this.map.isMovingStop=!1;this.map.events.triggerEvent("dragcancel",a)},_move:function(a){this._isDrag&&(this.map._moveToPix(this.handlers.drag._endXY.x-a.xy.x,this.handlers.drag._endXY.y-a.xy.y),this.map.events.triggerEvent("drag",a))},_drag:function(a){this._isDrag=this.map.isMovingStop=
!1;var b,c,d;40>a.time-this.handlers.drag._endXY.timeStamp?(b=this.handlers.drag._boobyXY.x-a.xy.x,c=this.handlers.drag._boobyXY.y-a.xy.y,d=a.time-this.handlers.drag._boobyXY.timeStamp):(b=this.handlers.drag._endXY.x-a.xy.x,c=this.handlers.drag._endXY.y-a.xy.y,d=a.time-this.handlers.drag._endXY.timeStamp);var e=0,f=0;200>d&&(d=0===d?1:d,b=0<b?Math.ceil(13*(b/d)):Math.floor(13*(b/d)),c=0<c?Math.ceil(13*(c/d)):Math.floor(13*(c/d)),b=80<=b?80:-80>=b?-80:b,c=80<=c?80:-80>=c?-80:c,e=Math.ceil(0-Math.pow(10*
Math.round(b/10),2)/-10),f=Math.ceil(0-Math.pow(10*Math.round(c/10),2)/-10),e*=0<b?1:-1,f*=0<c?1:-1);this.map._moving(e,f);this.map.events.triggerEvent("dragend",a)},_delayedZoomCall:function(a,b){a.xy.x-=this.map._displayBounds.getCenterX();a.xy.y-=this.map._displayBounds.getCenterY();this.map.zoomTo(b,a.xy.x,a.xy.y);this._total=0;return!0},_trackpadZoomCall:function(a,b){a.xy.x-=this.map._displayBounds.getCenterX();a.xy.y-=this.map._displayBounds.getCenterY();this.map.zoomTo(b,a.xy.x,a.xy.y,{animation:!1});
this._total=0;return!0},clearTimer:function(){null!=this._timerId&&(window.clearTimeout(this._timerId),this._timerId=null)},enableDragging:function(){return this.handlers.drag.activate()},disableDragging:function(){return this.handlers.drag.deactivate()},enableWheel:function(){return this.handlers.wheel.activate()},disableWheel:function(){return this.handlers.wheel.deactivate()},enableClick:function(){return this.handlers.click.activate()},disableClick:function(){return this.handlers.click.deactivate()},
enableDoubleClick:function(){this.handlers.click.doubleClick=!0;this.handlers.click.rightDoubleClick=!0},disableDoubleClick:function(){this.handlers.click.doubleClick=!1;this.handlers.click.rightDoubleClick=!1},enableTrackpadZoom:function(){this._useTrackpad=!0},disableTrackpadZoom:function(){this._useTrackpad=!1}});navitime.geo.namespace("navitime.geo.control");
navitime.geo.control.ZoomBarControl=navitime.geo.base.Class(navitime.geo.control.AbstractControl,{ZOOM_MINUS_URL:"zoom-minus.png",ZOOM_PLUS_URL:"zoom-plus.png",ZOOM_BAR_URL:"zoombar.png",ZOOM_SLIDER_URL:"slider.png",zoomStartY:5,zoomStartX:10,_defaultZIndex:1E3,_url:null,_plusIcon:null,_minusIcon:null,_sliderIcon:null,_zoomBarIcon:null,_documentEvents:null,_isCapture:!1,_sliderEvents:null,_zoomBarEvents:null,_zoomPlusListener:null,_zoomMinusListener:null,_rightClickListener:null,_isInit:!1,initialize:function(a){navitime.geo.control.AbstractControl.prototype.initialize.apply(this,
["ZoomBarCtl"]);this._url=a;this._plusIcon=navitime.geo.DOM.createImage(null,null,null,"absolute",null,null,!0);this._minusIcon=navitime.geo.DOM.createImage(null,null,null,"absolute",null,null,!0);this._zoomBarIcon=navitime.geo.DOM.createImage(null,null,null,"absolute",null,null,!0);this._sliderIcon=navitime.geo.DOM.createImage(null,null,null,"absolute",null,null,!0);this._count=0;this.div.className+=" ntgeo-zoombar"},_onAdd:function(){this.map._zoomBarKey=this.id;this._url=this._url?this._url+(this._url.lastIndexOf("/")==
this._url.length-1?this.map._config.SERVICE_ID:"/"+this.map._config.SERVICE_ID):this.map._config.getFileRequestURL()+"/";this._onload(this._plusIcon);this._onload(this._zoomBarIcon);this._onload(this._minusIcon);this._onload(this._sliderIcon);this._plusIcon.src=this._url+this.ZOOM_PLUS_URL;this._minusIcon.src=this._url+this.ZOOM_MINUS_URL;this._zoomBarIcon.src=this._url+this.ZOOM_BAR_URL;this._sliderIcon.src=this._url+this.ZOOM_SLIDER_URL;this.div.appendChild(this._plusIcon);this.div.appendChild(this._minusIcon);
this.div.appendChild(this._zoomBarIcon);this.div.appendChild(this._sliderIcon);navitime.geo.base.CSS3Style&&navitime.geo.base.CSS3Style.USERSELECT&&(this.div.style[navitime.geo.base.CSS3Style.USERSELECT]="none");this.div.setAttribute("unselectable","on",0);this.div.onselectstart=function(){return!1};this.map._parentDiv.appendChild(this.div);this.map.events.register("zoomend",this,this._moveSliderPosition);this.map.events.register("moveend",this,this._moveSliderPosition);this._zoomPlusListener=navitime.geo.Util.Function.bindAsEventListener(function(a){this.map.zoomTo(1,
0,0);navitime.geo.event.BrowserEventController.stop(a,!0)},this);this._plusIcon.style.zIndex=this._defaultZIndex;this._zoomMinusListener=navitime.geo.Util.Function.bindAsEventListener(function(a){this.map.zoomTo(-1,0,0);navitime.geo.event.BrowserEventController.stop(a,!0)},this);this._minusIcon.style.zIndex=this._defaultZIndex;this._addSlider();this._rightClickListener=navitime.geo.Util.Function.bindAsEventListener(function(a){navitime.geo.event.BrowserEventController.isRightClick(a)&&navitime.geo.event.BrowserEventController.stop(a,
!0)},this);this.resize=function(){this.div.style.left=this.map._displayBounds.left+"px";this.div.style.top=this.map._displayBounds.top+"px"};this.map.events.register("resize",this,this.resize)},activate:function(){this.isActive||(this.div.style.visibility="",navitime.geo.event.BrowserEventController.addEvent(this._plusIcon,"dblclick",this._zoomPlusListener),navitime.geo.event.BrowserEventController.addEvent(this._plusIcon,"click",this._zoomPlusListener),navitime.geo.event.BrowserEventController.addEvent(this._plusIcon,
"touchend",this._zoomPlusListener),navitime.geo.event.BrowserEventController.addEvent(this._minusIcon,"dblclick",this._zoomMinusListener),navitime.geo.event.BrowserEventController.addEvent(this._minusIcon,"click",this._zoomMinusListener),navitime.geo.event.BrowserEventController.addEvent(this._minusIcon,"touchend",this._zoomMinusListener),this._zoomBarEvents.register("click",this,this._zoomBarAction),this._zoomBarEvents.register("dblclick",this,this._zoomBarAction),this._zoomBarEvents.register("touchend",
this,this._zoomBarAction),this._sliderEvents.register("mousedown",this,this._sliderMouseDown),navitime.geo.event.BrowserEventController.addEvent(this.div,"mouseup",this._rightClickListener));return navitime.geo.control.AbstractControl.prototype.activate.apply(this,arguments)},deactivate:function(){this.isActive&&(this.div.style.visibility="hidden",navitime.geo.event.BrowserEventController.removeEvent(this._plusIcon,"dblclick",this._zoomPlusListener),navitime.geo.event.BrowserEventController.removeEvent(this._plusIcon,
"click",this._zoomPlusListener),navitime.geo.event.BrowserEventController.removeEvent(this._plusIcon,"touchend",this._zoomPlusListener),navitime.geo.event.BrowserEventController.removeEvent(this._minusIcon,"dblclick",this._zoomMinusListener),navitime.geo.event.BrowserEventController.removeEvent(this._minusIcon,"click",this._zoomMinusListener),navitime.geo.event.BrowserEventController.removeEvent(this._minusIcon,"touchend",this._zoomMinusListener),this._zoomBarEvents.unregister("click",this,this._zoomBarAction),
this._zoomBarEvents.unregister("dblclick",this,this._zoomBarAction),this._zoomBarEvents.unregister("touchend",this,this._zoomBarAction),this._sliderEvents.unregister("mousedown",this,this._sliderMouseDown),navitime.geo.event.BrowserEventController.removeEvent(this.div,"mouseup",this._rightClickListener));return navitime.geo.control.AbstractControl.prototype.deactivate.apply(this,arguments)},destroy:function(){this._url=null;this.deactivate();this._documentEvents&&(this._documentEvents.destroy(),this._documentEvents=
null);this._sliderEvents&&(this._sliderEvents.destroy(),this._sliderEvents=null);this._zoomBarEvents&&(this._zoomBarEvents.destroy(),this._zoomBarEvents=null);this.map.events.unregister("zoomend",this,this._moveSliderPosition);this.map.events.unregister("moveend",this,this._moveSliderPosition);this.map.events.unregister("resize",this,this.resize);return navitime.geo.control.AbstractControl.prototype.destroy.apply(this,arguments)},_addSlider:function(){this._zoomBarIcon.style.zIndex=this._defaultZIndex;
this.div.appendChild(this._zoomBarIcon);this._zoomBarEvents=new navitime.geo.event.InnerEventController(this);this._zoomBarEvents.BROWSER_EVENTS=["dblclick","click","touchstart","touchmove","touchend"];this._zoomBarEvents.attachToElement(this._zoomBarIcon);this._sliderIcon.style.zIndex=this._defaultZIndex+100;this.div.appendChild(this._sliderIcon);this._sliderEvents=new navitime.geo.event.InnerEventController(this);this._sliderEvents.BROWSER_EVENTS=["mousedown","dblclick"];this._sliderEvents.attachToElement(this._sliderIcon);
this._sliderEvents.register("dblclick",this,function(a){navitime.geo.event.BrowserEventController.stop(a,!0)})},_zoomBarAction:function(a){var b=Math.round(parseInt(this._zoomBarIcon.style.height)/(this.map._zoomMax-this.map._zoomMin+2));a.xy=a.xy[0]?a.xy[0]:a.xy;b=this.map._zoomMax-Math.round((a.xy.y-b/2)/(b+1));this.map.zoomTo(b-this.map.getZoom(),0,0,{animation:!0});navitime.geo.event.BrowserEventController.stop(a,!0)},_sliderMouseDown:function(a){navitime.geo.event.BrowserEventController.isLeftClick(a)&&
!this._isCapture&&(this._sliderIcon.setCapture&&this._sliderIcon.setCapture(),this._documentEvents||(this._documentEvents=new navitime.geo.event.InnerEventController(this),this._documentEvents.BROWSER_EVENTS=["mouseup","mousemove"],this._documentEvents.attachToElement(document),this._documentEvents.register("mousemove",this,this._sliderMouseMove),this._documentEvents.register("mouseup",this,this._sliderMouseUp)),this._isCapture=!0);navitime.geo.event.BrowserEventController.stop(a,!0)},_sliderMouseMove:function(a){var b=
navitime.geo.Util.pagePosition(this._zoomBarIcon)[1];a.xy=a.xy[0]?a.xy[0]:a.xy;b<a.xy.y&&b+parseInt(this._zoomBarIcon.style.height)-Math.round(parseInt(this._sliderIcon.style.height)/2)>a.xy.y&&(this._sliderIcon.style.top=a.xy.y-navitime.geo.Util.pagePosition(this.div)[1]+"px",navitime.geo.event.BrowserEventController.stop(a,!0))},_sliderMouseUp:function(a){this._isCapture&&(this._sliderIcon.releaseCapture&&this._sliderIcon.releaseCapture(),this._documentEvents.destroy(),this._documentEvents=null,
this._isCapture=!1);a.xy=a.xy[0]?a.xy[0]:a.xy;a.xy.y-=navitime.geo.Util.pagePosition(this._zoomBarIcon)[1];this._zoomBarAction(a)},_moveSliderPosition:function(){if(this._isInit){var a=Math.round(parseInt(this._zoomBarIcon.style.height)/(this.map._zoomMax-this.map._zoomMin+2)),a=(this.map._zoomMax-this.map.getZoom())*a+Math.round(a/2-parseInt(this._sliderIcon.style.height)/2);this._sliderIcon.style.top=a+parseInt(this._zoomBarIcon.style.top)+(this.map._zoomMax-this.map.getZoom())+"px"}},_onload:function(a){a.style.visibility=
"hidden";var b=function(){window.setTimeout(navitime.geo.Util.Function.bind(function(){var b=navitime.geo.Util.getRealImageSize(a);this.bounds=new navitime.geo.BoundsInfo(0,b.width,0,b.height);navitime.geo.DOM.addElementOption(a,null,b);if(3===this._count){b=this._plusIcon.style;b.left=this.zoomStartX+"px";b.top=this.zoomStartY+"px";var d=this._zoomBarIcon.style;d.left=this.zoomStartX+parseInt(b.width)/2-parseInt(d.width)/2+"px";d.top=parseInt(b.top)+parseInt(b.height)-2+"px";var e=this._minusIcon.style;
e.left=this.zoomStartX+"px";e.top=parseInt(b.top)+parseInt(b.width)+parseInt(d.height)+"px";this._sliderIcon.style.left=this.zoomStartX-4+"px";this._isInit=!0;this._moveSliderPosition();this._plusIcon.style.visibility="";this._minusIcon.style.visibility="";this._zoomBarIcon.style.visibility="";this._sliderIcon.style.visibility=""}else this._count++},this),50);navitime.geo.event.BrowserEventController.removeEvent(a,"load",navitime.geo.Util.Function.bind(b,this))};navitime.geo.event.BrowserEventController.addEvent(a,
"load",navitime.geo.Util.Function.bind(b,this))}});navitime.geo.namespace("navitime.geo.control");
navitime.geo.control.MenuControl=navitime.geo.base.Class(navitime.geo.control.AbstractControl,{_menuList:null,_latlng:null,_style:null,initialize:function(a){navitime.geo.control.AbstractControl.prototype.initialize.apply(this,["MenuCtl"]);navitime.geo.base.CSS3Style&&navitime.geo.base.CSS3Style.USERSELECT&&(this.div.style[navitime.geo.base.CSS3Style.USERSELECT]="none");this.div.setAttribute("unselectable","on",0);this.div.onselectstart=function(){return!1};this.div.className+=" ntgeo-menu";this._style=
this.div.style;this._style.visibility="hidden";this._menuList=[];a=a||{};a.map&&this.setMap(a.map)},_onAdd:function(){this.handlers.click=new navitime.geo.handler.Click(this,{rightclick:this.rightClick})},destroy:function(){if(this._menuList){for(var a=0,b=this._menuList.length;a<b;a++)this._menuList[a].destroy();this._menuList=null}return navitime.geo.control.AbstractControl.prototype.destroy.apply(this,arguments)},addMenuColumn:function(a,b,c){a=new navitime.geo.control.MenuColumn(a,this,function(a){b.apply(c,
[a]);this.click(a)});this.div.appendChild(a._colmDiv);this._menuList.push(a)},rightClick:function(a){this._latlng=a.getLatLng();a=this.getMenuPosition(a);this._style.top=a.top+"px";this._style.left=a.left+"px";this._style.visibility="";this.map.events.register("mouseout",this,this.mouseOut);this.map.events.register("mouseup",this,this.click)},mouseOut:function(a){navitime.geo.Util.fixOnMouseOut(this.map.div,a)&&this.click()},click:function(a){this._style.visibility="hidden";this.map.events.unregister("mouseout",
this,this.mouseOut);this.map.events.unregister("click",this,this.click)},getMenuPosition:function(a){var b=a.xy.x,c=a.xy.y;a.xy.x+this.div.offsetWidth-this.map._displayBounds.left>this.map._displayBounds.getWidth()&&(b-=this.div.offsetWidth+4);a.xy.y+this.div.offsetHeight-this.map._displayBounds.top>this.map._displayBounds.getHeight()&&(c-=this.div.offsetHeight+4);return{top:c,left:b}},getLonLat:function(){return this._latlng},getLatLng:function(){return this._latlng}});
navitime.geo.control.MenuColumn=navitime.geo.base.Class({events:null,_colmDiv:null,initialize:function(a,b,c){this._colmDiv=navitime.geo.DOM.create("div","ntgeo-menuColm");a.nodeType?this._colmDiv.appendChild(a):this._colmDiv.innerHTML=a;this.events=new navitime.geo.event.InnerEventController(this,this._colmDiv,null,!1);this.events.register("click",b,c);this.events.register("mouseover",this,navitime.geo.Util.Function.bind(function(){this._colmDiv.className+=" ntgeo-menuColm-mouseover"},this));this.events.register("mouseout",
this,navitime.geo.Util.Function.bind(function(){this._colmDiv.className=this._colmDiv.className.replace(" ntgeo-menuColm-mouseover","")},this))},destroy:function(){null!=this.events&&this.events.destroy();this._colmDiv.parentNode&&this._colmDiv.parentNode.removeChild(this._colmDiv);this._colmDiv=null}});navitime.geo.namespace("navitime.geo.control");
navitime.geo.control.KeyboardControl=navitime.geo.base.Class(navitime.geo.control.AbstractControl,{_keyUpDown:0,_keyRightLeft:0,_timerId:null,_isCapture:!0,_documentEvents:null,_centerMarker:null,MOVE_MAX_SPEED:40,AFTER_MOVE:50,initialize:function(){navitime.geo.control.AbstractControl.prototype.initialize.apply(this,["KeyboardCtl"]);this._timerId={}},destroy:function(){this._documentEvents&&(this._documentEvents.destroy(),this._documentEvents=null);this._centerMarker&&(this._centerMarker.destroy(),
this._centerMarker=null);navitime.geo.control.AbstractControl.prototype.destroy.apply(this,arguments)},_onAdd:function(){this.map._keyBoardKey=this.id;this.handlers.keyboard=new navitime.geo.handler.Keyboard(this,{keydown:this.keydown,keyup:this.keyup});this.map.events.register("click",this,function(a){if(this._isCapture&&this.isActive){this._documentEvents&&(this._documentEvents.destroy(),this._documentEvents=null);this.handlers.keyboard.activate();var b=document.createElement("input");b.type="text";
b.style.visibility="hidden";b.style.position="absolute";var c=this.map._displayBounds.getWidth()-10,d=this.map._displayBounds.getHeight()-10;b.style.left=0<a.xy.x?c<a.xy.x?c+"px":a.xy.x+"px":"0px";b.style.top=0<a.xy.y?d<a.xy.y?d+"px":a.xy.y+"px":"0px";b.style.width="0px";b.style.height="0px";this.map._parentDiv.appendChild(b);b.focus();this.map._parentDiv.removeChild(b);this._isCapture=!1}});this.map.events.register("mouseout",this,function(a){navitime.geo.Util.fixOnMouseOut(this.map._parentDiv,a)&&
(!this._isCapture&&this.isActive)&&(null===this._documentEvents&&(this._documentEvents=new navitime.geo.event.InnerEventController(this),this._documentEvents.BROWSER_EVENTS=["click"],this._documentEvents.attachToElement(document),this._documentEvents.register("click",this,function(a){this.handlers.keyboard.deactivate();for(var c in this._timerId)this._timerId.hasOwnProperty(c)&&null!==this._timerId[c]&&(window.clearInterval(this._timerId[c]),this._timerId[c]=null);this._documentEvents&&(this._documentEvents.destroy(),
this._documentEvents=null)})),this._isCapture=!0)})},keyup:function(a){switch(a.keyCode){case navitime.geo.event.BrowserEventController.KEY_LEFT:window.clearInterval(this._timerId[a.keyCode]);this._timerId[a.keyCode]=null;this.map.isMovingStop=!1;this.map._moving(-this.AFTER_MOVE,0);break;case navitime.geo.event.BrowserEventController.KEY_RIGHT:window.clearInterval(this._timerId[a.keyCode]);this._timerId[a.keyCode]=null;this.map.isMovingStop=!1;this.map._moving(this.AFTER_MOVE,0);break;case navitime.geo.event.BrowserEventController.KEY_UP:window.clearInterval(this._timerId[a.keyCode]);
this._timerId[a.keyCode]=null;this.map.isMovingStop=!1;this.map._moving(0,-this.AFTER_MOVE);break;case navitime.geo.event.BrowserEventController.KEY_DOWN:window.clearInterval(this._timerId[a.keyCode]);this._timerId[a.keyCode]=null;this.map.isMovingStop=!1;this.map._moving(0,this.AFTER_MOVE);break;case 106:case 186:case 59:if(!1!==this.isCMAdd){if(null===this._centerMarker){a=new navitime.geo.parts.CenterMarker;if(!(this.isCMAdd=a.setMap(this.map)))break;this._centerMarker=a;this._centerMarker.changeVisibility(!1)}this._centerMarker.changeVisibility(!this._centerMarker.isVisibility())}break;
case 91:case 93:this.stopMove()}},_pressKey:null,keydown:function(a){if(!a.metaKey)switch(a.keyCode){case navitime.geo.event.BrowserEventController.KEY_LEFT:this._timerId[a.keyCode]||this.controlMove(a.keyCode,-1,0);break;case navitime.geo.event.BrowserEventController.KEY_RIGHT:this._timerId[a.keyCode]||this.controlMove(a.keyCode,1,0);break;case navitime.geo.event.BrowserEventController.KEY_UP:this._timerId[a.keyCode]||this.controlMove(a.keyCode,0,-1);break;case navitime.geo.event.BrowserEventController.KEY_DOWN:this._timerId[a.keyCode]||
this.controlMove(a.keyCode,0,1);break;case 43:case 61:case 187:case 107:this.map.zoomTo(1,0,0);break;case 109:case 189:case 95:this.map.zoomTo(-1,0,0);break;case navitime.geo.event.BrowserEventController.KEY_ESC:navitime.geo.event.BrowserEventController.stop(a,!1)}},controlMove:function(a,b,c){var d=0;this._timerId[a]=window.setInterval(navitime.geo.Util.Function.bind(function(){this.map._moveToPix(b*d,c*d);d<this.MOVE_MAX_SPEED&&d++},this),20)},outclick:function(){this.handlers.keyboard.deactivate()},
stopMove:function(){this._timerId[navitime.geo.event.BrowserEventController.KEY_LEFT]&&(window.clearInterval(this._timerId[navitime.geo.event.BrowserEventController.KEY_LEFT]),this._timerId[navitime.geo.event.BrowserEventController.KEY_LEFT]=null);this._timerId[navitime.geo.event.BrowserEventController.KEY_RIGHT]&&(window.clearInterval(this._timerId[navitime.geo.event.BrowserEventController.KEY_RIGHT]),this._timerId[navitime.geo.event.BrowserEventController.KEY_RIGHT]=null);this._timerId[navitime.geo.event.BrowserEventController.KEY_UP]&&
(window.clearInterval(this._timerId[navitime.geo.event.BrowserEventController.KEY_UP]),this._timerId[navitime.geo.event.BrowserEventController.KEY_UP]=null);this._timerId[navitime.geo.event.BrowserEventController.KEY_DOWN]&&(window.clearInterval(this._timerId[navitime.geo.event.BrowserEventController.KEY_DOWN]),this._timerId[navitime.geo.event.BrowserEventController.KEY_DOWN]=null)}});navitime.geo.namespace("navitime.geo.control");
navitime.geo.control.DivideLogicControl=navitime.geo.base.Class(navitime.geo.control.AbstractControl,{_options:{events:["panend","moveend","zoomend","resize"]},initialize:function(a){for(var b in a)this._options[b]=a[b];navitime.geo.control.AbstractControl.prototype.initialize.apply(this,["DivideLogicCtl"]);this._options.map&&this.setMap(this._options.map)},activate:function(){if(this.map&&!this.isActive)for(var a=this._options.events.length;a--;)this.map.events.register(this._options.events[a],this,
this._startDivide);return navitime.geo.control.AbstractControl.prototype.activate.apply(this,arguments)},deactivate:function(){if(this.map&&this.isActive)for(var a=this._options.events.length;a--;)this.map.events.unregister(this._options.events[a],this,this._startDivide);return navitime.geo.control.AbstractControl.prototype.deactivate.apply(this,arguments)},destroy:function(){this.deactivate();navitime.geo.control.AbstractControl.prototype.destroy.apply(this,arguments)},_startDivide:function(a){if(this._options.divider.isChange(this.map)){var b=
this._options.divider.divide(this.map);a.getPieces=function(){return b};this._options.listener(a)}}});navitime.geo.namespace("navitime.geo.control");
navitime.geo.control.PeriodicControl=navitime.geo.base.Class(navitime.geo.control.AbstractControl,{_interval:0,_timerId:0,initialize:function(a,b,c){navitime.geo.control.AbstractControl.prototype.initialize.apply(this,["PeriodicCtl"+navitime.geo.Util._getSerial]);this.map=a;this._handler=b;this._interval=c;this.map.events.register("dragstart",this,this.deactivate);this.map.events.register("dragend",this,this.activate);this.map.events.register("zoomstart",this,this.deactivate);this.map.events.register("zoomend",
this,this.activate);this.setMap(a)},activate:function(){return this._timerId?!1:(this._timerId=setInterval(this._handler,this._interval),!0)},deactivate:function(){return this._timerId?(clearInterval(this._timerId),this._timerId=null,!0):!1},destroy:function(){this.deactivate();this.map.events.unregister("dragstart",this,this.deactivate);this.map.events.unregister("dragend",this,this.activate);this.map.events.unregister("zoomstart",this,this.deactivate);this.map.events.unregister("zoomend",this,this.activate);
navitime.geo.control.AbstractControl.prototype.destroy.apply(this,arguments)}});navitime.geo.namespace("navitime.geo.divider");navitime.geo.divider.Divider=navitime.geo.base.Class({initialize:function(){},devide:function(){return[]},isChange:function(a){return!0}});navitime.geo.namespace("navitime.geo.divider");
navitime.geo.divider.MeshDivider=navitime.geo.base.Class(navitime.geo.divider.Divider,{_currentMesh:{lefttop:null,righttop:null,leftbottom:null,equals:function(a,b,c){return this.lefttop===a&&this.righttop===b&&this.leftbottom===c}},_options:{buffer:0},initialize:function(a){this._options=a?a:{};for(var b in a)this._options[b]=a[b]},divide:function(a){var b=a.getCenter(),c=a._grid._drawBounds,d=a.getMovedLatLng(c.right/2,c.bottom/2,b),e=a.getMovedLatLng(-1*(c.right/2),c.bottom/2,b),f=a.getMovedLatLng(c.right/
2,-1*(c.bottom/2),b),b=[];a=a.getZoom();c=navitime.geo.MeshUtil.getGap(a);d.lat+=c.y*this._options.buffer;d.lng-=c.x*this._options.buffer;e.lat+=c.y*this._options.buffer;e.lng+=c.x*this._options.buffer;f.lat-=c.y*this._options.buffer;f.lng-=c.x*this._options.buffer;var f=navitime.geo.MeshUtil.toMeshCode(f,a),e=e.clone(),g=d.clone(),h=navitime.geo.MeshUtil.toMeshCode(g,a);do this._addHorizontalMeshes(b,g,e,c,a),g.lng=d.lng,g.lat-=c.y,e.lat-=c.y,h=navitime.geo.MeshUtil.toMeshCode(g,a);while(f!==h);
return b},_addHorizontalMeshes:function(a,b,c,d,e){var f=navitime.geo.MeshUtil.toMeshCode(b,e);c=navitime.geo.MeshUtil.toMeshCode(c,e);for(a.push(f);f!==c;)b.lng+=d.x,f=navitime.geo.MeshUtil.toMeshCode(b,e),a.push(f)},isChange:function(a){var b=a.getCenter(),c=a._grid._drawBounds,d=a.getMovedLatLng(c.right/2,c.bottom/2,b),e=a.getMovedLatLng(-1*(c.right/2),c.bottom/2,b),b=a.getMovedLatLng(c.right/2,-1*(c.bottom/2),b),d=navitime.geo.MeshUtil.toMeshCode(d,a.getZoom()),e=navitime.geo.MeshUtil.toMeshCode(e,
a.getZoom());a=navitime.geo.MeshUtil.toMeshCode(b,a.getZoom());b=!this._currentMesh.equals(d,e,a);this._currentMesh.lefttop=d;this._currentMesh.righttop=e;this._currentMesh.leftbottom=a;return b}});navitime.geo.namespace("navitime.geo.parts");
navitime.geo.parts.AbstractParts=navitime.geo.base.Class({id:null,div:null,_map:null,initialize:function(){this.div=navitime.geo.DOM.create("div","ntgeo-parts");navitime.geo.base.CSS3Style&&navitime.geo.base.CSS3Style.USERSELECT&&(this.div.style[navitime.geo.base.CSS3Style.USERSELECT]="none");this.div.setAttribute("unselectable","on",0);this.div.onselectstart=function(){return!1}},destroy:function(){this.map&&this.map.removeParts(this);this.div=this._map=null},setMap:function(a){if(a)return this._map=
a.getMap(),this._map.addParts(this),this._draw(),!0;this._map&&(this._map.removeParts(this),this.map=null);return!1},_draw:function(){}});navitime.geo.namespace("navitime.geo.parts");
navitime.geo.parts.ScaleBar=navitime.geo.base.Class(navitime.geo.parts.AbstractParts,{defaultZIndex:1,_scaleBarBackDiv:null,_scaleBarDiv:null,_scaleBarMeterDiv:null,initialize:function(a,b,c){navitime.geo.parts.AbstractParts.prototype.initialize.apply(this,[]);var d=this.div.style;d.bottom=a?a+"px":"3px";d.left=b?b+"px":"5px";c&&this.div.classList.add(c)},destroy:function(){this._map.events.unregister("zoomend",this,this._setScale);this._map.events.unregister("moveend",this,this._setScale);return navitime.geo.parts.AbstractParts.prototype.destroy.apply(this,
arguments)},setMap:function(a){a?a.events.register("resize",this,this._resize):this._map.events.unregister("resize",this,this._resize);return navitime.geo.parts.AbstractParts.prototype.setMap.apply(this,arguments)},_draw:function(){this._scaleBarBackDiv=navitime.geo.DOM.create("div");var a=this._scaleBarBackDiv.style;a.zIndex=this.defaultZIndex;a.position="absolute";a.font="0px Arial";a.backgroundColor="#FFF";a.height="18px";a.bottom="0px";a.left="10px";this._setAlpha(this._scaleBarBackDiv,60);this._scaleBarBackDiv.setAttribute("unselectable",
"on",0);this._scaleBarBackDiv.onselectstart=function(){return!1};this._scaleBarDiv=navitime.geo.DOM.create("div");var b=this._scaleBarDiv.style;b.zIndex=this.defaultZIndex+1;b.position="absolute";b.border="1px #000 solid";b.width="0px";b.height="6px";b.backgroundColor="#FFF";b.fontSize="0px";b.bottom=parseInt(a.bottom)+5+"px";b.left=parseInt(a.left)+2+"px";this._scaleBarDiv.setAttribute("unselectable","on",0);this._scaleBarDiv.onselectstart=function(){return!1};this._scaleBarMeterDiv=navitime.geo.DOM.create("div");
b=this._scaleBarMeterDiv.style;b.zIndex=this.defaultZIndex+1;b.position="absolute";b.color="#555";b.font="bold 10px Arial";b.bottom=parseInt(a.bottom)+3+"px";this._scaleBarMeterDiv.setAttribute("unselectable","on",0);this._scaleBarMeterDiv.onselectstart=function(){return!1};this.div.appendChild(this._scaleBarBackDiv);this.div.appendChild(this._scaleBarDiv);this.div.appendChild(this._scaleBarMeterDiv);this._setScale();this._map.events.register("zoomend",this,this._setScale);this._map.events.register("moveend",
this,this._setScale)},_setScale:function(){var a=this._map.getCenterLatLng(),b=new navitime.geo.LatLng(a.lat,new Number(a.lng+this._getRange())),a=navitime.geo.LatLng.getDistance(a,b),c=this._getScaleStyle(12.5*a/1E3,"Km",12.5*a,"m",1);this._scaleBarDiv.style.width=c.length+"px";this._scaleBarMeterDiv.style.left=c.length+17+"px";this._scaleBarMeterDiv.innerHTML=c.display;a=function(a){return function(){a._scaleBarBackDiv.style.width=c.length+17+a._scaleBarMeterDiv.offsetWidth+"px"}}(this);setTimeout(a,
10)},_getRange:function(){return Math.floor(5*this.getLonFactor())},getLonFactor:function(){return[2E5,33333.3,2727.27,818.181,163.636][this._getScale()]/this._getZoom()*this._map._grid.ratio},_getScaleStyle:function(a,b,c,d,e){a*=e;1>a&&(a=c,b=d);c=this._getMeterText(a);return{length:Math.round(125*c/(2*a)),display:c+"\x26nbsp;"+b}},_getMeterText:function(a){if(1<a){for(var b=0;10<=a;)a/=10,b+=1;for(a=5<=a?5:2<=a?2:1;0<b;)a*=10,b-=1}return a},_getScale:function(){return 17<=this._map.getZoom()&&
19>=this._map.getZoom()?4:15<=this._map.getZoom()&&16>=this._map.getZoom()?3:12<=this._map.getZoom()&&14>=this._map.getZoom()?2:9<=this._map.getZoom()&&11>=this._map.getZoom()?1:0},_getZoom:function(){if(256==this._map._grid.tileSize)switch(this._map.getZoom()){case 19:return 16.94;case 18:return 8.47;case 17:return 4.24;case 16:return 10.59;case 15:return 5.29;case 14:return 8.82;case 13:return 4.41;case 12:return 2.2;case 11:return 13.48;case 10:return 6.74;case 9:return 3.37;case 8:return 10.11;
case 7:return 5.06;case 6:return 2.53}else if(512==this._map._grid.tileSize)switch(this._map.getZoom()){case 19:return 33.88;case 18:return 16.94;case 17:return 8.48;case 16:return 21.18;case 15:return 10.58;case 14:return 17.64;case 13:return 8.82;case 12:return 4.4;case 11:return 26.96;case 10:return 13.48;case 9:return 6.74;case 8:return 20.22;case 7:return 10.12;case 6:return 5.06}else switch(this._map.getZoom()){case 19:return 8.47;case 18:return 4.23;case 17:return 2.11;case 16:return 5.29;
case 15:return 2.64;case 14:return 4.41;case 13:return 2.2;case 12:return 1.1;case 11:return 6.74;case 10:return 3.37;case 9:return 1.68;case 8:return 5.05;case 7:return 2.52;case 6:return 1.26}},_setAlpha:function(a,b){var c=a.style;c.MozOpacity=b/100;c.opacity=b/100;c.filter&&0<c.filter.length?-1<c.filter.indexOf("progid:DXImageTransform.Microsoft.Alpha(")&&(c.filter.match(/(.*progid:DXImageTransform.Microsoft.Alpha\(opacity=)\d+(\).*)/),c.filter=RegExp.$1+b+RegExp.$2):c.filter="progid:DXImageTransform.Microsoft.alpha(opacity\x3d"+
b+")"},_resize:function(){this._map&&(this.div.style.left=this._map._displayBounds.left+5+"px")}});navitime.geo.namespace("navitime.geo.parts");
navitime.geo.parts.CopyrightText=navitime.geo.base.Class(navitime.geo.parts.AbstractParts,{initialize:function(a){a&&a.text&&(navitime.geo.parts.AbstractParts.prototype.initialize.apply(this,[]),this.div.className+=" ntgeo-copyright",a.left||a.right||(this.div.style.right="5px"),a.top||a.bottom||(this.div.style.bottom="3px"),a.top&&(this.div.style.top=a.top+"px"),a.bottom&&(this.div.style.bottom=a.bottom+"px"),a.left&&(this.div.style.left=a.left+"px"),a.right&&(this.div.style.right=a.right+"px"),
this.div.innerHTML=a.text)}});navitime.geo.namespace("navitime.geo.parts");
navitime.geo.parts.CenterMarker=navitime.geo.base.Class(navitime.geo.parts.AbstractParts,{_group:null,_visibility:"",initialize:function(){this._renderer=navitime.geo.base.graphics.Renderer;this.div=this._renderer.createBaseDiv();this._group=this._renderer.createGroupDiv("CenterMark");this.div.appendChild(this._group);this.div.style.zIndex="100"},destroy:function(){this._map.events.unregister("zoomstart",this,this._hiddenVisibility);this._map.events.unregister("zoomend",this,this._returnVisibility);
this._map.events.unregister("resize",this,this._draw)},setMap:function(a){if(a)a.events.register("zoomstart",this,this._hiddenVisibility),a.events.register("zoomend",this,this._returnVisibility),a.events.register("resize",this,this._draw);else{this._map.events.unregister("zoomstart",this,this._hiddenVisibility);this._map.events.unregister("zoomend",this,this._returnVisibility);this._map.events.unregister("resize",this,this._draw);var b=this._group.childNodes;if(0<b.length)for(var c=b.length;c--;)this._group.removeChild(b[c])}return navitime.geo.parts.AbstractParts.prototype.setMap.apply(this,
arguments)},_draw:function(){var a=this._group.childNodes;if(0<a.length)for(var b=a.length;b--;)this._group.removeChild(a[b]);var c=Math.round(this._map._displayBounds.getCenterX()),d=Math.round(this._map._displayBounds.getCenterY()),a=c-5,b=d-5,e=c+5,f=d+5,d=this._renderer.drawLine(this._map.id+"_horizontal",a,d,e,d,null,{strokecolor:"#FF0000",strokeweight:2}),c=this._renderer.drawLine(this._map.id+"_vertical",c,b,c,f,null,{strokecolor:"#FF0000",strokeweight:2});this._group.appendChild(c);this._group.appendChild(d);
this._renderer.setViewPort(this.div,new navitime.geo.BoundsInfo(a,e,b,f))},changeVisibility:function(a){this._visibility=a?"":"hidden";this.div.style.visibility=this._visibility},isVisibility:function(){return""===this.div.style.visibility},_returnVisibility:function(){this.div.style.visibility=this._visibility},_hiddenVisibility:function(){this.div.style.visibility="hidden"}});navitime.geo.namespace("navitime.geo.overlay");
navitime.geo.overlay.AbstractOverlay=navitime.geo.base.Class({EVENT_TYPES:["dblclick","rightclick","dblrightclick"],events:null,id:"Overlay",div:null,_options:null,_map:null,_serialNum:null,_visibility:"",_clickEventHandler:null,_fallThrough:!0,initialize:function(a){this._options=a?a:{};this._serialNum=navitime.geo.Util._getSerial();this.events=new navitime.geo.event.InnerEventController(this,null,this.EVENT_TYPES,this._fallThrough);this._clickEventHandler=new navitime.geo.handler.Click(this,{dblrightclick:function(a){this.events.triggerEvent("dblrightclick",
a)},rightclick:function(a){this.events.triggerEvent("rightclick",a)}},this.events);this._setMapEventlistener=navitime.geo.Util.Function.bind(this._draw,this)},destroy:function(){this._map&&this.setMap(null);this.events&&this.events.destroy();this.div&&(this.div=null);this._options=null},getMap:function(){return this._map},setMap:function(a){if(a){if(this._map){if(this._map==a)return;this.setMap(null)}this._map=a.getMap();a.addOverlay(this);this._draw();this.events.attachToElement(this.eventDiv);a.events.register("moveend",
this,this._setMapEventlistener);a.events.register("zoomend",this,this._setMapEventlistener);a.events.register("resize",this,this._setMapEventlistener);this._clickEventHandler.activate();this.events.triggerEvent("setmap")}else this._map&&(this._map.events.unregister("moveend",this,this._setMapEventlistener),this._map.events.unregister("zoomend",this,this._setMapEventlistener),this._map.events.unregister("resize",this,this._setMapEventlistener),this._clickEventHandler&&this._clickEventHandler.deactivate(),
this.getMap().removeOverlay(this),this._map=null)},_controlDragSelect:function(){navitime.geo.base.CSS3Style&&navitime.geo.base.CSS3Style.USERSELECT&&(this.div.style[navitime.geo.base.CSS3Style.USERSELECT]="none");this.div.setAttribute("unselectable","on",0);this.div.onselectstart=navitime.geo.Util.falseFn},_draw:function(){},setPosition:function(a){if(this._map){var b=this._map.getPixcelFromLatLng(a);this.moveTo(b.left,b.top);this._options.position=a}else{var c=navitime.geo.Util.Function.bind(function(){this.setPosition(a);
this.events.unregister("setmap",this,c)},this);this.events.register("setmap",this,c)}},getPosition:function(){return this._options.position.clone()},setVisible:function(a){if(this._map)this._visibility=a?"":"hidden",this._options.visible=a,this.div&&(this.div.style.visibility=this._visibility);else{var b=navitime.geo.Util.Function.bind(function(){this.setVisible(a);this.events.unregister("setmap",this,b)},this);this.events.register("setmap",this,b)}},getVisible:function(){return"hidden"===this._visibility?
!1:!0},getZIndex:function(){return this.div.style.zIndex},setZIndex:function(a){if(this._map)this.div.style.zIndex=a,this._options.zIndex=a;else{var b=navitime.geo.Util.Function.bind(function(){this.setZIndex(a);this.events.unregister("setmap",this,b)},this);this.events.register("setmap",this,b)}}});navitime.geo.namespace("navitime.geo.overlay");
navitime.geo.overlay.AbstractPin=navitime.geo.base.Class(navitime.geo.overlay.AbstractOverlay,{_icon:null,initialize:function(a){navitime.geo.overlay.AbstractOverlay.prototype.initialize.apply(this,arguments);"string"===typeof a.icon?this._icon=new navitime.geo.Icon(a.icon,{centerType:a.iconPosition}):(this._icon=a.icon,this._options.icon=a.icon.url);this.eventDiv=this.div=this._icon.imageDiv;this._controlDragSelect();this.setOptions(a);a.map&&this.setMap(a.map)},_activateDraggable:function(){},_deactivateDraggable:function(){},
_draw:function(){this.setPosition(this._options.position)},destroy:function(){this._deactivateDraggable();navitime.geo.overlay.AbstractOverlay.prototype.destroy.apply(this);this._icon&&(this._icon.destroy(),this._icon=null)},getDraggable:function(){return this._options.draggable},getIcon:function(){return this._icon.url},getTitle:function(){return this._icon.imageDiv.title},getVisible:function(){return this._icon._visibility},getRaiseOnDrag:function(){return this._options.raiseOnDrag},getCursor:function(){return this._options.cursor},
setDraggable:function(a){if(this._map)a?this._activateDraggable():this._deactivateDraggable(),this._options.draggable=a;else{var b=navitime.geo.Util.Function.bind(function(){this.setDraggable(a);this.events.unregister("setmap",this,b)},this);this.events.register("setmap",this,b)}},setIcon:function(a){if(this._map)if("string"===typeof a)this._icon.changeImageUrl(a),this._options.icon=a;else{this.events.detachFromElement();var b=this.div.parentNode;b&&(b.removeChild(this.div),b.appendChild(a.imageDiv));
this._icon.destroy();this._icon=a;this.eventDiv=this.div=a.imageDiv;this.events.attachToElement(this.eventDiv);this.setTitle(this._options.title);this.setVisible(this._options.visible);this.setCursor(this._options.cursor);this.setZIndex(this._options.zIndex);this._options.icon=a.url;this.setPosition(this._options.position)}else{var c=navitime.geo.Util.Function.bind(function(){this.setIcon(a);this.events.unregister("setmap",this,c)},this);this.events.register("setmap",this,c)}},setTitle:function(a){if(this._map)a=
a?a:"",this._icon.imageDiv.title=a,this._options.title=a;else{var b=navitime.geo.Util.Function.bind(function(){this.setTitle(a);this.events.unregister("setmap",this,b)},this);this.events.register("setmap",this,b)}},setVisible:function(a){if(this._map)this._options.visible=a,this._icon.setVisibility(a);else{var b=navitime.geo.Util.Function.bind(function(){this.setVisible(a);this.events.unregister("setmap",this,b)},this);this.events.register("setmap",this,b)}},setRaiseOnDrag:function(a){if(this._map)this._options.raiseOnDrag=
a||!1;else{var b=navitime.geo.Util.Function.bind(function(){this.setRaiseOnDrag(a);this.events.unregister("setmap",this,b)},this);this.events.register("setmap",this,b)}},setCursor:function(a){if(this._map)this._icon.imageDiv.style.cursor=a,this._options.cursor=a;else{var b=navitime.geo.Util.Function.bind(function(){this.setCursor(a);this.events.unregister("setmap",this,b)},this);this.events.register("setmap",this,b)}},moveTo:function(a,b){this._icon.moveTo(a,b)},setOptions:function(a){this._options=
this._initOptions(a);if(this._map)this._icon.changeImageUrl(this._options.icon),this.setDraggable(this._options.draggable),this.setTitle(this._options.title),this.setZIndex(this._options.zIndex),this.setCursor(this._options.cursor),this.setVisible(this._options.visible),this.setRaiseOnDrag(this._options.raiseOnDrag);else{var b=navitime.geo.Util.Function.bind(function(){this.setOptions(a);this.events.unregister("setmap",this,b)},this);this.events.register("setmap",this,b)}},_initOptions:function(a){var b=
{draggable:!1,raiseOnDrag:!1,title:"",zIndex:"",visible:!0},c;for(c in a)"map"!==c&&(b[c]=a[c]);return b}});navitime.geo.overlay.AbstractInfoWindow=navitime.geo.base.Class(navitime.geo.overlay.AbstractOverlay,{EVENT_TYPES:["closeclick","content_changed","position_changed"],_fallThrough:!1,_centerOffset:0,_tailDirection:null,TAIL_DIV_WIDTH:20,TAIL_DIV_HEIGHT:20,_tailDivFillColor:"#ffffff",_tailDivStrokeColor:"#bbbbbb",TAIL_DIV_FIRST_PATH_DESCRIPTION_LEFT:"M 159.283 164.03",TAIL_DIV_SECOND_PATH_DESCRIPTION_LEFT:"M 8.867 11.834 L 18.719 29.585 L 0.968 29.585 L 8.867 11.834 Z",TAIL_DIV_MATRIX_LEFT:"matrix(-0.000006, -1, 1, -0.000007, -8.974499, 19.52533)",
TAIL_DIV_TRIANGLE_LEFT:"triangle 0.968 11.834 17.751 17.751 0.445 0 1@9bb76b38",TAIL_DIV_POINTS_LEFT:"45.271 30.854",TAIL_DIV_FIRST_PATH_DESCRIPTION_UP:"M 159.283 164.03",TAIL_DIV_SECOND_PATH_DESCRIPTION_UP:"M 8.867 11.834 L 18.719 29.585 L 0.968 29.585 L 8.867 11.834 Z",TAIL_DIV_MATRIX_UP:"matrix(1, -0.000006, 0.000007, 1, 0.163256, -9.056256)",TAIL_DIV_TRIANGLE_UP:"triangle 0.968 11.834 17.751 17.751 0.445 0 1@9bb76b38",TAIL_DIV_POINTS_UP:"45.271 30.854",TAIL_DIV_FIRST_PATH_DESCRIPTION_RIGHT:"M 159.283 164.03",
TAIL_DIV_SECOND_PATH_DESCRIPTION_RIGHT:"M 8.867 11.834 L 18.719 29.585 L 0.968 29.585 L 8.867 11.834 Z",TAIL_DIV_MATRIX_RIGHT:"matrix(0.000006, 1, -1, 0.000007, 29.038936, 0.308238)",TAIL_DIV_TRIANGLE_RIGHT:"triangle 0.968 11.834 17.751 17.751 0.445 0 1@9bb76b38",TAIL_DIV_POINTS_RIGHT:"45.271 30.854",TAIL_DIV_FIRST_PATH_DESCRIPTION_DOWN:"M 159.283 164.03",TAIL_DIV_SECOND_PATH_DESCRIPTION_DOWN:"M 8.867 11.834 L 18.719 29.585 L 0.968 29.585 L 8.867 11.834 Z",TAIL_DIV_MATRIX_DOWN:"matrix(-1, 0.000006, -0.000007, -1, 19.799916, 29.071485)",
TAIL_DIV_TRIANGLE_DOWN:"triangle 0.968 11.834 17.751 17.751 0.445 0 1@9bb76b38",TAIL_DIV_POINTS_DOWN:"45.271 30.854",_backgroundColor:null,_borderColor:null,_borderWidth:1,_borderRadius:null,_shadow:!0,_margin:null,_className:null,initialize:function(a){navitime.geo.overlay.AbstractOverlay.prototype.initialize.apply(this,arguments);null!=a&&(a.hasOwnProperty("backgroundColor")&&(this._tailDivFillColor=this._backgroundColor=a.backgroundColor),a.hasOwnProperty("borderColor")&&(this._tailDivStrokeColor=
this._borderColor=a.borderColor),a.hasOwnProperty("borderWidth")&&(this._borderWidth=a.borderWidth),a.hasOwnProperty("borderRadius")&&(this._borderRadius=a.borderRadius),a.hasOwnProperty("shadow")&&"boolean"===typeof a.shadow&&(this._shadow=a.shadow),a.hasOwnProperty("margin")&&(this._margin=a.margin),a.hasOwnProperty("className")&&(this._className=a.className))},_resize:function(){},_draw:function(){this.setPosition(this._options.position)},getContent:function(){return this._options.content},getPixelOffset:function(){return this._options.pixelOffset},
setContent:function(a){if(this._map){this.div&&(this.div.style.visibility="hidden",this._className&&this.div.classList.add(this._className));var b;b=this.contentDiv.childNodes;for(var c=b.length;c--;)this.contentDiv.removeChild(b[c]);this.contentDiv.style.whiteSpace="nowrap";this.contentDiv.style.width="";a.nodeType?this.contentDiv.appendChild(a):this.contentDiv.innerHTML=a?a:"";this._options.content=a;b=this.contentDiv.getElementsByTagName("img");for(c=this.loadCount=b.length;c--;){var d=b[c],e=
navitime.geo.Util.Function.bind(function(){navitime.geo.event.BrowserEventController.removeEvent("load");this.loadCount--;0===this.loadCount&&this.events.triggerEvent("content_changed")},this);navitime.geo.event.BrowserEventController.addEvent(d,"load",e);(d.complete||"uninitialized"===d.readyState)&&this.loadCount--}0===this.loadCount&&this.events.triggerEvent("content_changed")}else{var f=navitime.geo.Util.Function.bind(function(){this.setContent(a);this.events.unregister("setmap",this,f)},this);
this.events.register("setmap",this,f)}},setPixelOffset:function(a){if(this._map)a=a||{},a.x=a.x||0,a.y=a.y||0,this._options.pixelOffset=a,this.setPosition(this._options.position);else{var b=navitime.geo.Util.Function.bind(function(){this.setPixelOffset(a);this.events.unregister("setmap",this,b)},this);this.events.register("setmap",this,b)}},setOptions:function(a){this._options=this._initOptions(a);if(this._map)this.setPixelOffset(this._options.pixelOffset),this.setVisible(this._options.visible),this.setContent(this._options.content),
this.setZIndex(this._options.zIndex);else{var b=navitime.geo.Util.Function.bind(function(){this.setOptions(a);this.events.unregister("setmap",this,b)},this);this.events.register("setmap",this,b)}},moveTo:function(a,b){this.div.style.left=this._calculateDivLeftPosition(a,b,this._tailDirection)+"px";this.div.style.top=this._calculateDivTopPosition(a,b,this._tailDirection)+"px";this.events.triggerEvent("position_changed")},_initOptions:function(a){var b={content:"",zIndex:"",visible:!0,disableClose:!1,
pixelOffset:{x:0,y:0},closeButtonDisplay:navitime.geo.DisplayType.FOCUSED},c;for(c in a)"map"!==c&&(b[c]=a[c]);return b},_calculateDivLeftPosition:function(a,b,c){switch(c){case "left":return a+this.TAIL_DIV_WIDTH;case "up":return a-this.div.offsetWidth/2;case "right":return a-this.TAIL_DIV_WIDTH-this.div.offsetWidth;case "down":return a-this.div.offsetWidth/2;default:return a-(this._centerOffset-this._borderWidth)+this._options.pixelOffset.x}},_calculateDivTopPosition:function(a,b,c){switch(c){case "left":return b-
this.div.offsetHeight/2;case "up":return b+this.TAIL_DIV_HEIGHT;case "right":return b-this.div.offsetHeight/2;case "down":return b-this.div.offsetHeight-this.TAIL_DIV_HEIGHT;default:return b-this.div.offsetHeight-(this._borderWidth+31)+this._options.pixelOffset.y}},_createSvgPathAsBase64:function(){var a='\x3c?xml version\x3d"1.0" encoding\x3d"utf-8"?\x3e\n\x3csvg viewBox\x3d"'+this._calculateViewBox()+'" xmlns\x3d"http://www.w3.org/2000/svg" xmlns:bx\x3d"https://boxy-svg.com"\x3e\n\x3cpath style\x3d"fill:'+
this._tailDivFillColor+"; stroke:"+this._tailDivStrokeColor+';"/\x3e\n\x3cpath style\x3d"fill:'+this._tailDivFillColor+"; stroke:"+this._tailDivStrokeColor+"; stroke-width:"+this._borderWidth+';" d\x3d"'+this._getTailDivFirstPathDescription()+'"/\x3e\n\x3cpath d\x3d"'+this._getTailDivSecondPathDescription()+'" style\x3d"fill: '+this._tailDivFillColor+"; stroke: "+this._tailDivStrokeColor+"; stroke-width:"+this._borderWidth+';" transform\x3d"'+this._getTailDivMatrix()+'" bx:shape\x3d"'+this._getTailDivTriangle()+
'"/\x3e\n\x3cpolyline style\x3d"fill: '+this._tailDivFillColor+"; stroke: "+this._tailDivStrokeColor+"; stroke-width:"+this._borderWidth+';" points\x3d"'+this._getTailDivPoints()+'"/\x3e\n\x3c/svg\x3e';return"url(data:image/svg+xml;base64,"+this._b64EncodeUnicode(a)+")"},_calculateViewBox:function(){switch(this._tailDirection){case "left":return-this._borderWidth/2+" 0 20 20";case "up":return"0 "+-this._borderWidth/2+" 20 20";case "right":return this._borderWidth/2+" 0 20 20";case "down":return"0 "+
this._borderWidth/2+" 20 20";default:return"0 0 20 20"}},_b64EncodeUnicode:function(a){return btoa(encodeURIComponent(a).replace(/%([0-9A-F]{2})/g,function(a,c){return String.fromCharCode("0x"+c)}))},_getTailDivFirstPathDescription:function(){switch(this._tailDirection){case "left":return this.TAIL_DIV_FIRST_PATH_DESCRIPTION_LEFT;case "up":return this.TAIL_DIV_FIRST_PATH_DESCRIPTION_UP;case "right":return this.TAIL_DIV_FIRST_PATH_DESCRIPTION_RIGHT;case "down":return this.TAIL_DIV_FIRST_PATH_DESCRIPTION_DOWN}},
_getTailDivSecondPathDescription:function(){switch(this._tailDirection){case "left":return this.TAIL_DIV_SECOND_PATH_DESCRIPTION_LEFT;case "up":return this.TAIL_DIV_SECOND_PATH_DESCRIPTION_UP;case "right":return this.TAIL_DIV_SECOND_PATH_DESCRIPTION_RIGHT;case "down":return this.TAIL_DIV_SECOND_PATH_DESCRIPTION_DOWN}},_getTailDivMatrix:function(){switch(this._tailDirection){case "left":return this.TAIL_DIV_MATRIX_LEFT;case "up":return this.TAIL_DIV_MATRIX_UP;case "right":return this.TAIL_DIV_MATRIX_RIGHT;
case "down":return this.TAIL_DIV_MATRIX_DOWN}},_getTailDivTriangle:function(){switch(this._tailDirection){case "left":return this.TAIL_DIV_TRIANGLE_LEFT;case "up":return this.TAIL_DIV_TRIANGLE_UP;case "right":return this.TAIL_DIV_TRIANGLE_RIGHT;case "down":return this.TAIL_DIV_TRIANGLE_DOWN}},_getTailDivPoints:function(){switch(this._tailDirection){case "left":return this.TAIL_DIV_POINTS_LEFT;case "up":return this.TAIL_DIV_POINTS_UP;case "right":return this.TAIL_DIV_POINTS_RIGHT;case "down":return this.TAIL_DIV_POINTS_DOWN}},
_calculateBaloonTailRightPosition:function(a){switch(a){case "left":return this.div.offsetWidth-2*this._borderWidth;case "up":return this.div.offsetWidth/2-this.TAIL_DIV_WIDTH/2-this._borderWidth;case "right":return-this.TAIL_DIV_WIDTH;case "down":return this.div.offsetWidth/2-this.TAIL_DIV_WIDTH/2+(2-this._borderWidth);default:return this._centerOffset-this._borderWidth}},_calculateBaloonTailTopPosition:function(a){switch(a){case "left":return this.div.offsetHeight/2-this.TAIL_DIV_HEIGHT/2-this._borderWidth;
case "up":return-this.TAIL_DIV_HEIGHT;case "right":return this.div.offsetHeight/2-this.TAIL_DIV_HEIGHT/2-this._borderWidth;case "down":return this.div.offsetHeight-2*this._borderWidth;default:return this.div.offsetHeight-(2*this._borderWidth+11)}},_createOldSvgPathAsBase64:function(){var a=50+this._borderWidth;return"url(data:image/svg+xml;base64,"+this._b64EncodeUnicode('\x3c?xml version\x3d"1.0" encoding\x3d"UTF-8" standalone\x3d"no"?\x3e\x3csvg version\x3d"1.1" xmlns\x3d"http://www.w3.org/2000/svg" xmlns:xlink\x3d"http://www.w3.org/1999/xlink" width\x3d"'+
a+'px" height\x3d"50px" viewBox\x3d"'+-this._borderWidth+" 0 "+a+' 50" enable-background\x3d"new 0 0 50 50" xml:space\x3d"preserve"\x3e\x3cpath fill\x3d"'+this._tailDivFillColor+'" stroke\x3d"'+this._tailDivStrokeColor+'" stroke-width\x3d"'+this._borderWidth+'" d\x3d"M48.855,10.385L1.451,42.896l12.119-25.09c0.343-0.655,0.537-1.399,0.537-2.189c0-2.613-2.118-4.731-4.731-4.731"/\x3e\x3cpath fill\x3d"'+this._tailDivFillColor+'" stroke\x3d"'+this._tailDivStrokeColor+'" stroke-width\x3d"'+this._borderWidth+
'" d\x3d"M49.482,9.953L1.451,42.896l12.119-25.09c0.343-0.655,0.537-1.399,0.537-2.189c0-2.613-2.118-4.731-4.731-4.731"/\x3e\x3cline fill\x3d"none" stroke\x3d"'+this._tailDivFillColor+'" stroke-width\x3d"4" x1\x3d"9.375" y1\x3d"9.37" x2\x3d"49.761" y2\x3d"9.37"/\x3e\x3c/svg\x3e')+")"}});navitime.geo.namespace("navitime.geo.base");
navitime.geo.base.Grid=navitime.geo.base.Class({EVENT_TYPES:["loadstart","loadend","tileload"],tileSize:256,bufferTileNum:2,events:null,tileGrid:null,ratio:1,_layers:null,_drawBounds:null,_centerTile:null,_numLoadingTiles:0,initialize:function(a,b,c,d){this.events=new navitime.geo.event.InnerEventController(this,null,this.EVENT_TYPES);this._layers=[];this.tileGrid=[];d&&(void 0!==d.bufferNum&&null!==d.bufferNum&&(this.bufferTileNum=d.bufferNum),d.tilesize&&(this.tileSize=d.tilesize),d.devicePixelRatio&&
(this.ratio=d.devicePixelRatio));this._calculateDrawBounds(a,b,c)},destroy:function(){this.events&&(this.events.destroy(),this.events=null);if(this.tileGrid){for(var a=this.tileGrid.length;a--;)for(var b=this.tileGrid[a],c=b.length;c--;)for(var d=b[c],e=d.length;e--;)d[e].destroy();this.tileGrid=null}if(this._layers){for(a=this._layers.length;a--;)delete this._layers[a];this._layers=null}this._drawBounds=this._centerTile=null},moveALLTiles:function(a,b){for(var c=0,d=this.tileGrid.length;c<d;c++)0!==
this.tileGrid[c].length&&this._moveGriddedTiles(c,a,b)},_moveGriddedTiles:function(a,b){for(var c=this.tileGrid[a];;){var d=c[c.length-1],e=d[d.length-1],d=Math.round(this.tileSize/this.ratio),f=this._layers[0].map._displayBounds,g=e.bounds.right-f.right+b.left-d*this.bufferTileNum,e=e.bounds.bottom-f.bottom+b.top-d*this.bufferTileNum;if(g>d)this._shiftColumn(a,!0);else if(0>g)this._shiftColumn(a,!1);else if(e>d)this._shiftRow(a,!0);else if(0>e)this._shiftRow(a,!1);else break}},_shiftRow:function(a,
b,c){var d=this.tileGrid[a],e=d[b?0:d.length-1],f=b?-Math.round(this.tileSize/this.ratio):Math.round(this.tileSize/this.ratio);a=c?this._cloneRow(e,a):b?d.pop():d.shift();c=b?-1:1;for(var g=0,h=e.length;g<h;g++){var k=e[g],l=k.bounds.clone();l.bottom+=f;l.top+=f;a[g].moveTo(l,{x:k.pathCreator.x,y:k.pathCreator.y+c});a[g].draw()}b?d.unshift(a):d.push(a)},_shiftColumn:function(a,b,c){for(var d=this.tileGrid[a],e=b?-Math.round(this.tileSize/this.ratio):Math.round(this.tileSize/this.ratio),f=0,g=d.length;f<
g;f++){var h=d[f],k=h[b?0:h.length-1],l=k.bounds.clone();l.left+=e;l.right+=e;var m=b?-1:1,p=c?this._cloneColumn(k,a):b?h.pop():h.shift();p.moveTo(l,{x:k.pathCreator.x+m,y:k.pathCreator.y});p.draw();b?h.unshift(p):h.push(p)}},_cloneRow:function(a,b){for(var c=[],d=0,e=a.length;d<e;d++)c.push(this._cloneColumn(a[d],b));return c},_cloneColumn:function(a,b){var c=a.clone();this._layers[b].div.appendChild(c.imageTag);return c},createAllTiles:function(){for(var a=this._centerTile.tileX-Math.round((this._centerTile.bounds.left-
this._drawBounds.left)/(this.tileSize/this.ratio)),b=this._centerTile.tileY-Math.round((this._centerTile.bounds.top-this._drawBounds.top)/(this.tileSize/this.ratio)),c=Math.round(this._drawBounds.getWidth()/(this.tileSize/this.ratio)),d=Math.round(this._drawBounds.getHeight()/(this.tileSize/this.ratio)),e=0,f=this._layers.length;e<f;e++)this._createTiles(e,d,c,a,b)},createTargetTiles:function(a){var b=this._centerTile.tileX-Math.round((this._centerTile.bounds.left-this._drawBounds.left)/(this.tileSize/
this.ratio)),c=this._centerTile.tileY-Math.round((this._centerTile.bounds.top-this._drawBounds.top)/(this.tileSize/this.ratio)),d=Math.round(this._drawBounds.getWidth()/(this.tileSize/this.ratio)),e=Math.round(this._drawBounds.getHeight()/(this.tileSize/this.ratio));this._createTiles(a,e,d,b,c)},_createTiles:function(a,b,c,d,e){var f=document.createDocumentFragment(),g=this._layers[a],h=g.map.getZoom(),k=this._numLoadingTiles=0,l=this.tileGrid[a];0!=l.length&&this._removeExcessTiles(a,b,c);var m=
[],p=this._drawBounds.left,q=this._drawBounds.top;do{var r=l[k];r||(r=[],l.push(r));var n=0;do{var t=new navitime.geo.BoundsInfo(p,p+Math.round(this.tileSize/this.ratio),q,q+Math.round(this.tileSize/this.ratio)),s=r[n];s?s.moveTo(t,{x:d+n,y:e+k,z:h}):(s=null,0!=a&&(s=this.tileGrid[0][k][n])?s=g.createNewTile(s.bounds,{x:s.pathCreator.x,y:s.pathCreator.y,z:s.pathCreator.z},this.tileSize):(s=g.createNewTile(t,{x:d+n,y:e+k,z:h},this.tileSize),this._addTileMonitoringHooks(s)),r[n]=s);f.appendChild(s.imageTag);
n++;m.push(s);p+=Math.round(this.tileSize/this.ratio)}while(n<c);k++;q+=Math.round(this.tileSize/this.ratio);p=this._drawBounds.left}while(k<b);var u=this._centerTile;m.sort(function(a,b){var c=a.pathCreator.x-u.tileX,d=a.pathCreator.y-u.tileY,e=b.pathCreator.x-u.tileX,f=b.pathCreator.y-u.tileY;return Math.sqrt(c*c+d*d)-Math.sqrt(e*e+f*f)});a=0;for(b=m.length;a<b;a++)m[a].draw();g._addNode(f)},_calculateDrawBounds:function(a,b,c){this._centerTile=this._calculateTileNumber(b,c);b=Math.round(a.getCenterX())-
this._centerTile.tilePointX;c=Math.round(a.getCenterY())-this._centerTile.tilePointY;b=new navitime.geo.BoundsInfo(b,b+Math.round(this.tileSize/this.ratio),c,c+Math.round(this.tileSize/this.ratio));this._centerTile.bounds=b;var d=Math.ceil((b.left-a.left)/(this.tileSize/this.ratio));c=Math.ceil((a.right-b.right)/(this.tileSize/this.ratio));c=d+c+1+Math.max(1,2*this.bufferTileNum);var e=Math.ceil((b.top-a.top)/(this.tileSize/this.ratio));a=Math.ceil((a.bottom-b.bottom)/(this.tileSize/this.ratio));
a=e+a+1+Math.max(1,2*this.bufferTileNum);d=b.left-Math.round(this.tileSize/this.ratio*(d+this.bufferTileNum));b=b.top-Math.round(this.tileSize/this.ratio*(e+this.bufferTileNum));this._drawBounds=new navitime.geo.BoundsInfo(d,d+Math.round(c*(this.tileSize/this.ratio)),b,b+Math.round(a*(this.tileSize/this.ratio)))},_calculateTileNumber:function(a,b){var c=this.tileSize/(2*Math.PI),d=this.tileSize/2,e=this.tileSize/2+a.lng/36E5*(this.tileSize/360),f=Math.min(Math.max(Math.sin(a.lat/36E5*(Math.PI/180)),
-0.9999),0.9999),c=d+0.5*Math.log((1+f)/(1-f))*-c,d=e*Math.pow(2,b),f=c*Math.pow(2,b),e=Math.floor(d/this.tileSize),c=Math.floor(f/this.tileSize),d=Math.round((d-e*this.tileSize)/this.ratio),f=Math.round((f-c*this.tileSize)/this.ratio);return{tileX:e,tileY:c,tilePointX:d,tilePointY:f}},_recalculationDrawTiles:function(a){for(var b=0,c=this.tileGrid.length;b<c;b++){for(var d=this.tileGrid[b],e=Math.ceil((d[0][0].bounds.top-this._drawBounds.top+a.top)/(this.tileSize/this.ratio)),f=Math.floor((this._drawBounds.bottom-
d[d.length-1][d[d.length-1].length-1].bounds.bottom-a.top)/(this.tileSize/this.ratio)),g=Math.ceil((d[0][0].bounds.left-this._drawBounds.left+a.left)/(this.tileSize/this.ratio)),h=Math.floor((this._drawBounds.right-d[d.length-1][d[d.length-1].length-1].bounds.right-a.left)/(this.tileSize/this.ratio)),k,l,m=Math.abs(e);m--;)if(0>e)for(k=d.shift();l=k.pop();)l.destroy();else 0<e&&this._shiftRow(b,!0,!0);for(m=Math.abs(f);m--;)if(0>f)for(k=d.pop();l=k.pop();)l.destroy();else 0<f&&this._shiftRow(b,!1,
!0);for(m=Math.abs(g);m--;)if(0>g)for(e=0,f=d.length;e<f;e++)l=d[e].shift(),l.destroy();else 0<g&&this._shiftColumn(b,!0,!0);for(m=Math.abs(h);m--;)if(0>h)for(e=0,f=d.length;e<f;e++)l=d[e].pop(),l.destroy();else 0<h&&this._shiftColumn(b,!1,!0)}},_removeExcessTiles:function(a,b,c){a=this.tileGrid[a];for(var d;a.length>b;)for(var e=a.pop(),f=0,g=e.length;f<g;f++)d=e[f],d.destroy();for(;a[0].length>c;)for(f=0,b=a.length;f<b;f++)d=a[f].pop(),d.destroy()},_getMovedLatLng:function(a,b,c,d){null==d&&(d=
this._centerTile);a=1<<a;b=-180+(d.tileX+(d.tilePointX-b)/(this.tileSize/this.ratio))*(360/a);c=1+(d.tileY+(d.tilePointY-c)/(this.tileSize/this.ratio))*(-2/a);c=2*Math.atan(Math.exp(Math.PI*c))-Math.PI/2;c*=180/Math.PI;return new navitime.geo.LatLng(Math.round(36E5*c),Math.round(36E5*b))},_getPixcelFromLatLng:function(a,b){var c=this._calculateTileNumber(a,b);if(!this.tileGrid||!this.tileGrid[0]||!this.tileGrid[0][0])return{left:0,top:0};var d=this.tileGrid[0][0][0],e=c.tilePointY+(c.tileY-d.pathCreator.y)*
(this.tileSize/this.ratio)+d.bounds.top;return{left:Math.round(c.tilePointX+(c.tileX-d.pathCreator.x)*(this.tileSize/this.ratio)+d.bounds.left),top:Math.round(e)}},_addTileMonitoringHooks:function(a){a.onLoadStart=function(){0==this._numLoadingTiles&&this.events.triggerEvent("loadstart");this._numLoadingTiles++};a.events.register("loadstart",this,a.onLoadStart);a.onLoadEnd=function(){this._numLoadingTiles--;0==this._numLoadingTiles&&this.events.triggerEvent("loadend")};a.events.register("loadend",
this,a.onLoadEnd);a.events.register("loadcancel",this,a.onLoadEnd)},clearGrid:function(a){var b=this.tileGrid[a];if(b){for(var c=b.length;c--;){for(var d=b[c],e=d.length;e--;)d[e].destroy(),delete this.tileGrid[a][c][e];delete this.tileGrid[a][c]}delete this.tileGrid[a];this.tileGrid.splice(a,1);this._layers.splice(a,1);for(c=a;c<this._layers.length;c++)this._layers[c]._gridNum=c}}});navitime.geo.namespace("navitime.geo.graphics");
navitime.geo.graphics.GraphicUtil={createSimplifiedIndex:function(a){for(var b=Array(a.length),c=a.length;c--;)b[c]=!0;this._reducePoints(a,1,b);this._simplifyDP(a,1,b,0,a.length-1);return b},_reducePoints:function(a,b,c){for(var d=1,e=d-1,f=a.length-1;d<f;d++)this._sqDist(a[d],a[e])<=b?c[d]=!1:e=d},_simplifyDP:function(a,b,c,d,e){for(var f=0,g,h=0,k=d+1;k<=e-1;k++)!1!==c[k]&&(g=this._sqDistanceOnSegment(a[k],a[d],a[e]),g>f&&(h=k,f=g));if(f>b)this._simplifyDP(a,b,c,d,h),this._simplifyDP(a,b,c,h,e);
else for(a=d+1;a<e-1;a++)c[a]=!1},_sqDist:function(a,b){var c=b.x-a.x,d=b.y-a.y;return c*c+d*d},_calcConstantFactor:function(a,b,c){var d=b.x;b=b.y;var e=a.x;a=a.y;var f=c.x-d;c=c.y-b;var g=f*f+c*c;return 0<g?((e-d)*f+(a-b)*c)/g:0},_calcPerpendicularFoot:function(a,b,c){var d=a.x;a=a.y;return{x:d+c*(b.x-d),y:a+c*(b.y-a)}},_sqDistanceOnSegment:function(a,b,c){var d=this._calcConstantFactor(a,b,c);b=this._calcPerpendicularFoot(b,c,d);return this._sqDist(a,b)},clipPolyline:function(a,b){for(var c={min:{x:b.left,
y:b.top},max:{x:b.right,y:b.bottom}},d=a.length,e=[],f=0,g=0;f<d-1;f++){var h=this._clipSegment(a[f],a[f+1],c,f);h&&(e[g]=e[g]||[],e[g].push(h[0]),h[1]!==a[f+1]||f===d-2)&&(e[g].push(h[1]),g++)}return e},_clipSegment:function(a,b,c,d){d=d?this._lastCode:this._getBitCode(a,c);var e=this._getBitCode(b,c),f,g,h;for(this._lastCode=e;;)if(d|e){if(d&e)return!1;f=d||e;g=this._getEdgeIntersection(a,b,f,c);h=this._getBitCode(g,c);f===d?(a=g,d=h):(b=g,e=h)}else return[a,b]},clipPolygon:function(a,b){for(var c=
{min:{x:b.left,y:b.top},max:{x:b.right,y:b.bottom}},d=[1,4,2,8],e=0,f=a.length;e<f;e++)a[e]._code=this._getBitCode(a[e],c);for(var g=0;4>g;g++){var h=d[g],k=[],l,e=0,f=a.length;for(l=f-1;e<f;l=e++){var m=a[e];l=a[l];m._code&h?l._code&h||(l=this._getEdgeIntersection(l,m,h,c),l._code=this._getBitCode(l,c),k.push(l)):(l._code&h&&(l=this._getEdgeIntersection(l,m,h,c),l._code=this._getBitCode(l,c),k.push(l)),k.push(m))}a=k}return a},isClipArrow:function(a,b,c){c={min:{x:c.left,y:c.top},max:{x:c.right,
y:c.bottom}};a=this._getBitCode(a,c);b=this._getBitCode(b,c);return!(a&&b)},_calcVector:function(a,b){var c=a.x-b.x,d=a.y-b.y,e=Math.sqrt(c*c+d*d);return{x:c,y:d,vectorLen:e}},_getBitCode:function(a,b){var c=0;a.x<b.min.x?c|=1:a.x>b.max.x&&(c|=2);a.y<b.min.y?c|=4:a.y>b.max.y&&(c|=8);return c},_getEdgeIntersection:function(a,b,c,d){var e=b.x-a.x;b=b.y-a.y;var f=d.min;d=d.max;if(c&8)return{x:Math.floor(a.x+e*(d.y-a.y)/b),y:d.y};if(c&4)return{x:Math.floor(a.x+e*(f.y-a.y)/b),y:f.y};if(c&2)return{x:d.x,
y:Math.floor(a.y+b*(d.x-a.x)/e)};if(c&1)return{x:f.x,y:Math.floor(a.y+b*(f.x-a.x)/e)}}};navitime.geo.namespace("navitime.geo.layer");
navitime.geo.layer.AbstractLayer=navitime.geo.base.Class({EVENT_TYPES:[],div:null,map:null,events:null,_isTileLayer:!1,initialize:function(){this.div=navitime.geo.DOM.create("div","ntgeo-layer");this.events=new navitime.geo.event.InnerEventController(this,null,this.EVENT_TYPES)},destroy:function(){this.map&&(this._isTileLayer&&this._gridNum&&this.map._grid.clearGrid(this._gridNum),this.map.removeLayer(this));this.div=this.map=null;this.events&&this.events.destroy();this.events=null},_onAdd:function(a){this.map=
a.getMap()},setMap:function(a){if(a)return this.map=a.getMap(),this.map.addLayer(this),this.draw(),!0;this.map&&(this._isTileLayer&&this._gridNum&&this.map._grid.clearGrid(this._gridNum),this.map.removeLayer(this),this.map=null);return!1},getMap:function(){return this._map},draw:function(){},changeVisibility:function(a){this.div&&(this.div.style.visibility=a?"":"hidden")},isVisible:function(){return this.div&&"hidden"===this.div.style.visibility?!1:!0},displayAllSpecifyLatLngs:function(a,b,c){a=navitime.geo.Util.calcAutomaticAdjustmentViewPort(this.map,
a,b,c);this.map.setCenter(a.latlng,a.zoom)||window.setTimeout(navitime.geo.Util.Function.bind(this.map.setCenter,this.map,a.latlng,a.zoom),250);return a},getDiv:function(){return this.div}});navitime.geo.namespace("navitime.geo.layer");
navitime.geo.layer.MarkerLayer=navitime.geo.base.Class(navitime.geo.layer.AbstractLayer,{_markers:null,initialize:function(){navitime.geo.layer.AbstractLayer.prototype.initialize.apply(this,arguments);this.div.style.zIndex="1000";this._markers=[]},destroy:function(){this.clearMarkers();this._markers=null;navitime.geo.layer.AbstractLayer.prototype.destroy.apply(this,arguments)},_onAdd:function(a){navitime.geo.layer.AbstractLayer.prototype._onAdd.apply(this,arguments)},setMap:function(a){a?(a.events.register("zoomend",
this,this.draw),a.events.register("moveend",this,this.draw),a.events.register("resize",this,this.draw),navitime.geo.marker.Popup&&(navitime.geo.marker.Popup.prototype.CLOSE_ICON_URL=a._config.getFileRequestURL()+"/"+a._config.CLOSE_URL)):(this.map.events.unregister("zoomend",this,this.draw),this.map.events.unregister("moveend",this,this.draw),this.map.events.unregister("resize",this,this.draw));navitime.geo.layer.AbstractLayer.prototype.setMap.apply(this,arguments)},draw:function(){for(var a=0,b=
this._markers.length;a<b;a++)this.moveMarker(this._markers[a])},addMarker:function(a,b){if(void 0===b||null===b)b=!0;this._markers.push(a);a._appendDiv(this.div);a.display(b);this.map&&setTimeout(navitime.geo.Util.Function.bind(function(){this.moveMarker(a)},this),50)},removeMarker:function(a){for(var b=this._markers.length;b--;)this._markers[b]==a&&(this._markers.splice(b,1),a.destroy())},clearMarkers:function(){for(;0<this._markers.length;)this.removeMarker(this._markers[0])},moveMarker:function(a){var b=
this.map.getPixcelFromLatLng(a.latlng);null==b?a.display(!1):a.moveTo(b.left,b.top)},showAll:function(){for(var a=this._markers.length;a--;)this._markers[a].display(!0),this.moveMarker(this._markers[a])},displayAllMarkers:function(a,b){for(var c=[],d=0,e=this._markers.length;d<e;d++)this._markers[d].excludedTraget||c.push(this._markers[d].latlng);0!==c.length&&this.displayAllSpecifyLatLngs(c,b,a)}});navitime.geo.namespace("navitime.geo.layer");
navitime.geo.layer.PolylineLayer=navitime.geo.base.Class(navitime.geo.layer.AbstractLayer,{_json:null,_wayPoints:null,_renderer:null,_isAllDisplay:!1,_drawBounds:null,_isDisplayAllRoute:!1,displayArrowRange:null,displayArrow:!1,_serial:null,_inslide:-4,_outslide:1,DASH_ARRAY:[null,"2,2","1,1","2,2,1,2","2,2,1,2,1,2"],_lineInfo:null,_simplifiedRoutes:null,_routeBounds:null,_buffer:1,_zIndex:0,_graphicUtil:navitime.geo.graphics.GraphicUtil,DEFAULT_ROUTE_INFO:new navitime.geo.RouteInfo(0,7,"blue",0.7),
initialize:function(a){this.events=new navitime.geo.event.InnerEventController(this,null,this.EVENT_TYPES);this._renderer=navitime.geo.base.graphics.Renderer;this._simplifiedRoutes=[];this._serial=navitime.geo.Util._getSerial();a&&(this.displayArrow=a.displayArrow?!0:!1,this._zIndex=a.zIndex?a.zIndex:500)},destroy:function(){this._json=this._simplifiedRoutes=null;this.map&&this.setMap(null);navitime.geo.layer.AbstractLayer.prototype.destroy.apply(this,arguments)},_onAdd:function(a){this.displayArrowRange=
{min:this.map._zoomMin,max:this.map._zoomMax}},setMap:function(a){if(a){if(this.map){if(this.map==a)return;this.setMap(null)}a.events.register("zoomend",this,this.draw);a.events.register("moveend",this,this.draw);a.events.register("resize",this,this.draw);a.events.register("panend",this,this._moveend)}else if(this.map&&(this.map.events.unregister("zoomend",this,this.draw),this.map.events.unregister("moveend",this,this.draw),this.map.events.unregister("resize",this,this.draw),this.map.events.unregister("panend",
this,this._moveend)),this.div)for(var b=this.div.childNodes,c=b.length;c--;)for(var d=b[c].childNodes,e=d.length;e--;)b[c].removeChild(d[e]);navitime.geo.layer.AbstractLayer.prototype.setMap.apply(this,arguments)},setDrawData:function(a){if(this._json){if(this.div)for(var b=this.div.childNodes,c=b.length;c--;)for(var d=b[c].childNodes,e=d.length;e--;)b[c].removeChild(d[e]);this._json=null;this._simplifiedRoutes=[]}this._json=a;this._json.route[0].line||(this._json.route[0].line=[{type:0,size:7,color:"#4bff00",
opacity:195,is_use:1},{type:0,size:7,color:"#325a00",opacity:128,is_use:1}]);b=a.pos;this._wayPoints=[];for(c=b.length;c--;)d=a.route[b[c].no],this._wayPoints.push(new navitime.geo.LatLng(d.lat,d.lon));this.map&&this.draw()},_moveend:function(){if(!this._isAllDisplay&&this._drawBounds){var a=this.map.getViewDivPixel(),b=this._drawBounds.getCenterX()+a.left-this._drawBounds.prevLeft,c=this._drawBounds.getCenterY()+a.top-this._drawBounds.prevTop,d=this.map._displayBounds.getWidth()/2,e=this.map._displayBounds.getHeight()/
2;this._drawBounds.left+d<=b&&b<=this._drawBounds.right-d&&this._drawBounds.top+e<=c&&c<=this._drawBounds.bottom-e||(this.draw(),this._drawBounds.prevLeft=a.left,this._drawBounds.prevTop=a.top)}},draw:function(){if(!this._json||1>=this._json.route.length)return!0;this.div||(this.div=this._renderer.createBaseDiv(),this.div.style.zIndex=this._zIndex,navitime.geo.base.CSS3Style&&navitime.geo.base.CSS3Style.USERSELECT&&(this.div.style[navitime.geo.base.CSS3Style.USERSELECT]="none"),this.div.setAttribute("unselectable",
"on",0),this.div.onselectstart=function(){return!1},this.map._objectContainerDiv.appendChild(this.div),this._isDisplayAllRoute&&this.displayAllRoute());this.div.style.display="none";var a=this.map._grid._drawBounds,b=this.map.getViewDivPixel();this._drawBounds=new navitime.geo.BoundsInfo(a.left-a.getWidth()*this._buffer-b.left,a.right+a.getWidth()*this._buffer-b.left,a.top-a.getHeight()*this._buffer-b.top,a.bottom+a.getHeight()*this._buffer-b.top);this._drawBounds.prevLeft=0;this._drawBounds.prevTop=
0;for(var a=this._simplifiedRoutes[this.map._zoom]?this._createPixelPoints(this._calcPixelPoints(this._simplifiedRoutes[this.map._zoom].simplifiedLatlngPoints)):this._createSimplifiedPixelPoints(this._json.route,this._json.pos),b=this._json.pos,c=0,d=0,e=!0,f=0,g=b.length-1;f<g;f++){var h=document.getElementById("group_"+this._serial+"_"+f);h||(h=this._renderer.createGroupDiv("group_"+this._serial+"_"+f),this.div.appendChild(h));for(var k=h.childNodes,l=k.length;l--;){var m=k.childNodes;if(m)for(var p=
m.length;p--;)k.removeChild(m[p]);h.removeChild(k[l])}h.style.display="none";m=a[c];void 0==m.line[0]&&(m.line[0]={is_use:0});void 0==m.line[1]&&(m.line[1]={is_use:0});for(var q=[],k={inline:[],outline:[],arrowList:[]},l=c,c=a.length;l<c;l++)if(0===m.line[0].is_use&&0===m.line[1].is_use||q.push(a[l]),void 0!==a[l].line&&!this._isEqualLineInfo(m,a[l])||a[l].no===b[f+1].no){var r=this._graphicUtil.clipPolyline(q,this._drawBounds),n=0,t,p=0;for(t=r.length;p<t;p++)0!==r[p].length&&(n+=r[p].length,this._drawPolyline(m,
r[p],k));q.length!==n&&(e=!1);if(a[l].no===b[f+1].no){a[l].line=a[d].line;d=l;break}m=a[l];void 0==m.line[0]&&(m.line[0]={is_use:0});void 0==m.line[1]&&(m.line[1]={is_use:0});q=[];d=l;l--}c=l;p=k.inline;m=k.outline;q=k.arrowList;l=0;for(r=k.outline.length;l<r;l++)h.appendChild(m[l]);l=0;for(r=k.inline.length;l<r;l++)h.appendChild(p[l]);l=0;for(r=k.arrowList.length;l<r;l++)h.appendChild(q[l]);h.style.display=""}this._isAllDisplay=e;this._renderer.setViewPort(this.div,new navitime.geo.BoundsInfo(this._drawBounds.left-
20,this._drawBounds.right+20,this._drawBounds.top-20,this._drawBounds.bottom+20));this.events.triggerEvent("routedrawend");this.div.style.display="";return!0},_drawPolyline:function(a,b,c){for(var d=c.arrowList,e=this._lineInfo?this._lineInfo:this._getLineInfo(a),f="",g="",h=0,k=b.length;h<k;h++){var l=b[h],f=f+(l.x+this._inslide+","+(l.y+this._inslide)+" "),g=g+(l.x+this._outslide+","+(l.y+this._outslide)+" ");this.displayArrow&&(l.arrowFlag&&0<h)&&d.push(this._createArrow({left:b[h].x,top:b[h].y},
{left:b[h-1].x,top:b[h-1].y},a,e))}b=this._serial+"_"+a.no;0!==a.line[0].is_use&&(f=this._renderer.drawPolyline("i_"+b,f,null,{strokecolor:e._inlineInfo.color.getHex(),strokeweight:e._inlineInfo.size,strokeopacity:e._inlineInfo.opacity,strokelinecap:e._inlineInfo.linecap,strokelinejoin:e._inlineInfo.linejoin,strokedasharray:this.DASH_ARRAY[e._inlineInfo.type]}),c.inline.push(f));e._outlineInfo&&0!==a.line[1].is_use&&(a=this._renderer.drawPolyline("o_"+b,g,null,{strokecolor:e._outlineInfo.color.getHex(),
strokeweight:e._outlineInfo.size,strokeopacity:e._outlineInfo.opacity,strokelinecap:e._outlineInfo.linecap,strokelinejoin:e._outlineInfo.linejoin,strokedasharray:this.DASH_ARRAY[e._outlineInfo.type]}),c.outline.push(a))},_createSimplifiedPixelPoints:function(a,b){for(var c=this._calcPixelPoints(a),d=this._graphicUtil.createSimplifiedIndex(c),e=b.length;e--;)d[b[e].no]=!0;var f=this._drawBounds.getHeight()/(2*this._buffer+1)/3,g=0,h=[],k=[a[0]],l=[c[0]],m=c[0],p,e=1;for(p=d.length;e<p;e++)if(h[e]=
!1,a[e].line)d[e]=!0,k.push(a[e]),l.push(c[e]);else if(d[e]){k.push(a[e]);var q=c[e].x-m.x,m=c[e].y-m.y,q=q*q+m*m;0!==q&&(g+=Math.sqrt(q),g>f&&e<p-10&&(h[k.length-1]=!0,c[e].arrowFlag=!0,g=0));m=c[e];l.push(c[e])}this._simplifiedRoutes[this.map._zoom]={simplifiedLatlngPoints:k,arrowIndex:h};return l},_createPixelPoints:function(a){for(var b=this._simplifiedRoutes[this.map._zoom].arrowIndex,c=[],d=a.length;d--;)b[d]&&(a[d].arrowFlag=!0),c.push(a[d]);return c.reverse()},_calcPixelPoints:function(a){for(var b=
this.map,c=[],d=a.length;d--;){var e=a[d],f=b.getPixcelFromLatLng({lat:e.lat,lng:e.lon});c.push({x:f.left,y:f.top,no:e.no,roadtype:e.roadtype,line:e.line})}return c.reverse()},_getLineInfo:function(a){var b=this.DEFAULT_ROUTE_INFO,c=null;a.line&&(b=new navitime.geo.RouteInfo(a.line[0].type,a.line[0].size,a.line[0].color,a.line[0].opacity/256),a.line[1]&&(c=new navitime.geo.RouteInfo(a.line[1].type,a.line[1].size,a.line[1].color,a.line[1].opacity/256)));return new navitime.geo.base.LineInfo(b,c)},
_isEqualLineInfo:function(a,b){if(!b.line)return!1;for(var c,d,e,f=!0,g=0,h=b.line.length;g<h;g++)if(c=a.line[g],d=b.line[g],c&&d)for(e in c)c[e]!==d[e]&&(f=!1);return f},visibleTargetRoute:function(a){for(var b=this._json.pos.length;b--;){var c=document.getElementById("group_"+this._serial+"_"+b);c&&(c.style.visibility=a===b?"":"hidden")}},visibleAllRoute:function(){for(var a=0,b=this._json.pos.length;a<b;a++){var c=document.getElementById("group_"+this._serial+"_"+a);c&&(c.style.visibility="")}},
_createArrow:function(a,b,c,d){var e=a.left-b.left;b=a.top-b.top;var f=Math.sqrt(e*e+b*b),e=e/f;b/=f;var g=a.left-7*b-7*e,h=a.top+7*e-7*b,k=a.left+7*b-7*e,l=a.top-7*e-7*b,e=Math.round((k+g)/2)+this._inslide;b=Math.round((l+h)/2)+this._inslide;var f=a.left+this._inslide,m=a.top+this._inslide,p=Math.round(Math.sqrt((e-f)*(e-f)+(b-m)*(b-m))+4),g=Math.round((3*g+a.left)/4)+this._inslide,h=Math.round((3*h+a.top)/4)+this._inslide,k=Math.round((3*k+a.left)/4)+this._inslide;a=Math.round((3*l+a.top)/4)+this._inslide;
d=new navitime.geo.Color(d._inlineInfo.color.getHex());d.addBrightnessPercent(-50);d=this._renderer.drawCircle("circle",e,b,p,p,null,{strokecolor:"white",strokeweight:2,fillopacity:0.8,strokeopacity:0.8,fillcolor:d.getHex()});p=""+(g+","+h+" ")+(f+","+m+" ");p+=k+","+a;a=this._renderer.drawPolyline("arrow",p,null,{strokecolor:"white",strokeweight:2,strokeopacity:1,strokelinecap:"butt",strokelinejoin:"butt"});e=""+(f+","+m+" ")+(2*e-f+","+(2*b-m));e=this._renderer.drawPolyline("straight",e,null,{strokecolor:"white",
strokeweight:2,strokeopacity:1,strokelinecap:"butt",strokelinejoin:"butt"});c=this._renderer.createGroupDiv("arrowGroup_"+this._serial+"_"+c.start);c.appendChild(d);c.appendChild(a);c.appendChild(e);return c},displayAllRoute:function(a,b){0!==this._wayPoints.length&&this.displayAllSpecifyLatLngs(this._wayPoints,b,a)},showArrow:function(){this.displayArrow=!0;this.draw()},hideArrow:function(){this.displayArrow=!1;this.draw()},setDisplayAllRoute:function(a){this._isDisplayAllRoute=a},setRouteInfo:function(a){this._lineInfo=
a?new navitime.geo.base.LineInfo(a.inLine,a.outLine):null},setDisplayArrowRange:function(a,b){a&&(this.displayArrowRange.min=a);b&&(this.displayArrowRange.max=b)},setDisplayArrow:function(a){a?this.showArrow():this.hideArrow()}});navitime.geo.namespace("navitime.geo.layer.tile");
navitime.geo.layer.tile.TransparencyTileLayer=navitime.geo.base.Class(navitime.geo.layer.AbstractLayer,{url:null,_isTileLayer:!0,initialize:function(a){navitime.geo.layer.AbstractLayer.prototype.initialize.apply(this,arguments);navitime.geo.base.CSS3Style&&navitime.geo.base.CSS3Style.USERSELECT&&(this.div.style[navitime.geo.base.CSS3Style.USERSELECT]="none");this.div.setAttribute("unselectable","on",0);this.div.onselectstart=function(){return!1};a=a?a:{};this.url=a.url},destroy:function(){navitime.geo.layer.AbstractLayer.prototype.destroy.apply(this,
arguments)},setMap:function(a){this.url=this.url?this.url+(this.url.lastIndexOf("/")==this.url.length-1?"":"/"):a._config.getTileRequestURL();navitime.geo.layer.AbstractLayer.prototype.setMap.apply(this,arguments)},draw:function(){this.map._grid.createTargetTiles(this._gridNum)},_addNode:function(a){this.div.appendChild(a)},createNewTile:function(a,b,c){return null}});navitime.geo.namespace("navitime.geo.layer.tile");
navitime.geo.layer.tile.SatelliteAnnotationLayer=navitime.geo.base.Class(navitime.geo.layer.tile.TransparencyTileLayer,{initialize:function(a){navitime.geo.layer.tile.TransparencyTileLayer.prototype.initialize.apply(this,arguments);this.div.style.zIndex=300},createNewTile:function(a,b,c){var d=new navitime.geo.base.TileMapParameter,e=this.map._config.LANG;e&&"ja"!==e&&d.addQueryParam("lang",e);return new navitime.geo.tile.Tile(this.url,this.map._config.getFileRequestURL()+"/"+this.map._config.BLANK_URL,
a,d,new navitime.geo.base.RequestPathCreator(b,c,"annotation"))}});navitime.geo.namespace("navitime.geo.layer.tile");
navitime.geo.layer.tile.TrafficJamLayer=navitime.geo.base.Class(navitime.geo.layer.tile.TransparencyTileLayer,{_trafficTime:null,_searchtime:null,_annotation:!0,_uid:null,_definedRegulation:!1,_drCatrgoty:null,_regulationTime:null,_displacement:null,_tandem:!1,_drawArrow:!1,_tfsrc:"vics.probe",_roadregulation:!1,_carType:null,_height:null,_width:null,_length:null,_weight:null,_maxload:null,_dangerousGoods:!1,_useTraffic:!0,initialize:function(a){navitime.geo.layer.tile.TransparencyTileLayer.prototype.initialize.apply(this,arguments);
a&&a.hasOwnProperty("annotation")&&this.setAnnotation(a.annotation);a&&a.hasOwnProperty("uid")&&this.setUid(a.uid);a&&a.hasOwnProperty("drawArrow")&&this.setDrawArrow(a.drawArrow);a&&a.hasOwnProperty("tfsrc")&&(this._tfsrc=a.tfsrc);if(navitime.geo.base.Config.hasOwnProperty("TFSRC")){var b=navitime.geo.base.Config.TFSRC;if("none"===b)throw Error("\u6e0b\u6ede\u60c5\u5831\u3092\u3054\u5229\u7528\u3044\u305f\u3060\u3051\u307e\u305b\u3093");this._tfsrc=b}a&&a.hasOwnProperty("definedRegulation")&&this.setDefinedRegulation(a.definedRegulation);
a&&a.hasOwnProperty("roadregulation")&&this.setRoadregulation(a.roadregulation);a&&a.hasOwnProperty("dangerousGoods")&&this.setDangerousGoods(a.dangerousGoods);a&&a.hasOwnProperty("useTraffic")&&this.setUseTraffic(a.useTraffic);a&&a.hasOwnProperty("displacement")&&this.setDisplacement(a.setDisplacement);a&&a.hasOwnProperty("tandem")&&this.setTandem(a.tandem);this.div.style.zIndex=300},createNewTile:function(a,b,c){var d=new navitime.geo.base.TileMapParameter,e=this.map._config.LANG;e&&"ja"!==e&&d.addQueryParam("lang",
e);d.setTrafficTime(navitime.geo.Util.Function.bind(function(){return this._trafficTime},this));d.setSearchTime(navitime.geo.Util.Function.bind(function(){return this._searchtime},this));d.setAnnotation(navitime.geo.Util.Function.bind(function(){return this._annotation},this));d.setUid(navitime.geo.Util.Function.bind(function(){return this._uid},this));d.setDrawArrow(navitime.geo.Util.Function.bind(function(){return this._drawArrow},this));d.setTfsrc(navitime.geo.Util.Function.bind(function(){return this._tfsrc},
this));d.setDefinedRegulation(navitime.geo.Util.Function.bind(function(){return this._definedRegulation},this));d.setDefinedRegulationCategory(navitime.geo.Util.Function.bind(function(){return this._drCatrgoty},this));d.setRegulationTime(navitime.geo.Util.Function.bind(function(){return this._regulationTime},this));d.setDisplacement(navitime.geo.Util.Function.bind(function(){return this._displacement},this));d.setTandem(navitime.geo.Util.Function.bind(function(){return this._tandem},this));d.setRoadregulation(navitime.geo.Util.Function.bind(function(){return this._roadregulation},
this));d.setCarType(navitime.geo.Util.Function.bind(function(){return this._carType},this));d.setHeight(navitime.geo.Util.Function.bind(function(){return this._height},this));d.setWidth(navitime.geo.Util.Function.bind(function(){return this._width},this));d.setLength(navitime.geo.Util.Function.bind(function(){return this._length},this));d.setWeight(navitime.geo.Util.Function.bind(function(){return this._weight},this));d.setMaxload(navitime.geo.Util.Function.bind(function(){return this._maxload},this));
d.setDangerousGoods(navitime.geo.Util.Function.bind(function(){return this._dangerousGoods},this));d.setUseTraffic(navitime.geo.Util.Function.bind(function(){return this._useTraffic},this));return new navitime.geo.tile.Tile(this.url,this.map._config.getFileRequestURL()+"/"+this.map._config.BLANK_URL,a,d,new navitime.geo.base.RequestPathCreator(b,c,"traffic"))},setTrafficTime:function(a){this._trafficTime=a},setSearchTime:function(a){this._searchtime=a},setAnnotation:function(a){this._annotation=a},
setUid:function(a){this._uid=a},setDrawArrow:function(a){this._drawArrow=a},setTfsrc:function(a){this._tfsrc=a},setDefinedRegulation:function(a){this._definedRegulation=a},setDefinedRegulationCategory:function(a){this._drCatrgoty=a},setRegulationTime:function(a){this._regulationTime=a},setDisplacement:function(a){this._displacement=a},setTandem:function(a){this._tandem=a},setRoadregulation:function(a){this._roadregulation=a},setCarType:function(a){this._carType=a},setHeight:function(a){this._height=
a},setWidth:function(a){this._width=a},setLength:function(a){this._length=a},setWeight:function(a){this._weight=a},setMaxload:function(a){this._maxload=a},setDangerousGoods:function(a){this._dangerousGoods=a},setUseTraffic:function(a){this._useTraffic=a}});navitime.geo.namespace("navitime.geo.layer.tile");
navitime.geo.layer.tile.RainfallLayer=navitime.geo.base.Class(navitime.geo.layer.tile.TransparencyTileLayer,{_offsettime:0,initialize:function(a){navitime.geo.layer.tile.TransparencyTileLayer.prototype.initialize.apply(this,arguments);a&&a.hasOwnProperty("offsettime")&&(this._offsettime=a.offsettime);this.div.style.zIndex=400},createNewTile:function(a,b,c){var d=new navitime.geo.base.TileMapParameter;d.setRainOffsetTime(navitime.geo.Util.Function.bind(function(){return this._offsettime},this));d.setTimestamp(function(){return navitime.geo.Util.getYYYYMMDDHHMM()});
return new navitime.geo.tile.Tile(this.url,this.getFileRequestURL(),a,d,new navitime.geo.base.RequestPathCreator(b,c,"rainfall"))},getTileRequestURL:function(){return this.url+navitime.geo.base.Config.SERVICE_ID+"/tile"},getFileRequestURL:function(){return this.map._config.getFileRequestURL()+"/"+this.map._config.BLANK_URL},setOffsettime:function(a){this._offsettime=a}});navitime.geo.namespace("navitime.geo.marker");
navitime.geo.marker.Marker=navitime.geo.base.Class({icon:null,latlng:null,events:null,_listeners:null,_excludedTraget:!1,initialize:function(a,b,c,d){this.latlng=a;this.icon=b;this.events=new navitime.geo.event.InnerEventController(this);if(null!=c){this.events.BROWSER_EVENTS=[];this._listeners=c;for(var e in c)"scope"!=e&&(this.events.BROWSER_EVENTS.push(e),this.events.addEventType(e),this.events.register(e,c.scope,c[e]));this.events.attachToElement(this.icon.imageDiv)}d&&(void 0!==d.exclude&&null!==
d.exclude)&&(this._excludedTraget=d.exclude);navitime.geo.base.CSS3Style&&navitime.geo.base.CSS3Style.USERSELECT&&(this.icon.imageDiv.style[navitime.geo.base.CSS3Style.USERSELECT]="none");this.icon.imageDiv.setAttribute("unselectable","on",0);this.icon.imageDiv.onselectstart=function(){return!1}},destroy:function(){this.events.destroy();this.events=null;null!=this.icon&&(this.icon.destroy(),this.icon=null)},moveTo:function(a,b){null!=this.icon&&this.icon.moveTo(a,b)},display:function(a){this.icon.display(a)},
isShow:function(){return""==this.icon.imageDiv.style.display},_appendDiv:function(a){a.appendChild(this.icon.imageDiv)},getLatLng:function(){return this.latlng.clone()},setLatLng:function(a){this.latlng=a}});navitime.geo.namespace("navitime.geo.map");
navitime.geo.map.AbstractMap=navitime.geo.base.Class({EVENT_TYPES:"panstart pan panend movestart moveend zoomstart zoomend rightclick dblrightclick dragstart drag dragcancel dragend longpress centermoved zoomchanged".split(" "),id:null,div:null,_parentDiv:null,_layerContainerDiv:null,_objectContainerDiv:null,_overlayContainerDiv:null,_baseLayer:null,_latlng:null,_beforeMovedLatLng:null,_zoom:null,_beforeZoomdLevel:null,_displayBounds:null,_zoomMin:6,_zoomMax:19,_layers:null,_controls:null,_parts:null,
_overlays:null,events:null,_grid:null,_translateX:0,_translateY:0,_loadTimes:1,_collection:null,_config:null,_options:null,_tileType:null,_copyright:null,_defaultCopyrightText:"",SATELLITE_COPYLIGHT_TEXT:"(c)SHASHIN KAGAKU;(c)SHASHIN KAGAKU;(c)SHASHIN KAGAKU;(c)SHASHIN KAGAKU;(c)SHASHIN KAGAKU;(c)SHASHIN KAGAKU;(c)SHASHIN KAGAKU;(c)SHASHIN KAGAKU;(c)SHASHIN KAGAKU / NTT Data / RESTEC included (c)JAXA / (c)NTT\u7a7a\u9593\u60c5\u5831;(c)SHASHIN KAGAKU / NTT Data / RESTEC included (c)JAXA / (c)NTT\u7a7a\u9593\u60c5\u5831;(c)SHASHIN KAGAKU / NTT Data / RESTEC included (c)JAXA / (c)NTT\u7a7a\u9593\u60c5\u5831;(c)NTT\u7a7a\u9593\u60c5\u5831;(c)NTT\u7a7a\u9593\u60c5\u5831;(c)NTT\u7a7a\u9593\u60c5\u5831".split(";"),
initialize:function(a,b,c,d){this._controls={};this._layers=[];this._overlays=[];this._parts=[];this._latlng=b;this._zoom=c;this._config=navitime.geo.base.Config.clone();d.url&&(this._config.URL_TILE=d.url.lastIndexOf("/")==d.url.length-1?d.url:d.url+"/");d.res&&(this._config.PALETTE_TYPE=d.res);d.tileType&&(this._tileType=d.tileType);d.hasOwnProperty("zoomMin")&&(this._zoomMin=d.zoomMin);d.hasOwnProperty("zoomMax")&&(this._zoomMax=d.zoomMax);this.id=a;this.div=document.getElementById(a);this.div||
(this.div=document.createElement("div"));this.events=new navitime.geo.event.InnerEventController(this,this.div,this.EVENT_TYPES,!0);this._parentDiv=navitime.geo.DOM.create("div","ntgeo-parent",this.div);this._parentDiv.style.backgroundImage="url("+this._config.getFileRequestURL()+"/"+this._config.BG_URL+")";this._displayBounds=d.bounds||this._getCurrentBounds();this._grid=new navitime.geo.base.Grid(this._displayBounds,b,c,d);this._layerContainerDiv=navitime.geo.DOM.create("div","ntgeo-layers ntgeo-fade-anim",
this._parentDiv);this._objectContainerDiv=navitime.geo.DOM.create("div","ntgeo-object",this._layerContainerDiv);this._overlayContainerDiv=navitime.geo.DOM.create("div","ntgeo-overlay",this._objectContainerDiv);this.div.oncontextmenu=navitime.geo.Util.falseFn;this.div.setAttribute("unselectable","on",0);this._parentDiv.setAttribute("unselectable","on",0);this._layerContainerDiv.setAttribute("unselectable","on",0);this._objectContainerDiv.setAttribute("unselectable","on",0);navitime.geo.event.BrowserEventController.addEvent(window,
"unload",navitime.geo.Util.Function.bind(this.destroy,this));this._baseLayer=new navitime.geo.layer.TileLayer(d);this._baseLayer._translateX=0;this._baseLayer._translateY=0;"satellite"===this._tileType&&(this._baseLayer._tileType=this._tileType);this._baseLayer.setMap(this);this._options=d;this._beforeMovedLatLng=this._latlng;this._setCenterMoved();this._beforeZoomdLevel=this._zoom;this._setZoomChanged();a=null;d.copyrightInfo?(a=d.copyrightInfo,a.text||(a.text=this._config.COPYRIGHT_TEXT)):a={text:this._config.COPYRIGHT_TEXT};
this._defaultCopyrightText={text:a.text};"satellite"===this._tileType&&(a=this._createCopyrightText(this._zoom));this._copyright=new navitime.geo.parts.CopyrightText(a);this._copyright.setMap(this);d.scalebarInfo&&!1===d.scalebarInfo.isShow||(new navitime.geo.parts.ScaleBar(d.scalebarInfo?d.scalebarInfo.bottom:null,d.scalebarInfo?d.scalebarInfo.left:null,d.scalebarInfo?d.scalebarInfo.className:"")).setMap(this);d&&!1===d.wheelzoom||(d.wheelzoom=!0);d&&!1===d.dblclickZoom||(d.dblclickZoom=!0)},destroy:function(){if(null!==
this._controls){for(var a in this._controls)this._controls[a].destroy();this._controls=null}if(null!==this._layers){for(a=this._layers.length;a--;)this._layers[a].destroy();this._layers=null}if(null!==this._parts){for(a=this._parts.length;a--;)this._parts[a].destroy();this._parts=null}if(null!==this._overlays){for(a=this._overlays.length;a--;)this._overlays[a].destroy();this._overlays=null}this._parentDiv&&(this._objectContainerDiv&&(this._layerContainerDiv.removeChild(this._objectContainerDiv),this._objectContainerDiv=
null),this._layerContainerDiv&&(this._parentDiv.removeChild(this._layerContainerDiv),this._layerContainerDiv=null),this.div.removeChild(this._parentDiv),this.div=this._parentDiv=null);this._zoom=this._latlng=this._displayBounds=null;this.events.destroy();this.events=null},addLayer:function(a){for(var b=this._layers.length;b--;)if(this._layers[b]==a)return!1;a.div&&(a==this._baseLayer?this._layerContainerDiv.appendChild(a.div):this._objectContainerDiv.appendChild(a.div));a._map||a._onAdd(this);a._isTileLayer&&
(this._grid._layers.push(a),a._gridNum=this._grid._layers.length-1,this._grid.tileGrid[a._gridNum]=[]);this._layers.push(a);return!0},removeLayer:function(a){a.div&&(a==this._baseLayer?this._layerContainerDiv.removeChild(a.div):this._objectContainerDiv.removeChild(a.div));for(var b=this._layers.length;b--;)if(this._layers[b]==a)return this._layers.splice(b,1),this._baseLayer==a&&(this._baseLayer=null),!0;if(a._isTileLayer)for(var b=this._grid._layers,c=b.length;c--;)this.layers[c]==a&&(b.splice(c,
1),delete this._grid.tileGrid[a._gridNum],a._gridNum=null);return!1},addControl:function(a){if(this._controls[a.id])return!1;this._controls[a.id]=a;this._parentDiv.appendChild(a.div);return!0},removeControl:function(a){delete this._controls[a.id];return a.div?(this._parentDiv.removeChild(a.div),!0):!1},addParts:function(a){for(var b=this._parts.length;b--;)if(a==this._parts[b])return!1;this._parts.push(a);this._parentDiv.appendChild(a.div);return!0},removeParts:function(a){for(var b=this._parts.length;b--;)if(a==
this._parts[b])return this._parts.splice(b,1),this._parentDiv.removeChild(a.div),!0;return!1},_changeBaseLayer:function(a){this._baseLayer._tileType=a;this._baseLayer.clearAllTiles();this._grid.tileGrid[this._baseLayer._gridNum]=[];this.moveTo(this.getCenterLatLng(),this._zoom)},_changeCopyright:function(a){this._copyright.setMap(null);a=this._createCopyrightText(a);this._copyright=new navitime.geo.parts.CopyrightText(a);this._copyright.setMap(this)},_createCopyrightText:function(a){return"satellite"===
this._tileType?{text:'\x3cspan style\x3d"background-color: #d3d3d3"\x3e'+this._defaultCopyrightText.text+" / "+this._getSatelliteCopyrightText(a)+"\x3c/span\x3e"}:this._defaultCopyrightText},_refresh:function(a){a&&(this.resizeTo(a),window.clearTimeout(this._resizeId),this._resizeId=null);this._baseLayer.clearAllTiles();this._grid.tileGrid[this._baseLayer._gridNum]=[]},addOverlay:function(a){for(var b=this._overlays.length;b--;)if(a==this._overlays[b])return!1;this._overlays.push(a);this._overlayContainerDiv.appendChild(a.div);
return!0},removeOverlay:function(a){for(var b=this._overlays.length;b--;)if(a==this._overlays[b])return this._overlays.splice(b,1),this._overlayContainerDiv.removeChild(a.div),!0;return!1},setCenter:function(a,b,c){return this._zoom===b?this.panTo(a):this.moveTo(a,b)},moveTo:function(a,b){if(this._baseLayer.listener||this._resizeId)return!1;this.events.triggerEvent("movestart");this._grid._calculateDrawBounds(this._displayBounds,a,b);this._setView(a,b);this.events.triggerEvent("moveend");return!0},
_setCenterMoved:function(){var a=this,b=function(){var b=a.getCenterLatLng(a._latlng);if(a._beforeMovedLatLng.lat!==b.lat||a._beforeMovedLatLng.lng!==b.lng)a.events.triggerEvent("centermoved",b),a._beforeMovedLatLng=b};navitime.geo.util.addListener(this,"moveend",b);navitime.geo.util.addListener(this,"panend",b)},_setZoomChanged:function(){var a=this;navitime.geo.util.addListener(this,"zoomend",function(){var b=a.getZoom();b!==a._beforeZoomdLevel&&(a.events.triggerEvent("zoomchanged",b),a._beforeZoomdLevel=
b)})},panTo:function(a){var b=this.getViewDivPixel();if(0===b.left&&0===b.top&&this._latlng.equals(a))return!1;this._latlng=a;var c=this.getPixcelFromLatLng(a),d=c.left-Math.ceil(this._displayBounds.getCenterX())+b.left,b=c.top-Math.ceil(this._displayBounds.getCenterY())+b.top,c=this._displayBounds.getWidth()*this._loadTimes,e=this._displayBounds.getHeight()*this._loadTimes;this._isPan=!0;return d>=-c&&d<=c&&b>=-e&&b<=e?(this.events.triggerEvent("panstart"),this._moving(d,b),!0):this.moveTo(a,this._zoom)},
panBy:function(a,b){this._isPan=!0;var c=this._displayBounds.getWidth()*this._loadTimes,d=this._displayBounds.getHeight()*this._loadTimes;if(a>=-c&&a<=c&&b>=-d&&b<=d)return this.events.triggerEvent("panstart"),this._moving(a,b),!0;c=this.getViewDivPixel();c=this.getMovedLatLng(-a+c.left,-b+c.top);return this.moveTo(c,this._zoom)},_moveToPix:function(a,b){if(this._baseLayer.listener||this._resizeId)return!1;this._isPan=!0;this._requestAnimFrame(navitime.geo.Util.Function.bind(this._transform,this,
a,b),!0);this._grid.moveALLTiles(this.getViewDivPixel());this.events.triggerEvent("pan");return!0},_setView:function(a,b){this._zoom!==b&&this._savePosition();this._latlng=a;this._zoom=b;this._grid.createAllTiles();var c=this.getPixcelFromLatLng(a),d=this.getViewDivPixel(),e=c.left-Math.ceil(this._displayBounds.getCenterX())+d.left,c=c.top-Math.ceil(this._displayBounds.getCenterY())+d.top;this._transform(e,c);this._isPan=!1},_savePosition:function(){},zoomTo:function(a,b,c,d){if(this._baseLayer.listener||
this._resizeId)return!1;a=this._checkZoomDelta(a);if(0===a)return!1;this.events.triggerEvent("zoomstart");d=!d||!0===d.animation;var e=this._zoom+a;if(this._isPan||0!==b||0!==c){var f=this.getViewDivPixel();this._latlng=this._grid._getMovedLatLng(this._zoom,f.left-b,f.top-c);if(0!==b||0!==c)f=this._grid._calculateTileNumber(this._latlng,e),this._latlng=this._grid._getMovedLatLng(e,b,c,f),this.events.triggerEvent("movestart")}d?this._zoomAnimation(a,b,c):this._noZoomAnimation(a);this._changeCopyright(e)},
zoomToCenter:function(a,b,c,d){if(!this._baseLayer.listener&&!this._resizeId){a=this._checkZoomDelta(a);if(0===a)return null;this.events.triggerEvent("zoomstart");d=!d||!0===d.animation;var e=this._zoom+a,f=this.getViewDivPixel();if(this._isPan||0!==b||0!==c)this._latlng=this._grid._getMovedLatLng(this._zoom,f.left-b,f.top-c);d?this._zoomAnimation(a,0<a?2*b:-b,0<a?2*c:-c):this._noZoomAnimation(a);this._changeCopyright(e)}},_checkZoomDelta:function(a){var b=this._zoom+a;if(b<this._zoomMin||this._zoomMax<
b){if(b<this._zoomMin&&this._zoom==this._zoomMin||b>this._zoomMax&&this._zoom==this._zoomMax)return 0;a=b<this._zoomMin?this._zoomMin-this._zoom:this._zoomMax-this._zoom}return a},_zoomAnimation:function(a,b,c){},_noZoomAnimation:function(){},_transform:function(a,b){},changeSize:function(a){this._resizeId&&window.clearTimeout(this._resizeId);this.events._clearMouseCache();this._resizeId=setTimeout(navitime.geo.Util.Function.bind(function(a){a=a?a:this._getCurrentBounds();var c=this.getMovedLatLng(this._displayBounds.getCenterX()-
a.getCenterX(),this._displayBounds.getCenterY()-a.getCenterY());this._displayBounds=a;this._grid._calculateDrawBounds(this._displayBounds,c,this.getZoom(),!0);this._grid._recalculationDrawTiles(this.getViewDivPixel());this._latlng=this.getCenterLatLng();this.events&&this.events.triggerEvent("resize");this._resizeId=null},this,a),200)},resizeTo:function(a){this.changeSize(a)},getViewDivPixel:function(){return{left:this._translateX-this._baseLayer._translateX,top:this._translateY-this._baseLayer._translateY}},
getMovedLatLng:function(a,b,c){var d=null;c&&(d=this._grid._calculateTileNumber(c,this.getZoom()));return this._grid._getMovedLatLng(this._zoom,a,b,d)},getBounds:function(){var a=this._displayBounds.getWidth(),b=this._displayBounds.getHeight(),c=this.getCenterLatLng(),c=this._grid._calculateTileNumber(c,this._zoom);return new navitime.geo.LatLngBounds(this._grid._getMovedLatLng(this._zoom,-a/2,b/2,c),this._grid._getMovedLatLng(this._zoom,a/2,-b/2,c))},getCenterLatLng:function(a){var b=this.getViewDivPixel();
return a?this.getMovedLatLng(b.left,b.top,a):this.getMovedLatLng(b.left,b.top)},_getCurrentBounds:function(){var a=null;return a=isNaN(this._parentDiv.clientLeft)&&isNaN(this._parentDiv.clientTop)?new navitime.geo.BoundsInfo(this._parentDiv.style.left,this._parentDiv.style.left+this._parentDiv.style.width,this._parentDiv.style.top,this._parentDiv.style.top+this._parentDiv.style.height):new navitime.geo.BoundsInfo(this._parentDiv.clientLeft,this._parentDiv.clientLeft+this._parentDiv.clientWidth,this._parentDiv.clientTop,
this._parentDiv.clientTop+this._parentDiv.clientHeight)},getPixcelFromLatLng:function(a){return this._grid._getPixcelFromLatLng(a,this._zoom)},_moving:function(a,b){if(!this._resizeId){var c=0<a?Math.ceil(0.3*a):Math.floor(0.3*a),d=0<b?Math.ceil(0.3*b):Math.floor(0.3*b);0===c&&0===d||this.isMovingStop?this.events.triggerEvent("panend"):(this._transform(c,d),this._grid.moveALLTiles(this.getViewDivPixel()),this._requestAnimFrame(navitime.geo.Util.Function.bind(this._moving,this,a-c,b-d),!1))}},_requestAnimFrame:function(){function a(a){window.setTimeout(a,
1E3/60)}var b=window.requestAnimationFrame||window.webkitRequestAnimationFrame||window.mozRequestAnimationFrame||window.oRequestAnimationFrame||window.msRequestAnimationFrame||a;return function(c,d){d&&b===a?c():b(c)}}(),clearCache:function(){this._baseLayer.clearCache()},enableMouse:function(){return this._mouseKey?this._controls[this._mouseKey].activate():!1},disableMouse:function(){return this._mouseKey?this._controls[this._mouseKey].deactivate():!1},enableZoomBar:function(){return this._zoomBarKey?
this._controls[this._zoomBarKey].activate():!1},disableZoomBar:function(){return this._zoomBarKey?this._controls[this._zoomBarKey].deactivate():!1},enableKeyboard:function(){return this._keyBoardKey?this._controls[this._keyBoardKey].activate():!1},disableKeyboard:function(){return this._keyBoardKey?this._controls[this._keyBoardKey].deactivate():!1},enableTouchPanel:function(){return this._touchKey?this._controls[this._touchKey].activate():!1},disableTouchPanel:function(){return this._touchKey?this._controls[this._touchKey].deactivate():
!1},getLatLng:function(){return this._latlng},getZoom:function(){return this._zoom},getMap:function(){return this},getCenter:function(){return this.getCenterLatLng()},_getSatelliteCopyrightText:function(a){return this.SATELLITE_COPYLIGHT_TEXT[a-6]},setTileType:function(a){this._tileType!==a&&(this._tileType=a,this._changeCopyright(this._zoom),this._changeBaseLayer(a))}});navitime.geo.namespace("navitime.geo.base.CSS3Style");navitime.geo.base.CSS3Style.testProp=function(a){for(var b=document.documentElement.style,c=0;c<a.length;c++)if(a[c]in b)return a[c];return!1};navitime.geo.base.CSS3Style.addTransForm=function(a,b){a.style[navitime.geo.base.CSS3Style.TRANSFORM]+=b};navitime.geo.base.CSS3Style.setTransForm=function(a,b){a.style[navitime.geo.base.CSS3Style.TRANSFORM]=b};
navitime.geo.base.CSS3Style.addTransFormOrigin=function(a,b){a.style[navitime.geo.base.CSS3Style.TRANSFORMORIGIN]+=b};navitime.geo.base.CSS3Style.setTransFormOrigin=function(a,b){a.style[navitime.geo.base.CSS3Style.TRANSFORMORIGIN]=b};navitime.geo.base.CSS3Style.hyphenatePropertyName=function(a){return a.replace(/([A-Z])/g,function(a){return"-"+a.toLowerCase()}).replace(/^(webkit|moz|o|ms)-/,"-$1-")};
navitime.geo.base.CSS3Style.USERSELECT=navitime.geo.base.CSS3Style.testProp(["userSelect","webkitUserSelect","OUserSelect","MozUserSelect","msUserSelect"]);navitime.geo.base.CSS3Style.TRANSFORMORIGIN=navitime.geo.base.CSS3Style.testProp(["transformOrigin","webkitTransformOrigin","OTransformOrigin","MozTransformOrigin","msTransformOrigin"]);navitime.geo.base.CSS3Style.TRANSFORM=navitime.geo.base.CSS3Style.testProp(["transform","WebkitTransform","OTransform","MozTransform","msTransform"]);
navitime.geo.base.CSS3Style.TRANSITION=navitime.geo.base.CSS3Style.testProp(["webkitTransition","transition","OTransition","MozTransition","msTransition"]);navitime.geo.base.CSS3Style.TRANSITIONPROPERTY=navitime.geo.base.CSS3Style.testProp(["transitionProperty","webkitTransitionProperty","OTransitionProperty","MozTransitionProperty","msTransitionProperty"]);
navitime.geo.base.CSS3Style.TRANSITIONEND="webkitTransition"==navitime.geo.base.CSS3Style.TRANSITION||"OTransition"==navitime.geo.base.CSS3Style.TRANSITION||"msTransition"==navitime.geo.base.CSS3Style.TRANSITION?navitime.geo.base.CSS3Style.TRANSITION+"End":"transitionend";navitime.geo.base.CSS3Style.TAPHIGHLIGHTCOLOR=navitime.geo.base.CSS3Style.testProp(["tapHighlightColor","webkitTapHighlightColor","OTapHighlightColor","MozTapHighlightColor","msTapHighlightColor"]);
navitime.geo.base.CSS3Style.TOUCHCALLOUT=navitime.geo.base.CSS3Style.testProp(["touchCallout","webkitTouchCallout","OTouchCallout","MozTouchCallout","msTouchCallout"]);navitime.geo.namespace("navitime.geo.tile");
navitime.geo.tile.WebkitTile=navitime.geo.base.Class({EVENT_TYPES:["loadstart","loadcancel","loadend"],bounds:null,imageTag:null,_masterTag:navitime.geo.DOM.create("img","ntgeo-tile"),_parameter:null,pathCreator:null,_onloadListener:null,_url:null,MIN_ZOOM_POSITIVE_SCALE:8,MIN_RAIN_OFFSET_TIME:-119,MAX_RAIN_OFFSET_TIME:419,initialize:function(a,b,c,d,e){this.pathCreator=e;this._parameter=d;this.bounds=c.clone();this._url=a;this._blankUrl=b;this.imageTag=this._masterTag.cloneNode(!1);navitime.geo.DOM.addElementOption(this.imageTag,
this.bounds,new navitime.geo.Size(this.bounds.getWidth(),this.bounds.getHeight()));this.events=new navitime.geo.event.InnerEventController(this,null,this.EVENT_TYPES);this._onloadListener=navitime.geo.Util.Function.bind(function(){this.events.triggerEvent("loadend")},this);navitime.geo.event.BrowserEventController.addEvent(this.imageTag,"load",this._onloadListener);this.imageTag.onerror=navitime.geo.Util.Function.bind(function(){},this);this.events.register("loadend",this,this.show);this.imageTag.setAttribute("unselectable",
"on",0)},destroy:function(){null!=this.imageTag&&(navitime.geo.event.BrowserEventController.removeEvent(this.imageTag,"load",this._onloadListener),this.imageTag.parentNode&&this.imageTag.parentNode.removeChild(this.imageTag),this.imageTag=null);this._onloadListener=this._parameter=this.bounds=this._layer=null;this.events.destroy();this.events=null},clone:function(a){null==a&&(a=new navitime.geo.tile.WebkitTile(this._url,this._blankUrl,this.bounds.clone(),this._parameter.clone(),this.pathCreator.clone()));
return a},moveTo:function(a,b){b.x&&(this.pathCreator.x=b.x);b.y&&(this.pathCreator.y=b.y);b.z&&(this.pathCreator.z=b.z);this.bounds=a.clone();var c=this.imageTag.style;c.left=this.bounds.left+"px";c.top=this.bounds.top+"px";c.width=this.bounds.getWidth()+"px";c.height=this.bounds.getHeight()+"px";this.imageTag.className=this.imageTag.className.replace(" ntgeo-tile-loaded","");this.imageTag.src=this._blankUrl;!this.isLoadEnd&&this.imageTag.parentNode&&this.events.triggerEvent("loadcancel")},draw:function(){this.isLoadEnd=
!1;this.isBadRequestTile()?this.imageTag.src=this._blankUrl:this.imageTag.src=this._url+this.pathCreator.createPath()+this._parameter.toString();this.events.triggerEvent("loadstart")},isBadRequestTile:function(){if("traffic"===this.pathCreator._tileType&&this.pathCreator.z<this.MIN_ZOOM_POSITIVE_SCALE)return!0;if("rainfall"===this.pathCreator._tileType){var a="function"===typeof this._parameter.rainOffsetTime?this._parameter.rainOffsetTime():this._parameter.rainOffsetTime;return a<this.MIN_RAIN_OFFSET_TIME||
a>this.MAX_RAIN_OFFSET_TIME}return!1},show:function(){this.isLoadEnd||(this.imageTag.className+=" ntgeo-tile-loaded",this.isLoadEnd=!0)}});navitime.geo.tile.Tile=navitime.geo.tile.WebkitTile;navitime.geo.namespace("navitime.geo.tile");
navitime.geo.tile.WebkitCachedTile=navitime.geo.base.Class({EVENT_TYPES:["loadstart","loadcancel","loadend"],bounds:null,imageTag:null,_masterTag:navitime.geo.DOM.create("img","ntgeo-tile"),_parameter:null,pathCreator:null,_onloadListener:null,_url:null,MIN_ZOOM_POSITIVE_SCALE:8,MIN_RAIN_OFFSET_TIME:-119,MAX_RAIN_OFFSET_TIME:419,_indexedDBHandler:null,_urlPath:null,initialize:function(a,b,c,d,e,f){this.pathCreator=e;this._parameter=d;this.bounds=c.clone();this._url=a;this._blankUrl=b;this.imageTag=
this._masterTag.cloneNode(!1);navitime.geo.DOM.addElementOption(this.imageTag,this.bounds,new navitime.geo.Size(this.bounds.getWidth(),this.bounds.getHeight()));this.events=new navitime.geo.event.InnerEventController(this,null,this.EVENT_TYPES);this._onloadListener=navitime.geo.Util.Function.bind(function(){this.events.triggerEvent("loadend")},this);navitime.geo.event.BrowserEventController.addEvent(this.imageTag,"load",this._onloadListener);this.imageTag.onerror=navitime.geo.Util.Function.bind(function(){},
this);this.events.register("loadend",this,this.show);this.imageTag.setAttribute("unselectable","on",0);this._indexedDBHandler=f},destroy:function(){null!=this.imageTag&&(navitime.geo.event.BrowserEventController.removeEvent(this.imageTag,"load",this._onloadListener),this.imageTag.parentNode&&this.imageTag.parentNode.removeChild(this.imageTag),this.imageTag=null);this._onloadListener=this._parameter=this.bounds=this._layer=null;this.events.destroy();this.events=null},clone:function(a){null==a&&(a=
new navitime.geo.tile.WebkitCachedTile(this._url,this._blankUrl,this.bounds.clone(),this._parameter.clone(),this.pathCreator.clone()));return a},moveTo:function(a,b){b.x&&(this.pathCreator.x=b.x);b.y&&(this.pathCreator.y=b.y);b.z&&(this.pathCreator.z=b.z);this.bounds=a.clone();var c=this.imageTag.style;c.left=this.bounds.left+"px";c.top=this.bounds.top+"px";c.width=this.bounds.getWidth()+"px";c.height=this.bounds.getHeight()+"px";this.imageTag.className=this.imageTag.className.replace(" ntgeo-tile-loaded",
"");!this.isLoadEnd&&this.imageTag.parentNode&&this.events.triggerEvent("loadcancel")},draw:function(){this.isLoadEnd=!1;if(this.isBadRequestTile())this.imageTag.src=this._blankUrl;else{var a=this._url+this.pathCreator.createPath()+this._parameter.toString(),b=this._url+this.pathCreator.createPath();this.imageTag.dataset.reqpath=this.pathCreator.createPath();this._urlPath=b;if(this._indexedDBHandler){var c=this;this._indexedDBHandler.read(b).then(function(d){c.handleLoadImage(a,b,d)})["catch"](function(b){console.error(b);
c.setImageSrc(a);c.events.triggerEvent("loadstart")})}else this.setImageSrc(a),this.events.triggerEvent("loadstart")}},handleLoadImage:function(a,b,c){c?(this._indexedDBHandler.updateTime(b,this.getCurrentTime()),this.convertToDataURI(c,b)):(c=new XMLHttpRequest,c.open("GET",a,!0),c.responseType="arraybuffer",c.urlPath=b,c.addEventListener("load",navitime.geo.Util.Function.bind(this.onImageLoaded,this)),c.send())},onImageLoaded:function(a){if(!this.isLoadEnd){var b=a.target;b&&200===b.status&&(a=
b.response,b=b.urlPath,this._indexedDBHandler.put(b,a,this.getCurrentTime()),this.convertToDataURI(a,b))}},blobToBase64:function(a){return new Promise(function(b){var c=new FileReader;c.readAsDataURL(a);c.onload=function(a){a=c.result;return b(a.slice(a.indexOf(",")+1))}})},base64ToArrayBuffer:function(a){return new Promise(function(b){for(var c=window.atob(a),d=c.length,e=new Uint8Array(d),f=0;f<d;f++)e[f]=c.charCodeAt(f);return b(e.buffer)})},getCurrentTime:function(){var a,b=new Date;a="YYYYMMDDHHmmss".replace(/YYYY/,
("0000"+b.getFullYear()).slice(-4));a=a.replace(/MM/,("00"+(b.getMonth()+1)).slice(-2));a=a.replace(/DD/,("00"+b.getDate()).slice(-2));a=a.replace(/HH/,("00"+b.getHours()).slice(-2));a=a.replace(/mm/,("00"+b.getMinutes()).slice(-2));a=a.replace(/ss/,("00"+b.getSeconds()).slice(-2));return Number(a)},convertToDataURI:function(a,b){if(!this.isLoadEnd){var c=new Blob([a],{type:"image/png"}),d=new FileReader;d.urlPath=b;d.addEventListener("load",navitime.geo.Util.Function.bind(this.setImageSrc,this));
d.readAsDataURL(c)}},setImageSrc:function(a){if("string"===typeof a)this.imageTag.src=a;else{var b=a.target.result;a=a.target.urlPath;if(null==b||this._urlPath!=a)return;this.imageTag.src=b}this.events.triggerEvent("loadstart")},isBadRequestTile:function(){if("traffic"===this.pathCreator._tileType&&this.pathCreator.z<this.MIN_ZOOM_POSITIVE_SCALE)return!0;if("rainfall"===this.pathCreator._tileType){var a="function"===typeof this._parameter.rainOffsetTime?this._parameter.rainOffsetTime():this._parameter.rainOffsetTime;
return a<this.MIN_RAIN_OFFSET_TIME||a>this.MAX_RAIN_OFFSET_TIME}return!1},show:function(){this.isLoadEnd||(this.imageTag.className+=" ntgeo-tile-loaded",this.isLoadEnd=!0)}});navitime.geo.tile.CacheTile=navitime.geo.tile.WebkitCachedTile;navitime.geo.namespace("navitime.geo.layer.tile");
navitime.geo.layer.tile.BasicTileLayer=navitime.geo.base.Class(navitime.geo.layer.AbstractLayer,{_isTileLayer:!0,_landmark:0,_poi:0,_hidden:null,_ad:0,_res:null,_bgDiv:null,_tileType:null,_mainGrid:null,_bgGrid:null,_cache:!1,_dbhandler:null,initialize:function(a){navitime.geo.layer.AbstractLayer.prototype.initialize.apply(this,arguments);this.div.className+=" ntgeo-tile-layer";this._bgDiv=navitime.geo.DOM.create("div","ntgeo-layer ntgeo-tile-layer");this.div.style.zIndex=2;this._bgDiv.style.zIndex=
1;this.div.setAttribute("unselectable","on",0);this.div.onselectstart=function(){return!1};this._bgDiv.setAttribute("unselectable","on",0);this._bgDiv.onselectstart=function(){return!1};if(a){var b=function(a){return!0===a||"true"===a||"1"===a||1===a};b(a.landmark)&&(this._landmark=1);b(a.poi)&&(this._poi=1);a.hidden&&(this._hidden=a.hidden);a.ad&&(this._ad=1);a.cache&&(this._cache=!0,this._dbhandler=new navitime.geo.IndexedDB.Handler(a))}},destroy:function(){this._bgDiv&&(this.map._layerContainerDiv.removeChild(this._bgDiv),
this._bgDiv=null);navitime.geo.layer.AbstractLayer.prototype.destroy.apply(this,arguments)},_onAdd:function(a){navitime.geo.layer.AbstractLayer.prototype._onAdd.apply(this,arguments);this.div.parentNode.appendChild(this._bgDiv)},setMap:function(a){navitime.geo.layer.AbstractLayer.prototype.setMap.apply(this,arguments)?this.div.parentNode.appendChild(this._bgDiv):this.div.parentNode.removeChild(this._bgDiv)},draw:function(){this.map._grid.createTargetTiles(this._gridNum)},createNewTile:function(a,
b,c){var d="",e="",f=new navitime.geo.base.TileMapParameter;this._landmark&&f.addQueryParam("landmark-on",this._landmark);this._poi&&f.addQueryParam("poi-on",this._poi);this._ad&&f.addQueryParam("ad-on",this._ad);this._hidden&&f.addQueryParam("hidemapitems",this._hidden);this._tileType?"satellite"===this._tileType&&(d=this.map._config.URL_SATELLITE_TILE,e="v1/satellite",f.setProduct(null)):(d=this.map._config.getTileRequestURL(),e="tile");if("tile"===e){var g=this.map._config.LANG;g&&"ja"!==g&&f.addQueryParam("lang",
g)}return this._cache&&this._dbhandler?new navitime.geo.tile.CacheTile(d,this.map._config.getFileRequestURL()+"/"+this.map._config.BLANK_URL,a,f,new navitime.geo.base.RequestPathCreator(b,c,e),this._dbhandler):new navitime.geo.tile.Tile(d,this.map._config.getFileRequestURL()+"/"+this.map._config.BLANK_URL,a,f,new navitime.geo.base.RequestPathCreator(b,c,e))},clearAllTiles:function(){this._restoreTileFront();this._removeBuffDiv();this._mainGrid=[];this._bgGrid=[]},clearCache:function(){this._dbhandler.clear()},
_addNode:function(a){this.div.appendChild(a)},_switchingDiv:function(){this.map._grid.events.unregister("loadend",this,this._removeBuffDiv);this._timerId&&window.clearTimeout(this._timerId);var a=this.div;this.div=this._bgDiv;this._bgDiv=a;this.div.style.cssText="visibility: hidden";this._mainGrid=this._bgGrid||[];this._bgGrid=this.map._grid.tileGrid[0];this.map._grid.tileGrid[0]=this._mainGrid;for(var a=this._bgGrid,b=a.length;b--;)for(var c=a[b],d=c.length;d--;){var e=c[d];e.isLoadEnd||(e.imageTag.src=
this.map._config.getFileRequestURL()+"/"+this.map._config.BLANK_URL,e.imageTag.parentNode&&(e.imageTag.parentNode.removeChild(e.imageTag),e.events.triggerEvent("loadcancel"),e.isLoadEnd=!0))}this.map._grid.events.register("loadend",this,this._removeBuffDiv)},_restoreTileFront:function(){this.div.innerHTML="";this.div.style.visibility="";this.div.style.zIndex=2;this._bgDiv.style.zIndex=1},_removeBuffDiv:function(){if(this.listener)return!1;this._timerId=window.setTimeout(navitime.geo.Util.Function.bind(function(){this._timerId=
null;this._bgDiv.innerHTML="";this._bgDiv.style.cssText="visibility: hidden";this.map._grid.events.unregister("loadend",this,this._removeBuffDiv)},this),250)}});navitime.geo.layer.TileLayer=navitime.geo.layer.tile.BasicTileLayer;navitime.geo.namespace("navitime.geo.map");
navitime.geo.map.GraphicalMap=navitime.geo.base.Class(navitime.geo.map.AbstractMap,{_setTransForm:navitime.geo.base.CSS3Style.setTransForm,_setTransFormOrigin:navitime.geo.base.CSS3Style.setTransFormOrigin,_addTransForm:navitime.geo.base.CSS3Style.addTransForm,_transitionEnd:navitime.geo.base.CSS3Style.TRANSITIONEND,_animationProperty:navitime.geo.base.CSS3Style.hyphenatePropertyName(navitime.geo.base.CSS3Style.TRANSFORM),initialize:function(a,b,c,d){d=d||{};navitime.geo.map.AbstractMap.prototype.initialize.apply(this,
[a,b,c,d]);a=new navitime.geo.control.MouseControl;b=new navitime.geo.control.KeyboardControl;a.setMap(this);d.wheelzoom||a.disableWheel();!1===d.dblclickZoom&&a.disableDoubleClick();d.trackpadZoom&&a.enableTrackpadZoom();b.setMap(this);navitime.geo.control.TouchPanelControl.isEnabled&&(new navitime.geo.control.TouchPanelControl).setMap(this);b.handlers.keyboard.deactivate();d&&d.disableZoomBar||(new navitime.geo.control.ZoomBarControl).setMap(this);navitime.geo.event.BrowserEventController.addEvent(window,
"resize",navitime.geo.Util.Function.bind(this.changeSize,this,null))},_zoomAnimation:function(a,b,c){var d=this._baseLayer.div,e=this.getViewDivPixel();this._grid._calculateDrawBounds(this._displayBounds,this._latlng,this._zoom+a);this._baseLayer.listener=navitime.geo.Util.Function.bindAsEventListener(function(b){navitime.geo.event.BrowserEventController.removeEvent(d,this._transitionEnd,this._baseLayer.listener);d.style[navitime.geo.base.CSS3Style.TRANSITIONPROPERTY]="none";navitime.geo.Util.falseFn(d.offsetWidth);
this._baseLayer._restoreTileFront();this._setView(this._latlng,this._zoom+a);this._baseLayer.listener=null;this.events.triggerEvent("zoomend");this._layerContainerDiv.className=this._layerContainerDiv.className.replace(" ntgeo-zoom-anim","")},this);navitime.geo.event.BrowserEventController.addEvent(d,this._transitionEnd,this._baseLayer.listener);this._baseLayer._switchingDiv();d.style[navitime.geo.base.CSS3Style.TRANSITIONPROPERTY]=this._animationProperty;this._layerContainerDiv.className+=" ntgeo-zoom-anim";
e=this._displayBounds.getCenterX()-e.left+b+"px "+(this._displayBounds.getCenterY()-e.top+c)+"px";this._setTransFormOrigin(d,e);0===b&&0===c||this.events.triggerEvent("moveend");b=Math.pow(2,a);this._addTransForm(d,"scale("+(16<b?20:b)+")")},_savePosition:function(){this._setTransForm(this._objectContainerDiv,"translate("+-this._translateX+"px ,"+-this._translateY+"px)");this._setTransForm(this._baseLayer.div,"translate("+-this._translateX+"px ,"+-this._translateY+"px)");this._baseLayer._translateX=
this._translateX;this._baseLayer._translateY=this._translateY},_noZoomAnimation:function(a){this._grid._calculateDrawBounds(this._displayBounds,this._latlng,this._zoom+a);this._baseLayer._switchingDiv();this._baseLayer._restoreTileFront();this._setView(this._latlng,this._zoom+a);this.events.triggerEvent("zoomend")},_transform:function(a,b){this._translateX-=a;this._translateY-=b;this._setTransForm(this._layerContainerDiv,"translate("+this._translateX+"px, "+this._translateY+"px)")}});
navitime.geo.map.Map=navitime.geo.map.GraphicalMap;navitime.geo.namespace("navitime.geo.base.graphics");
navitime.geo.base.graphics.SVG=navitime.geo.base.Class({xmlns:"http://www.w3.org/2000/svg",xlinkns:"http://www.w3.org/1999/xlink",initialize:function(){},createBaseDiv:function(){var a=document.createElementNS(this.xmlns,"svg");a.setAttributeNS(null,"version","1.1");return a},createGroupDiv:function(a){var b=document.createElementNS(this.xmlns,"g");b.id=a;return b},setViewPort:function(a,b){navitime.geo.DOM.addElementOption(a,b,new navitime.geo.Size(b.getWidth(),b.getHeight()),"absolute",null,"visible");
a.setAttributeNS(null,"viewBox",b.left+" "+b.top+" "+b.getWidth()+" "+b.getHeight())},drawCircle:function(a,b,c,d,e,f,g){f||(f=document.createElementNS(this.xmlns,"ellipse"),a&&f.setAttributeNS(null,"id",a));b&&f.setAttribute("cx",b);c&&f.setAttribute("cy",c);d&&f.setAttribute("rx",d);e&&f.setAttribute("ry",e);g=g?g:{};g.fillcolor||(g.fillcolor="none");this._setStyle(f,g);return f},drawRect:function(a,b,c,d,e,f,g){f||(f=document.createElementNS(this.xmlns,"rect"),a&&f.setAttributeNS(null,"id",a));
d&&f.setAttribute("width",d);e&&f.setAttribute("height",e);b&&f.setAttribute("x",b);c&&f.setAttribute("y",c);g=g?g:{};g.fillcolor||(g.fillcolor="none");this._setStyle(f,g);return f},drawLine:function(a,b,c,d,e,f,g){f||(f=document.createElementNS(this.xmlns,"line"),a&&f.setAttributeNS(null,"id",a));b&&f.setAttribute("x1",b);c&&f.setAttribute("y1",c);d&&f.setAttribute("x2",d);e&&f.setAttribute("y2",e);this._setStyle(f,g);return f},drawPolyline:function(a,b,c,d){c||(c=document.createElementNS(this.xmlns,
"polyline"),a&&c.setAttributeNS(null,"id",a));b&&c.setAttribute("points",b);d=d?d:{};d.fillcolor||(d.fillcolor="none");this._setStyle(c,d);return c},drawPolygon:function(a,b,c,d){c||(c=document.createElementNS(this.xmlns,"polygon"),a&&c.setAttributeNS(null,"id",a));b&&c.setAttribute("points",b);d=d?d:{};d.fillcolor||(d.fillcolor="none");this._setStyle(c,d);return c},drawPath:function(a,b,c,d){c||(c=document.createElementNS(this.xmlns,"path"),a&&c.setAttributeNS(null,"id",a));b&&c.setAttribute("d",
b);d=d?d:{};d.fillcolor||(d.fillcolor="none");this._setStyle(c,d);return c},drawImage:function(a,b,c,d,e,f,g){g||(g=document.createElementNS(this.xmlns,"image"),a&&g.setAttributeNS(null,"id",a));b&&g.setAttributeNS(null,"x",b);c&&g.setAttributeNS(null,"y",c);d&&g.setAttributeNS(null,"width",d+"px");e&&g.setAttributeNS(null,"height",e+"px");f&&g.setAttributeNS(this.xlinkns,"href",f);return g},_setStyle:function(a,b){b.fillcolor&&a.setAttributeNS(null,"fill",b.fillcolor);b.fillopacity&&a.setAttributeNS(null,
"fill-opacity",b.fillopacity);b.strokecolor&&a.setAttributeNS(null,"stroke",b.strokecolor);b.strokeweight&&a.setAttributeNS(null,"stroke-width",b.strokeweight);b.strokeopacity&&a.setAttributeNS(null,"stroke-opacity",b.strokeopacity);b.strokelinecap&&a.setAttributeNS(null,"stroke-linecap",b.strokelinecap);b.strokelinejoin&&a.setAttributeNS(null,"stroke-linejoin",b.strokelinejoin);if(b.strokedasharray){var c=b.strokedasharray.split(","),d="",e="";b.strokeweight=b.strokeweight||10;for(var f=0,g=c.length;f<
g;f++)d+=e+Math.round(c[f]*b.strokeweight),e=",";a.setAttributeNS(null,"stroke-dasharray",d)}}});navitime.geo.base.graphics.Renderer=new navitime.geo.base.graphics.SVG;navitime.geo.namespace("navitime.geo.handler");
navitime.geo.handler.StandardTouchPanel=navitime.geo.base.Class(navitime.geo.handler.AbstractHandler,{_touches:null,_prevScale:1,_xy:null,initialize:function(a,b,c){navitime.geo.handler.AbstractHandler.prototype.initialize.apply(this,arguments)},destroy:function(){navitime.geo.handler.AbstractHandler.prototype.destroy.apply(this,arguments)},touchstart:function(a){this._touches=this._copy(a.touches);(this._xy=a.xy)&&4>a.xy.length&&this.callback("touchstart",[a]);"a"!=a.target.tagName.toLowerCase()&&
navitime.geo.event.BrowserEventController.stop(a)},touchmove:function(a){this._touches&&(a.prevTouches=this._copy(this._touches),a.prevXY=this._xy,this.callback("touchmove",[a]),navitime.geo.event.BrowserEventController.stop(a));this._touches=this._copy(a.touches);this._xy=a.xy},touchend:function(a){a.touches=this._copy(this._touches);a.xy=a.xy?a.xy:this._xy;4>a.touches.length&&(this.callback("touchend",[a]),navitime.geo.event.BrowserEventController.stop(a));this._xy=this._touches=null},gesturestart:function(a){a.touches=
this._copy(this._touches);a.xy=this._xy;this.callback("gesturestart",[a]);navitime.geo.event.BrowserEventController.stop(a)},gesturechange:function(a){a.touches=this._copy(this._touches);a.xy=this._xy;if(!a.touches||2>a.touches.length)return!1;this.callback("gesturechange",[a]);navitime.geo.event.BrowserEventController.stop(a)},gestureend:function(a){a.touches=this._copy(this._touches);a.xy=this._xy;this.callback("gestureend",[a]);navitime.geo.event.BrowserEventController.stop(a)},_copy:function(a){if(!a)return null;
for(var b=[],c=0,d=a.length;c<d;c++)b.push({pageX:a[c].pageX,pageY:a[c].pageY,clientX:a[c].pageX,clientY:a[c].pageY,screenX:a[c].pageX,screenY:a[c].pageY,target:a[c].target,identifier:a[c].identifier});return b}});navitime.geo.namespace("navitime.geo.control");
navitime.geo.control.StandardTouchPanelControl=navitime.geo.base.Class(navitime.geo.control.AbstractControl,{LONG_TAP_MS:500,_keepTouch:null,_currentScale:1,_currentTranslate:"0px, 0px",_lastMoveX:null,_lastMoveY:null,_isMove:!1,_isGesture:!1,_isLongpress:!1,_setTransForm:navitime.geo.base.CSS3Style.setTransForm,_setTransFormOrigin:navitime.geo.base.CSS3Style.setTransFormOrigin,_isCalledTouchMove:!1,_maxFingerCount:0,_isLongTap:!1,initialize:function(){navitime.geo.control.AbstractControl.prototype.initialize.apply(this,["TouchPanelCtl"])},
_onAdd:function(){this.map._touchKey=this.id;this.handlers.touchPanel=new navitime.geo.handler.StandardTouchPanel(this,{touchstart:this.callTouchStart,touchmove:this.callTouchMove,touchend:this.callTouchEnd,gesturestart:this.callGestureStart,gesturechange:this.callGestureChange,gestureend:this.callGestureEnd},null)},callTouchStart:function(a){if(a.xy&&1===a.xy.length){var b=this;this._tapId=setTimeout(function(){0<b._maxFingerCount&&(b._isLongTap=!0)},this.LONG_TAP_MS)}if(a.xy&&1===a.xy.length){this._isLongpress=
!0;var c=this;c._touchTimeOut=setTimeout(navitime.geo.Util.Function.bind(function(){c._isLongpress&&c.map.events.triggerEvent("longpress")},c),500)}this._maxFingerCount<a.xy.length&&(this._maxFingerCount=a.xy.length)},callTouchMove:function(a){this._isCalledTouchMove=!0;for(var b=0,c=0,d=0,e=a.xy.length;d<e;d++)b+=a.prevXY[d].x-a.xy[d].x,c+=a.prevXY[d].y-a.xy[d].y;this._isMove=!0;this._lastMoveX=b;this._lastMoveY=c;if(5<=Math.abs(b)||5<=Math.abs(c))this._isLongpress=!1,clearTimeout(this._touchTimeOut);
this.map._moveToPix(Math.round(b/d),Math.round(c/d))},callTouchEnd:function(a,b){var c=this._isCalledTouchMove;this._isLongpress=this._isCalledTouchMove=!1;clearTimeout(this._touchTimeOut);if(a.xy&&1===a.xy.length)this._maxFingerCount=0,this._isLongTap=!1,this._tapId&&(clearTimeout(this._tapId),this._tapId=0),null!=this._keepTouch?10>Math.abs(this._keepTouch.x-a.xy[0].x)&&10>Math.abs(this._keepTouch.y-a.xy[0].y)&&(this._isMove=!1,this.map.zoomTo(1,Math.floor(a.xy[0].x-this.map._displayBounds.getCenterX()),
Math.floor(a.xy[0].y-this.map._displayBounds.getCenterY()))):(this._isMove&&!this._isGesture&&(this.map._moveToPix(this._lastMoveX,this._lastMoveY),this._lastMoveY=this._lastMoveX=0,this.map.events.triggerEvent("panend")),this._keepTouch={x:a.xy[0].x,y:a.xy[0].y},setTimeout(navitime.geo.Util.Function.bind(function(){this._keepTouch=null},this),300));else if(2===b&&!c&&!this._isLongTap)return this.map.zoomTo(-1,0,0),!1},callGestureStart:function(a){a=this.map._layerContainerDiv;-1===a.className.indexOf("ntgeo-pinch-gesture")&&
(a.className+=" ntgeo-pinch-gesture",this.map._baseLayer._bgDiv.style.visibility="hidden")},callGestureChange:function(a){this._isGesture=!0;var b=this.map._baseLayer.div;this._setTransFormOrigin(b,-this.map._translateX+((a.xy[0].x<=a.xy[1].x?a.xy[0].x:a.xy[1].x)+(a.xy[0].x<a.xy[1].x?a.xy[1].x:a.xy[0].x))/2+"px "+(-this.map._translateY+((a.xy[0].y<=a.xy[1].y?a.xy[0].y:a.xy[1].y)+(a.xy[0].y<a.xy[1].y?a.xy[1].y:a.xy[0].y))/2)+"px");this._setTransForm(b,"scale("+a.scale+") translate("+-this.map._baseLayer._translateX+
"px, "+-this.map._baseLayer._translateY+"px)")},callGestureEnd:function(a){var b=1<a.scale?Math.round(Math.LOG2E*Math.log(a.scale)):-1*Math.round(Math.LOG2E*Math.log(1/a.scale)),b=this.map._checkZoomDelta(b),c=this.map._baseLayer.div;if(0===b)return this._setTransForm(c,"scale(1) translate("+-this.map._baseLayer._translateX+"px, "+-this.map._baseLayer._translateY+"px)"),this.map._layerContainerDiv.className=this.map._layerContainerDiv.className.replace(" ntgeo-pinch-gesture",""),this._isGesture=!1;
if(2>a.xy.length)return!1;var d=a.xy[0].y<=a.xy[1].y?a.xy[0].y:a.xy[1].y,e=a.xy[0].y<a.xy[1].y?a.xy[1].y:a.xy[0].y,f=a.xy[0].x<=a.xy[1].x?a.xy[0].x:a.xy[1].x;a=a.xy[0].x<a.xy[1].x?a.xy[1].x:a.xy[0].x;var g=Math.round((f+a)/2-this.map._displayBounds.getCenterX()),h=Math.round((d+e)/2-this.map._displayBounds.getCenterY());this._setTransFormOrigin(c,-this.map._translateX+(f+a)/2+"px "+(-this.map._translateY+(d+e)/2)+"px");this._setTransForm(c,"scale("+Math.pow(2,b)+") translate("+-this.map._baseLayer._translateX+
"px, "+-this.map._baseLayer._translateY+"px)");this.map.zoomTo(b,g,h,{animation:!1});this.map._layerContainerDiv.className=this.map._layerContainerDiv.className.replace(" ntgeo-pinch-gesture","");this._isGesture=!1}});navitime.geo.control.StandardTouchPanelControl.isEnabled=navitime.geo.Browser.touchable;navitime.geo.control.TouchPanelControl=navitime.geo.control.StandardTouchPanelControl;navitime.geo.namespace("navitime.geo.overlay");
navitime.geo.overlay.MousePin=navitime.geo.base.Class(navitime.geo.overlay.AbstractPin,{EVENT_TYPES:["dragstart","dragend","drag","rightclick","dblrightclick"],_documentsEvent:void 0,_outsideMap:!1,_latlng:null,_outsideDragend:null,_activateDraggable:function(){this.events.register("mousedown",this,this._dragstart)},_deactivateDraggable:function(){this.events.unregister("mousedown",this,this._dragstart);var a=this.getMap().events;a.unregister("mousemove",this,this._drag);a.unregister("mouseup",this,
this._dragend)},_dragstart:function(a){var b=this.getMap();b.disableMouse();b.events.register("mousemove",this,this._drag);b.events.register("mouseup",this,this._dragend);b.events.register("mouseout",this,this._mouseout);this._documentsEvent||(this._documentsEvent=new navitime.geo.event.InnerEventController(this),this._documentsEvent.BROWSER_EVENTS=["mouseup"],this._documentsEvent.attachToElement(document));this._outsideDragend=navitime.geo.Util.Function.bind(this._dragend,this,!0);this._documentsEvent.register("mouseup",
this,this._outsideDragend);navitime.geo.event.BrowserEventController.stop(a)},_drag:function(a){var b=this.getMap().getViewDivPixel();this._isDragged?(this._outsideMap=!1,this._icon.moveTo(a.xy.x-b.left,a.xy.y-b.top),this.events.triggerEvent("drag",a)):(this.events.triggerEvent("dragstart",a),this._isDragged=!0,this._originalZIndex=this.getZIndex(),this._options.raiseOnDrag&&this.setZIndex(2147483647))},_dragend:function(a){var b=this.getMap();b.events.unregister("mousemove",this,this._drag);b.events.unregister("mouseout",
this,this._mouseout);b.events.unregister("mouseup",this,this._dragend);this._documentsEvent.unregister("mouseup",this,this._outsideDragend);this._documentsEvent||(this._documentsEvent.destroy(),this._documentsEvent=null);b.enableMouse();if(this._isDragged){var c=b.getViewDivPixel(),d=this._outsideMap?{x:this._latlng.x,y:this._latlng.y}:{x:a.xy.x,y:a.xy.y},b=b.getMovedLatLng(c.left+b._displayBounds.getCenterX()-d.x,c.top+b._displayBounds.getCenterY()-d.y);this.setPosition(b);this.setZIndex(this._originalZIndex);
this._outsideMap=this._isDragged=!1;this.events.triggerEvent("dragend",a)}},_mouseout:function(a){var b=this.getMap();navitime.geo.Util.fixOnMouseOut(b.div,a)&&(this._isDragged&&!this._outsideMap)&&(this._latlng={x:a.xy.x,y:a.xy.y},this._outsideMap=!0)}});navitime.geo.overlay.Pin=navitime.geo.overlay.MousePin;navitime.geo.namespace("navitime.geo.overlay");
navitime.geo.overlay.CSSInfoWindow=navitime.geo.base.Class(navitime.geo.overlay.AbstractInfoWindow,{initialize:function(a){navitime.geo.overlay.AbstractInfoWindow.prototype.initialize.apply(this,arguments);null!=a&&a.hasOwnProperty("tailDirection")&&(this._tailDirection=a.tailDirection);this.div=navitime.geo.DOM.create("div","ntgeo-infowindow");null!=this._backgroundColor&&(this.div.style.backgroundColor=this._backgroundColor);null!=this._borderColor&&(this.div.style.borderColor=this._borderColor);
null!=this._borderWidth&&(this.div.style.borderWidth=this._borderWidth+"px");null!=this._borderRadius&&(this.div.style.borderRadius=this._borderRadius);null==this._shadow||this._shadow||(this.div.style.boxShadow="unset");null!=this._margin&&(this.div.style.padding=this._margin);this.eventDiv=this.div;this.tailDiv=navitime.geo.DOM.create("div","ntgeo-infowindow-tail",this.div);null==this._backgroundColor&&null==this._borderColor&&null==this._borderWidth||null!=this._tailDirection||(this.tailDiv.style.backgroundImage=
this._createOldSvgPathAsBase64(),this.tailDiv.style.width=50+this._borderWidth+"px",this.tailDiv.style.height="50px");null!=this._tailDirection&&(this.tailDiv.style.backgroundImage=this._createSvgPathAsBase64(),this.tailDiv.style.width="20px",this.tailDiv.style.height="20px");this.events.register("setmap",this,this._resize);this.events.register("content_changed",this,this._resize);this.contentDiv=navitime.geo.DOM.create("div","ntgeo-popup-text",this.div);this.setOptions(a);a.map&&this.setMap(a.map);
a.disableClose||(this._close=navitime.geo.DOM.create("div","ntgeo-close",this.div),this._close.style.display="none",null!=this._margin&&(this._close.style.top="1px",this._close.style.right="1px"),this._closeListener=navitime.geo.Util.Function.bind(function(){this.setVisible(!1);this.events.triggerEvent("closeclick")},this),navitime.geo.event.BrowserEventController.addEvent(this._close,"click",this._closeListener),navitime.geo.base.CSS3Style&&navitime.geo.base.CSS3Style.USERSELECT&&(this._close.style[navitime.geo.base.CSS3Style.USERSELECT]=
"none"),this._options.closeButtonDisplay===navitime.geo.DisplayType.FOCUSED?(this.events.register("mouseover",this,navitime.geo.Util.Function.bind(function(){this.div.style.zIndex=2147483647;this._close.style.display=""},this)),this.events.register("mouseout",this,navitime.geo.Util.Function.bind(function(){this.div.style.zIndex=this._options.zIndex;this._close.style.display="none"},this))):(this.div.style.zIndex=2147483647,this._close.style.display=""));this.events.register("click",this,function(a){a.stop()});
this.events.register("mousedown",this,function(a){a.stop()});this.events.register("dblclick",this,function(a){a.stop()});this.events.register("mousewheel",this,function(a){a.stop()});this.events.register("DOMMouseScroll",this,function(a){a.stop()})},_resize:function(){if(this._map){this._options.maxWidth&&this._options.maxWidth<this.div.offsetWidth&&(this.contentDiv.style.width=this._options.maxWidth+"px",this.contentDiv.style.whiteSpace="normal");var a=this.div.offsetWidth/2-25;this._centerOffset=
0>a?0:a;this.tailDiv.style.right=this._calculateBaloonTailRightPosition(this._tailDirection)+"px";this.tailDiv.style.top=this._calculateBaloonTailTopPosition(this._tailDirection)+"px";a=this._map.getPixcelFromLatLng(this._options.position);this.moveTo(a.left,a.top);this.setVisible(this._options.visible)}},destroy:function(){this._close&&navitime.geo.event.BrowserEventController.removeEvent("click",this._click,this._clickListener);navitime.geo.overlay.AbstractInfoWindow.prototype.destroy.apply(this)}});
navitime.geo.overlay.InfoWindow=navitime.geo.overlay.CSSInfoWindow;navitime.geo.namespace("navitime.geo.overlay");
navitime.geo.overlay.SnowPin=navitime.geo.base.Class({_img:null,_json:null,_map:null,_pins:null,_size:null,_url:null,initialize:function(a,b,c){this._map=a.getMap();this._json=b;this._map=a.getMap();this._url=this._map._config.getSnowRequestURL();c&&(this._url=c+"/"+this._map._config.SERVICE_ID+"/"+this._map._config.URL_FILE_SUFFIX+"/"+this._map._config.URL_SNOW_SUFFIX);this._calculateIconSize()},destroy:function(){this.setMap(null);this._size=this._pins=this._json=this._img=null},_calculateIconSize:function(){this._img=
new Image;this._onloadListener=navitime.geo.Util.Function.bind(function(){this._size={width:this._img.width,height:this._img.height};this._zoomendListener=navitime.geo.Util.Function.bind(function(){this._draw()},this);navitime.geo.util.addListener(this._map,"zoomend",this._zoomendListener);this._zoomstartListener=navitime.geo.Util.Function.bind(function(){for(var a=0;a<this._pins.length;a++)this._pins[a].destroy();this._pins=null},this);navitime.geo.util.addListener(this._map,"zoomstart",this._zoomstartListener);
this._draw()},this);navitime.geo.event.BrowserEventController.addEvent(this._img,"load",this._onloadListener);this._img.src=this._url+"/"+this._map._config.SNOW_1_URL},_draw:function(){for(var a=this._getReducedIcons(this._json.observations).reverse(),b=[],c=0;c<a.length;c++)b.push(new navitime.geo.overlay.Pin({icon:a[c].url,position:a[c].latLng,draggable:!1,map:this._map,title:"\u7a4d\u96ea\u60c5\u5831"}));this._pins=b},_getSnowIconPath:function(a){return 1<=a&&3>a?this._url+"/"+this._map._config.SNOW_1_URL:
3<=a&&5>a?this._url+"/"+this._map._config.SNOW_3_URL:5<=a&&20>a?this._url+"/"+this._map._config.SNOW_5_URL:20<=a&&50>a?this._url+"/"+this._map._config.SNOW_20_URL:50<=a&&100>a?this._url+"/"+this._map._config.SNOW_50_URL:100<=a&&200>a?this._url+"/"+this._map._config.SNOW_100_URL:this._url+"/"+this._map._config.SNOW_200_URL},_intersects:function(a,b){for(var c=a.length-1;0<=c;c--){var d=this._size.width/4,e=this._size.height/4,f=b.top-e,g=b.left+d,e=b.top+e,h=a[c];if(b.left-d<h.right&&h.left<g&&f<h.bottom&&
h.top<e)return c}return-1},_onloadListener:null,_zoomendListener:null,_zoomstartListener:null,_getReducedIcons:function(a){if(!a)return[];for(var b=[],c=this._size.width/4,d=this._size.height/4,e=a.length-1;0<=e;e--){var f=a[e];if(!(1>f.cover)){var g=new navitime.geo.LatLng(f.coord[1],f.coord[0]),h=this._map.getPixcelFromLatLng(g);-1===this._intersects(b,h)&&b.push({left:h.left-c,top:h.top-d,right:h.left+c,bottom:h.top+d,latLng:g,url:this._getSnowIconPath(f.cover)})}}return b},setMap:function(a){a?
this._map!=a&&(this.setMap(null),this._map=a.getMap(),navitime.geo.util.addListener(this._map,"zoomend",this._zoomendListener),navitime.geo.util.addListener(this._map,"zoomstart",this._zoomstartListener),this._draw()):this._map&&(this._zoomstartListener(),this._map.events.unregister("zoomend",this._map,this._zoomendListener),this._map.events.unregister("zoomstart",this._map,this._zoomstartListener),this._map=null)}});navitime.geo.namespace("navitime.geo.marker");
navitime.geo.marker.CSSPopup=navitime.geo.base.Class({EVENT_TYPES:["setText","closeclick"],_div:null,_textDiv:null,latlng:null,events:null,_dispPos:null,_setTransForm:navitime.geo.base.CSS3Style.setTransForm,initialize:function(a,b,c){b=b?b:{};b.borderColor=b.borderColor?navitime.geo.Color.changeHex(b.borderColor):"#000000";b.backgroundColor=b.backgroundColor?navitime.geo.Color.changeHex(b.backgroundColor):"#ffffff";b.fontSize=b.fontSize?b.fontSize:"13px";b.text=b.text?b.text:"";this._div=navitime.geo.DOM.create("div",
"ntgeo-popup  ntgeo-popup-tail");this._div.style.borderColor=b.borderColor;this._div.style.backgroundColor=b.backgroundColor;navitime.geo.DOM.setCss(".ntgeo-popup-tail:before","border-color:"+b.borderColor+" transparent;");navitime.geo.DOM.setCss(".ntgeo-popup-tail:after","border-color: "+b.backgroundColor+" transparent;");this._dispPos={};this._dispPos.x=b.dispPos&&b.dispPos.x?b.dispPos.x:0;this._dispPos.y=b.dispPos&&b.dispPos.y?b.dispPos.y:0;this.latlng=a;this.events=new navitime.geo.event.InnerEventController(this,
this._div,this.EVENT_TYPES,!1);this._textDiv=navitime.geo.DOM.create("div","ntgeo-popup-text");this._textDiv.style.fontSize=b.fontSize;this._textDiv.innerHTML=b.text;this._div.appendChild(this._textDiv);var d=navitime.geo.DOM.create("div","ntgeo-close",this._div);d.style.display="none";navitime.geo.event.BrowserEventController.addEvent(d,"click",navitime.geo.Util.Function.bind(function(a){this.display(a);this.events.triggerEvent("closeclick")},this,!1),this);navitime.geo.base.CSS3Style&&navitime.geo.base.CSS3Style.USERSELECT&&
(d.style[navitime.geo.base.CSS3Style.USERSELECT]="none");this.events.register("mouseover",this,function(){this._div.style.zIndex="100";d.style.display=""});this.events.register("mouseout",this,function(){this._div.style.zIndex="";d.style.display="none"});this.events.register("click",this,navitime.geo.Util.falseFn);this.events.register("mousedown",this,navitime.geo.Util.falseFn);this.events.register("dblclick",this,navitime.geo.Util.falseFn)},destroy:function(){this.events.destroy();this.events=null;
this._div.parentNode&&this._div.parentNode.removeChild(this._div);this._latlng=this._dispPos=this._div=null},moveTo:function(a,b){this._setTransForm(this._div,"translate("+(a-25+this._dispPos.x)+"px, "+(b-this._div.clientHeight-10+this._dispPos.y)+"px)")},display:function(a){this._div.style.visibility=a?"":"hidden"},isShow:function(){return""==this._div.style.visibility},_appendDiv:function(a){a.appendChild(this._div)},getLatLng:function(){return this.latlng.clone()},setLatLng:function(a){this.latlng=
a},setText:function(a){this._textDiv.innerHTML=a;this.events.triggerEvent("setText")}});navitime.geo.marker.Popup=navitime.geo.marker.CSSPopup;navitime.geo.namespace("navitime.geo.graphics");
navitime.geo.graphics.Arrow=navitime.geo.base.Class(navitime.geo.graphics.GraphicUtil,{EVENT_TYPES:["changestate","add","remove"],events:null,_pix:null,_prevPix:null,_options:null,_arrow:null,_arrowHead:null,_straight:null,_circle:null,_arrowMiddlePix:{},_littleArrowHeadPix:null,_slidePix:null,_radius:0,_arrowOption:{strokecolor:"white",strokeweight:2,strokeopacity:1,strokelinecap:"butt",strokelinejoin:"butt"},initialize:function(a,b,c){this._pix=a||{x:0,y:0};this._prevPix=b||{x:0,y:0};this._options=
c||{};this._options.slide=c.slide||0;this.events=new navitime.geo.event.InnerEventController(this,null,this.EVENT_TYPES);b=this._calcUnitVector(this._calcVector(a,b));b=this._calcArrowHeadPix(a,b);this._arrowMiddlePix=this._calcArrowMiddlePix(b);this._slidePix={x:a.x+this._options.slide,y:a.y+this._options.slide};this._radius=this._calcArrowRadius(this._arrowMiddlePix,this._slidePix);this._littleArrowHeadPix=this._calcLittleArrowHeadPix(a,b)},destroy:function(){this.events&&this.events.destroy();
this._slidePix=this._littleArrowHeadPix=this._arrowMiddlePix=this._circle=this._straight=this._arrowHead=this._arrow=this._options=null;this._radius=0},_draw:function(a){},_calcUnitVector:function(a){return{x:a.x/a.vectorLen,y:a.y/a.vectorLen}},_calcArrowHeadPix:function(a,b){return{lx:a.x-7*b.y-7*b.x,ly:a.y+7*b.x-7*b.y,rx:a.x+7*b.y-7*b.x,ry:a.y-7*b.x-7*b.y}},_calcArrowMiddlePix:function(a){return{x:Math.round((a.rx+a.lx)/2)+this._options.slide,y:Math.round((a.ry+a.ly)/2)+this._options.slide}},_calcArrowRadius:function(a,
b){var c=Math.pow(a.x-b.x,2),d=Math.pow(a.y-b.y,2);return Math.round(Math.sqrt(c+d)+4)},_calcLittleArrowHeadPix:function(a,b){return{lx:Math.round((3*b.lx+a.x)/4)+this._options.slide,ly:Math.round((3*b.ly+a.y)/4)+this._options.slide,rx:Math.round((3*b.rx+a.x)/4)+this._options.slide,ry:Math.round((3*b.ry+a.y)/4)+this._options.slide}}});navitime.geo.namespace("navitime.geo.graphics");
navitime.geo.graphics.Circle=navitime.geo.base.Class({EVENT_TYPES:["changestate","add","remove"],events:null,_options:null,div:null,_radius:null,_center:null,DEG_TO_RAD:Math.PI/180,initialize:function(a){this._options=a||{};this._radius=[];this.events=new navitime.geo.event.InnerEventController(this,null,this.EVENT_TYPES)},destroy:function(){this.events&&this.events.destroy();this._center=this._radius=this.div=this._options=null},_draw:function(a){},updatePixelPaths:function(a){var b=a.getZoom();
if(!this._radius[b]){var c=new navitime.geo.LatLng(navitime.geo.LatLng.transMILLItoDEG(this._options.center.lat),navitime.geo.LatLng.transMILLItoDEG(this._options.center.lng)-this._getLngRadius());this._radius[b]=Math.max(Math.round(a.getPixcelFromLatLng(this._options.center).left-a.getPixcelFromLatLng(c).left),1)}this.radius=this._radius[b];this._center=a.getPixcelFromLatLng(this._options.center)},_getLngRadius:function(){var a=40075017*Math.cos(this.DEG_TO_RAD*navitime.geo.LatLng.transMILLItoDEG(this._options.center.lat));
return 360*(this._options.radius/a)},setOptions:function(a){this._options=a||{};this._radius=[];this.events.triggerEvent("changestate")},setCenter:function(a){a&&(this._radius=[],this._options.center=a,this.events.triggerEvent("changestate"))},getCenter:function(){return this._options.center},setRadius:function(a){a&&(this._radius=[],this._options.radius=a,this.events.triggerEvent("changestate"))},getRadius:function(){return this._options.radius},setVisible:function(a){this._visibility=a?"":"hidden";
this.div&&(this.div.style.visibility=this._visibility);this.events.triggerEvent("changestate")},getVisible:function(){return"hidden"===this._visibility?!1:!0},getZIndex:function(){return this._options.zindex},setZIndex:function(a){this._options.zindex=a;this.events.triggerEvent("changestate")},getMap:function(){return this._options.map}});navitime.geo.namespace("navitime.geo.graphics");
navitime.geo.graphics.Path=navitime.geo.base.Class(navitime.geo.graphics.GraphicUtil,{EVENT_TYPES:["changestate","add","remove"],events:null,_options:null,div:null,_paths:null,_arrowIndexes:null,_arrowPacks:null,_latLngPaths:null,_zoomArrowIndexes:null,initialize:function(a){this._options=a||{};this._options.slide=a.slide||0;this._options.path[0]instanceof Array||(this._options.path=[this._options.path]);this._latLngPaths=[];this._zoomArrowIndexes=[];this.events=new navitime.geo.event.InnerEventController(this,
null,this.EVENT_TYPES);for(a=this._options.path.length;a--;)navitime.geo.Util.changeDynamicArray(this._options.path[a],this,function(){this._latLngPaths=[];this._zoomArrowIndexes=[];this.events.triggerEvent("changestate")})},destroy:function(){this.events&&this.events.destroy();this._arrowPacks&&this._destroyArrowPacks();this._arrowIndexes=this._paths=this.div=this._options=null},_destroyArrowPacks:function(){for(var a=this._arrowPacks.length;a--;)this._destroyArrowPack(this._arrowPacks.pop())},_destroyArrowPack:function(a){for(var b=
a.length;b--;)a.pop().destroy()},_draw:function(a){},updatePixelPaths:function(a){var b=a.getZoom();this._paths=this._latLngPaths[b]?this._calcPixelPaths(this._latLngPaths[b],a):this._calcSimplifiedPixelPaths(b,a);this._options.arrow&&(this._removeArrowPacks(),this._zoomArrowIndexes[b]||(this._zoomArrowIndexes[b]=this._createArrowIndexes(a)),this._arrowIndexes=this._zoomArrowIndexes[b])},_calcPixelPaths:function(a,b){for(var c=[],d=a.length;d--;){var e=a[d];c[d]=[];for(var f=e.length;f--;){var g=
b.getPixcelFromLatLng(e[f]);c[d].unshift({x:g.left,y:g.top})}}return c},_calcSimplifiedPixelPaths:function(a,b){for(var c=this._options.path,d=this._calcPixelPaths(c,b),e=[],f=[],g=d.length;g--;){var h=this.createSimplifiedIndex(d[g]);f[g]=this._simplify(c[g],h);e[g]=this._simplify(d[g],h)}this._latLngPaths[a]=f;return e},_simplify:function(a,b){for(var c=[],d=a.length;d--;)b[d]&&c.unshift(a[d]);return c},_createArrowIndexes:function(a){a=a._grid._drawBounds.clone().getHeight()/1/3;for(var b=0,c=
[],d=0,e=this._paths.length;d<e;d++){var f=this._paths[d];c[d]=[];b=this._appendArrowIndex(c[d],f,a,b)}return c},_appendArrowIndex:function(a,b,c,d){for(var e=1,f=b.length;e<f;e++){var g=this._calcVector(b[e],b[e-1]).vectorLen,h=d>c,k=e<f-10;d+=g;this._isCreatableArrow(g,h,k)&&(a.push(e),d=0)}return d},_isCreatableArrow:function(a,b,c){var d=!1;0!==a&&b&&c&&(d=!0);return d},_createArrowPacks:function(){for(var a=[],b=0,c=this._arrowIndexes.length;b<c;b++)a[b]=this._createArrowPack(this._arrowIndexes[b],
this._paths[b]);return a},_createArrowPack:function(a,b){for(var c=[],d=0,e=a.length;d<e;d++){var f=a[d];c.push(new navitime.geo.graphics.Arrow(b[f],b[f-1],this._options))}return c},_drawArrowPacks:function(a){for(var b=0,c=this._arrowPacks.length;b<c;b++)this._drawArrowPack(this._arrowPacks[b],a)},_drawArrowPack:function(a,b){for(var c=0,d=a.length;c<d;c++)a[c]._draw(b)},_remove:function(a){},_removeArrowPacks:function(){if(this._arrowPacks){for(var a=0,b=this._arrowPacks.length;a<b;a++)this._removeArrowPack(this._arrowPacks[a]);
this._arrowPacks=null}},_removeArrowPack:function(a){for(var b=0,c=a.length;b<c;b++)a[b].events.triggerEvent("remove")},setOptions:function(a){this._options=a||{};this._options.path[0]instanceof Array||(this._options.path=[this._options.path]);for(a=this._options.path.length;a--;)navitime.geo.Util.changeDynamicArray(this._options.path[a],this,function(){this._latLngPaths=[];this._zoomArrowIndexes=[];this.events.triggerEvent("changestate")});this.events.triggerEvent("changestate")},setPath:function(a){this._options.path[0]instanceof
Array||(a=[a]);this._options.path=a;for(a=this._options.path.length;a--;)navitime.geo.Util.changeDynamicArray(this._options.path[a],this,function(){this._latLngPaths=[];this._zoomArrowIndexes=[];this.events.triggerEvent("changestate")});this.events.triggerEvent("changestate")},getPath:function(){return this._options.path},setVisible:function(a){this._visibility=a?"":"hidden";this.div&&(this.div.style.visibility=this._visibility);this.events.triggerEvent("changestate")},getVisible:function(){return"hidden"===
this._visibility?!1:!0},getZIndex:function(){return this._options.zindex},setZIndex:function(a){this._options.zindex=a;this.events.triggerEvent("changestate")},getMap:function(){return this._options.map}});navitime.geo.namespace("navitime.geo.graphics");
navitime.geo.graphics.VectorCollection=navitime.geo.base.Class({events:null,div:null,_buffer:0,initialize:function(a){this._options=a||{};this._options.painters=this._options.painters||[];this._sortPainter();this.div=this._createBase();this.events=new navitime.geo.event.InnerEventController(this,null);this._statusChangeListener=navitime.geo.Util.Function.bind(function(a){this._sortPainter();for(a=this._options.painters.length;a--;)this._options.painters[a].updatePixelPaths(this._options.map);this._draw()},
this);this._options.map&&this.setMap(this._options.map)},destroy:function(){for(var a=this._options.painters.length;a--;){var b=this._options.painters[a];b._node&&this.div.removeChild(b._node);b.destroy()}this.events&&this.events.destroy();this._redrawListener=null;this._options.map.removeOverlay(this);this.div=null},add:function(a){this._options.painters.push(a);this._options.map&&(a.events.register("changestate",this,this._statusChangeListener),this._statusChangeListener());a.events.triggerEvent("add")},
remove:function(a){for(var b=this._options.painters.length;b--;)a==this._options.painters[b]&&(this._options.painters.splice(b,1),this._options.map&&a.events.unregister("changestate",this,this._statusChangeListener),a._node&&this.div.removeChild(a._node),a.events.triggerEvent("remove"))},setOptions:function(a){for(var b=this._options.painters.length;b--;)this.remove(this._options.painters[b]);this.setMap(null);this._options=a||{};this._options.painters=this._options.painters||[];this._sortPainter();
this._options.map&&this.setMap(this._options.map)},setMap:function(a){var b;if(a){this._options.map=a;a.addOverlay(this);for(var c=this._options.painters.length;c--;)b=this._options.painters[c],b.events.register("changestate",this,this._statusChangeListener);a.events.register("moveend",this,this._statusChangeListener);a.events.register("zoomend",this,this._statusChangeListener);a.events.register("resize",this,this._statusChangeListener);a.events.register("panend",this,this._draw);this._statusChangeListener()}else if(this._options.map){this._options.map.removeOverlay(this);
for(c=this._options.painters.length;c--;)b=this._options.painters[c],b.events.unregister("changestate",this,this._statusChangeListener);this._options.map.events.unregister("moveend",this,this._statusChangeListener);this._options.map.events.unregister("zoomend",this,this._statusChangeListener);this._options.map.events.unregister("resize",this,this._statusChangeListener);this._options.map.events.unregister("panend",this,this._draw)}},getMap:function(){return this._options.map},_createBase:function(){},
_setViewPort:function(a,b){},_draw:function(){this.div.style.display="none";var a=this._options.map._grid._drawBounds.clone(),b=this._options.map.getViewDivPixel(),a=new navitime.geo.BoundsInfo(a.left-a.getWidth()*this._buffer-b.left,a.right+a.getWidth()*this._buffer-b.left,a.top-a.getHeight()*this._buffer-b.top,a.bottom+a.getHeight()*this._buffer-b.top);this._setViewPort(this.div,a);for(var b=0,c=this._options.painters.length;b<c;b++)this._options.painters[b]._draw(this.div,a);this.div.style.display=
""},_sortPainter:function(){this._options.painters.sort(function(a,b){return a._options.zindex-b._options.zindex})}});navitime.geo.namespace("navitime.geo.graphics");
navitime.geo.graphics.VectorUtil={xmlns:"http://www.w3.org/2000/svg",xlinkns:"http://www.w3.org/1999/xlink",_setStyle:function(a,b){b.fillcolor&&a.setAttributeNS(null,"fill",b.fillcolor);(b.fillopacity||0===b.fillopacity)&&a.setAttributeNS(null,"fill-opacity",b.fillopacity);b.strokecolor&&a.setAttributeNS(null,"stroke",b.strokecolor);(b.strokeweight||0===b.strokeweight)&&a.setAttributeNS(null,"stroke-width",b.strokeweight);(b.strokeopacity||0===b.strokeopacity)&&a.setAttributeNS(null,"stroke-opacity",
b.strokeopacity);b.strokelinecap&&a.setAttributeNS(null,"stroke-linecap",b.strokelinecap);b.strokelinejoin&&a.setAttributeNS(null,"stroke-linejoin",b.strokelinejoin);if(b.strokedasharray){var c=b.strokedasharray.split(","),d="",e="";b.strokeweight=b.strokeweight||10;for(var f=0,g=c.length;f<g;f++)d+=e+Math.round(c[f]*b.strokeweight),e=",";a.setAttributeNS(null,"stroke-dasharray",d)}b.zIndex&&a.setAttributeNS(null,"z-index",b.zIndex)}};navitime.geo.namespace("navitime.geo.graphics");
navitime.geo.graphics.Arrow=navitime.geo.base.Class(navitime.geo.graphics.Arrow,navitime.geo.graphics.VectorUtil,{_draw:function(a){this._arrowOption.fillcolor||(this._arrowOption.fillcolor="none");this._createCircle();this._createArrowHead();this._createStraight();this._arrow||(this._arrow=this._createGroupDiv(),this.events.register("remove",this,navitime.geo.Util.Function.bind(function(){a.removeChild(this._arrow);this.destroy()},this)),this._arrow.appendChild(this._circle),this._arrow.appendChild(this._arrowHead),
this._arrow.appendChild(this._straight));this._arrow.parentNode||a.appendChild(this._arrow)},_createCircle:function(){var a=new navitime.geo.Color(this._options.strokecolor);a.addBrightnessPercent(-50);this._circle||(this._circle=this._createEllipse());this._setCirclePoint(this._circle);this._setStyle(this._circle,{strokecolor:"white",strokeweight:2,fillopacity:0.8,strokeopacity:0.8,fillcolor:a.getHex()})},_createArrowHead:function(){this._arrowHead||(this._arrowHead=this._createPath());this._arrowHead.setAttribute("d",
this._createArrowHeadPoint());this._setStyle(this._arrowHead,this._arrowOption)},_createArrowHeadPoint:function(){var a;a=""+("M"+this._littleArrowHeadPix.lx+" "+this._littleArrowHeadPix.ly+" ");a+="L"+this._slidePix.x+" "+this._slidePix.y+" ";return a+="L"+this._littleArrowHeadPix.rx+" "+this._littleArrowHeadPix.ry+" "},_createStraight:function(){this._straight||(this._straight=this._createPath());this._straight.setAttribute("d",this._createStraightPoint());this._setStyle(this._straight,this._arrowOption)},
_createStraightPoint:function(){var a;a=""+("M"+this._slidePix.x+" "+this._slidePix.y+" ");return a+="L"+(2*this._arrowMiddlePix.x-this._slidePix.x)+" "+(2*this._arrowMiddlePix.y-this._slidePix.y)+" "},_createEllipse:function(){var a=document.createElementNS(this.xmlns,"ellipse");a.setAttribute("clip-path","url(#clipBounds)");return a},_createPath:function(){var a=document.createElementNS(this.xmlns,"path");a.setAttribute("clip-path","url(#clipBounds)");return a},_createGroupDiv:function(){var a;
a=document.createElementNS(this.xmlns,"g");a.id="arrowGroup_"+navitime.geo.Util._getSerial();return a},_setCirclePoint:function(a){a.setAttribute("cx",this._arrowMiddlePix.x);a.setAttribute("cy",this._arrowMiddlePix.y);a.setAttribute("rx",this._radius);a.setAttribute("ry",this._radius)}});navitime.geo.namespace("navitime.geo.graphics");
navitime.geo.graphics.Circle=navitime.geo.base.Class(navitime.geo.graphics.Circle,navitime.geo.graphics.VectorUtil,{_draw:function(a){this.div||(this.div=document.createElementNS(this.xmlns,"ellipse"),this.div.setAttribute("clip-path","url(#clipBounds)"),this.events.register("remove",this,navitime.geo.Util.Function.bind(function(){a.removeChild(this.div)},this)),this.events.attachToElement(this.div));var b=this.radius;this.div.setAttribute("cx",this._center.left);this.div.setAttribute("cy",this._center.top);
this.div.setAttribute("rx",b);this.div.setAttribute("ry",b);this._options.fillcolor||(this._options.fillcolor="none");this._setStyle(this.div,this._options);this.div.parentNode||a.appendChild(this.div)}});navitime.geo.namespace("navitime.geo.graphics");
navitime.geo.graphics.Polygon=navitime.geo.base.Class(navitime.geo.graphics.Path,navitime.geo.graphics.VectorUtil,{_draw:function(a){this.div||(this.div=document.createElementNS(this.xmlns,"path"),this.div.setAttribute("clip-path","url(#clipBounds)"),this.events.register("remove",this,navitime.geo.Util.Function.bind(function(){a.removeChild(this.div)},this)),this.events.attachToElement(this.div));for(var b="",c=0,d=this._paths.length;c<d;c++)for(var e=this._paths[c],f=0,g=e.length;f<g;f++)b+=(f?"L":
"M")+e[f].x+" "+e[f].y;this.div.setAttribute("d",b+"Z");this._options.fillcolor||(this._options.fillcolor="none");this._setStyle(this.div,this._options);this.div.parentNode||a.appendChild(this.div)}});navitime.geo.namespace("navitime.geo.graphics");
navitime.geo.graphics.Polyline=navitime.geo.base.Class(navitime.geo.graphics.Path,navitime.geo.graphics.VectorUtil,{_draw:function(a){this.div||(this.div=document.createElementNS(this.xmlns,"path"),this.div.setAttribute("clip-path","url(#clipBounds)"),this.events.register("remove",this,navitime.geo.Util.Function.bind(function(){this._remove(a)},this)),this.events.attachToElement(this.div));for(var b="",c=0,d=this._paths.length;c<d;c++)for(var e=this._paths[c],f=0,g=e.length;f<g;f++)b+=(f?"L":"M")+
(e[f].x+this._options.slide)+" "+(e[f].y+this._options.slide);this.div.setAttribute("d",b);this._options.fillcolor||(this._options.fillcolor="none");this._setStyle(this.div,this._options);this.div.parentNode||a.appendChild(this.div);this._options.arrow&&"hidden"!==this._visibility&&(this._arrowPacks||(this._arrowPacks=this._createArrowPacks()),this._drawArrowPacks(a))},_remove:function(a){a.removeChild(this.div);this._removeArrowPacks()}});navitime.geo.namespace("navitime.geo.graphics");navitime.geo.graphics.CircleMarker=navitime.geo.base.Class(navitime.geo.graphics.Circle,{updatePixelPaths:function(a){this.radius=this._options.radius;this._center=a.getPixcelFromLatLng(this._options.center)}});navitime.geo.namespace("navitime.geo.graphics");
navitime.geo.graphics.Collection=navitime.geo.base.Class(navitime.geo.graphics.VectorCollection,{xmlns:"http://www.w3.org/2000/svg",_createBase:function(){var a=document.createElementNS(this.xmlns,"svg");a.setAttributeNS(null,"version","1.1");navitime.geo.base.CSS3Style&&navitime.geo.base.CSS3Style.USERSELECT&&(a.style[navitime.geo.base.CSS3Style.USERSELECT]="none");a.setAttributeNS(null,"class","ntgeo-svg-disable-outline");a.setAttribute("unselectable","on",0);a.onselectstart=function(){return!1};
this._setClipPath(a);return a},_setClipPath:function(a){var b=document.createElementNS(this.xmlns,"defs"),c=document.createElementNS(this.xmlns,"clipPath");c.setAttributeNS(null,"id","clipBounds");this.clipRect=document.createElementNS(this.xmlns,"rect");c.appendChild(this.clipRect);b.appendChild(c);a.appendChild(b)},_setViewPort:function(a,b){navitime.geo.base.CSS3Style.setTransForm(a,"translate("+b.left+"px, "+b.top+"px)");a.setAttribute("width",b.getWidth());a.setAttribute("height",b.getHeight());
navitime.geo.DOM.addElementOption(a,null,null,"absolute",null,"visible");a.setAttributeNS(null,"viewBox",b.left+" "+b.top+" "+b.getWidth()+" "+b.getHeight());this.clipRect.setAttributeNS(null,"x",b.left);this.clipRect.setAttributeNS(null,"y",b.top);this.clipRect.setAttributeNS(null,"width",b.getWidth());this.clipRect.setAttributeNS(null,"height",b.getHeight())}});navitime.geo.namespace("navitime.geo.overlay");
navitime.geo.overlay.AbstractGraphicalOverlay=navitime.geo.base.Class({_painter:null,events:null,_clickEventHandler:null,initialize:function(a){this.events=this._painter.events;this._clickEventHandler=new navitime.geo.handler.Click(this,{dblrightclick:function(a){this.events.triggerEvent("dblrightclick",a)},rightclick:function(a){this.events.triggerEvent("rightclick",a)}},this.events);this.setMap(a.map)},destroy:function(){this._map&&this.setMap(null);this._painter.destroy();this._options=null},getMap:function(){return this._map},
setMap:function(a){if(a){if(this._map){if(this._map==a)return;this.setMap(null)}this._map=a;a._collection=a._collection||new navitime.geo.graphics.Collection({map:a});a._collection.add(this._painter);this._clickEventHandler.activate()}else this._map&&(this._map._collection.remove(this._painter),this._map=null),this._clickEventHandler.deactivate()},setOptions:function(a){this._painter.setOptions(this._createPainterOptions(a))},setVisible:function(a){this._painter.setVisible(a)},getVisible:function(){return this._painter.getVisible()},
getZIndex:function(){return this._painter.getZIndex()},setZIndex:function(a){this._painter.setZIndex(a)},_createPainterOptions:function(a){}});navitime.geo.namespace("navitime.geo.overlay");
navitime.geo.overlay.Circle=navitime.geo.base.Class(navitime.geo.overlay.AbstractGraphicalOverlay,{initialize:function(a){var b=this._createPainterOptions(a);this._painter=new navitime.geo.graphics.Circle(b);navitime.geo.overlay.AbstractGraphicalOverlay.prototype.initialize.apply(this,arguments)},getCenter:function(){return this._painter.getCenter()},setCenter:function(a){a&&this._painter.setCenter(a)},getRadius:function(){return this._painter.getRadius()},setRadius:function(a){a&&this._painter.setRadius(a)},
_createPainterOptions:function(a){return{center:a.center,radius:a.radius,fillcolor:a.fillColor,fillopacity:a.fillOpacity,strokecolor:a.strokeColor,strokeopacity:a.strokeOpacity,strokeweight:a.strokeWeight,zindex:a.zIndex||0}}});navitime.geo.namespace("navitime.geo.overlay");
navitime.geo.overlay.Polygon=navitime.geo.base.Class(navitime.geo.overlay.AbstractGraphicalOverlay,{_renderer:null,initialize:function(a){var b=this._createPainterOptions(a);this._painter=new navitime.geo.graphics.Polygon(b);navitime.geo.overlay.AbstractGraphicalOverlay.prototype.initialize.apply(this,arguments)},getPaths:function(){return this._painter.getPath()},setPaths:function(a){a&&this._painter.setPath(a)},_createPainterOptions:function(a){return{path:a.paths,fillcolor:a.fillColor,fillopacity:a.fillOpacity,
strokecolor:a.strokeColor,strokeopacity:a.strokeOpacity,strokeweight:a.strokeWeight,zindex:a.zIndex||0}}});navitime.geo.namespace("navitime.geo.overlay");
navitime.geo.overlay.Polyline=navitime.geo.base.Class(navitime.geo.overlay.AbstractGraphicalOverlay,{initialize:function(a){var b=this._createPainterOptions(a);this._painter=new navitime.geo.graphics.Polyline(b);navitime.geo.overlay.AbstractGraphicalOverlay.prototype.initialize.apply(this,arguments)},getPath:function(){return this._painter.getPath()},setPath:function(a){a&&this._painter.setPath(a)},_createPainterOptions:function(a){return{path:a.path,fillcolor:a.fillColor,fillopacity:a.fillOpacity,
strokecolor:a.strokeColor,strokeopacity:a.strokeOpacity,strokeweight:a.strokeWeight,zindex:a.zIndex||0,slide:a.slide||0,arrow:a.arrow||!1,strokedasharray:a.strokedasharray}}});navitime.geo.namespace("navitime.geo.overlay");
navitime.geo.overlay.CircleMarker=navitime.geo.base.Class(navitime.geo.overlay.AbstractGraphicalOverlay,{initialize:function(a){this._options=a||{};this._options.visible=a.visible||!0;this.isActivate=!1;this._painter=new navitime.geo.graphics.CircleMarker(this._createPainterOptions(a));this.setVisible(this._options.visible);this.setRaiseOnDrag(this._options.raiseOnDrag);this.setCursor(this._options.cursor);navitime.geo.overlay.AbstractGraphicalOverlay.prototype.initialize.apply(this,arguments)},setMap:function(a){if(a){if(this._map){if(this._map==
a)return;this.setMap(null)}}else if(!this._map)return;this._options.draggable&&(a?this._activateDraggable():this._deactivateDraggable());navitime.geo.overlay.AbstractGraphicalOverlay.prototype.setMap.apply(this,[a])},_activateDraggable:function(){if(this.isActivate)return!1;this.events.register("mousedown",this,this._dragstart);return this.isActivate=!0},_deactivateDraggable:function(){if(!this.isActivate)return!1;this.events.unregister("mousedown",this,this._dragstart);var a=this.getMap().events;
a.unregister("mousemove",this,this._drag);a.unregister("mouseup",this,this._dragend);this.isActivate=!1;return!0},_dragstart:function(a){a=this.getMap();a.disableMouse();a.events.register("mousemove",this,this._drag);a.events.register("mouseup",this,this._dragend)},_drag:function(a){var b=this.getMap(),c=b.getViewDivPixel(),b=b.getMovedLatLng(c.left+b._displayBounds.getCenterX()-a.xy.x,c.top+b._displayBounds.getCenterY()-a.xy.y);this.setCenter(b);this._isDragged?this.events.triggerEvent("drag",a):
(this.events.triggerEvent("dragstart",a),this._isDragged=!0,this._originalZIndex=this.getZIndex(),this._options.raiseOnDrag&&this.setZIndex(2147483647))},_dragend:function(a){var b=this.getMap();b.events.unregister("mousemove",this,this._drag);b.events.unregister("mouseup",this,this._dragend);b.enableMouse();if(this._isDragged){this.events.triggerEvent("dragend",a);var c=b.getViewDivPixel();a=b.getMovedLatLng(c.left+b._displayBounds.getCenterX()-a.xy.x,c.top+b._displayBounds.getCenterY()-a.xy.y);
this.setCenter(a);this.setZIndex(this._originalZIndex);this._isDragged=!1}},destroy:function(){this._deactivateDraggable();navitime.geo.overlay.AbstractOverlay.prototype.destroy.apply(this)},getDraggable:function(){return this._options.draggable},setDraggable:function(a){a?this._activateDraggable():this._deactivateDraggable();this._options.draggable=a},getCenter:function(){return this._painter.getCenter()},setCenter:function(a){a&&this._painter.setCenter(a)},getRadius:function(){return this._painter.getRadius()},
setRadius:function(a){a&&this._painter.setRadius(a)},getRaiseOnDrag:function(){return this._options.raiseOnDrag},setRaiseOnDrag:function(a){this._options.raiseOnDrag=a||!1},getCursor:function(){return this._options.cursor},setCursor:function(a){this._painter.div&&(this._options.cursor=a,this._painter.div.style.cursor=a)},_createPainterOptions:function(a){return{center:a.center,radius:a.radius,fillcolor:a.fillColor,fillopacity:a.fillOpacity,strokecolor:a.strokeColor,strokeopacity:a.strokeOpacity,strokeweight:a.strokeWeight,
zindex:a.zIndex||0}},setOptions:function(a){navitime.geo.overlay.AbstractGraphicalOverlay.prototype.setOptions.apply(this,[a])}});navitime.geo.namespace("navitime.geo");
navitime.geo.GeoJSON={defaultOptions:{strokeColor:"#55ff00",strokeWeight:7,strokeOpacity:0.765,fillColor:"#55ff00",fillOpacity:0.5,zIndex:1},draw:function(a){a=a||{};return navitime.geo.GeoJSON._doDraw(a.json,a)},_doDraw:function(a,b){var c=[];if(a.features){try{this._parseGeoJSON(a.features)}catch(d){a.features=this._convertToDegreeFeatures(a.features)}for(var e=0,f=a.features.length;e<f;e++){var g=navitime.geo.GeoJSON._doDraw(a.features[e],b);this._isArray(g)?c.concat(g):c.push(g)}return c}c="Feature"==
a.type?a.geometry:a;e=this._getCoordDepth(c);try{this._parseCoords(c.coordinates,e)}catch(h){c.coordinates=this._convertToDegreeCoords(c.coordinates,e)}return navitime.geo.GeoJSON._drawGeometry(c,b)},_isArray:function(a){return"[object Array]"===Object.prototype.toString.call(a)},_parseGeoJSON:function(a){for(var b=0;b<a.length;b++){var c=a[b],c="Feature"==c.type?c.geometry:c,d=this._getCoordDepth(c);this._parseCoords(c.coordinates,d,!1)}return[]},_getCoordDepth:function(a){var b=0;switch(a.type){case "Polygon":b=
1;break;case "MultiLineString":b=1;break;case "MultiPolygon":b=2}return b},_parseCoords:function(a,b,c){for(var d=0;d<a.length;d++)if(0===b){if(this._isUnitDiff(a[d],0===d?null:a[d-1],c))throw Error("Invalid Coordinate");}else this._parseCoords(a[d],b-1)},_isUnitDiff:function(a,b,c){var d=!1,e=c?0:1,f=c?1:0;c=a[f]+"";a=(a[e]+"").indexOf(".");c=c.indexOf(".");-1!==a&&-1===c||-1===a&&-1!==c?d=!0:b&&(f=b[f]+"",b=(b[e]+"").indexOf("."),e=f.indexOf("."),a=this._isMilliSec(a,c),b=this._isMilliSec(b,e),
a!==b&&(d=!0));return d},_isMilliSec:function(a,b){return-1===a&&-1===b?1:0},_convertToDegreeFeatures:function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e="Feature"==d.type?d.geometry:d,f=this._getCoordDepth(e),e=this._convertToDegreeCoords(e.coordinates,f);"Feature"==d.type?d.geometry.coordinates=e:d.coordinates=e;b.push(d)}return b},_convertToDegreeCoords:function(a,b,c){for(var d=[],e=0;e<a.length;e++)0===b?d.push(this._convertToDegreeCoord(a[e],c)):d.push(this._convertToDegreeCoords(a[e],
b-1));return d},_convertToDegreeCoord:function(a,b){var c=b?0:1,d=b?1:0,e=a[d]+"";-1===(a[c]+"").indexOf(".")&&(a[c]+=1E-7);-1===e.indexOf(".")&&(a[d]+=1E-7);return a},_drawGeometry:function(a,b){var c=a.coordinates,d=b.drawPoint,e;switch(a.type){case "Point":return e=navitime.geo.GeoJSON._createCircleOptions(b),e.center=navitime.geo.GeoJSON.coordsToLatLng(c),d?d(e.center):new navitime.geo.overlay.CircleMarker(e);case "MultiPoint":for(var f=[],g=0,h=c.length;g<h;g++)e=navitime.geo.GeoJSON._createCircleOptions(b),
e.center=navitime.geo.GeoJSON.coordsToLatLng(c[g]),f.push(d?d(e.center):new navitime.geo.overlay.CircleMarker(e));return f;case "LineString":return d=navitime.geo.GeoJSON._createOverlayOptions(b),d.path=navitime.geo.GeoJSON.coordsToLatLngs(c),new navitime.geo.overlay.Polyline(d);case "Polygon":return d=navitime.geo.GeoJSON._createOverlayOptions(b,!0),d.paths=navitime.geo.GeoJSON.coordsToLatLngs(c,1),new navitime.geo.overlay.Polygon(d);case "MultiLineString":c=navitime.geo.GeoJSON.coordsToLatLngs(c,
1);e=[];for(var g=0,h=c.length;g<h;g++)d=navitime.geo.GeoJSON._createOverlayOptions(b),d.path=c[g],e.push(new navitime.geo.overlay.Polyline(d));return e;case "MultiPolygon":c=navitime.geo.GeoJSON.coordsToLatLngs(c,2);e=[];g=0;for(h=c.length;g<h;g++)d=navitime.geo.GeoJSON._createOverlayOptions(b,!0),d.paths=c[g],e.push(new navitime.geo.overlay.Polygon(d));return e;case "GeometryCollection":c=[];g=0;for(h=a.geometries.length;g<h;g++)c.push(navitime.geo.GeoJSON._drawGeometry(a.geometries[g],b));return c;
default:throw Error("Invalid GeoJSON object.");}},coordsToLatLng:function(a,b){var c=parseFloat(a[b?0:1]),d=parseFloat(a[b?1:0]);return new navitime.geo.LatLng(c,d)},coordsToLatLngs:function(a,b,c){for(var d=[],e=0,f=a.length;e<f;e++){var g=b?navitime.geo.GeoJSON.coordsToLatLngs(a[e],b-1,c):navitime.geo.GeoJSON.coordsToLatLng(a[e],c);d.push(g)}return d},_createOverlayOptions:function(a,b){return{map:a.map,strokeColor:a.strokeColor||navitime.geo.GeoJSON.defaultOptions.strokeColor,strokeWeight:a.strokeWeight||
navitime.geo.GeoJSON.defaultOptions.strokeWeight,strokeOpacity:a.strokeOpacity||navitime.geo.GeoJSON.defaultOptions.strokeOpacity,fillColor:b?a.fillColor?a.fillColor:navitime.geo.GeoJSON.defaultOptions.fillColor:void 0,fillOpacity:b?a.fillOpacity?a.fillOpacity:navitime.geo.GeoJSON.defaultOptions.fillOpacity:void 0,zIndex:a.zIndex||navitime.geo.GeoJSON.defaultOptions.zIndex}},_createCircleOptions:function(a){return{map:a.map,fillColor:"red",fillOpacity:0.5,radius:2,strokeColor:"darkred",strokeOpacity:1,
strokeWeight:2,zIndex:2,cursor:"pointer"}}};navitime.geo.namespace("navitime.geo.IndexedDB.Handler");navitime.geo.namespace("navitime.geo.IndexedDB.Util");navitime.geo.namespace("navitime.geo.IndexedDB.Constant");navitime.geo.IndexedDB.Constant.DB_NAME="namapdb";navitime.geo.IndexedDB.Constant.TABLE_NAME="t_tile";navitime.geo.IndexedDB.Constant.STORE_KEYPATH="req_url";
navitime.geo.IndexedDB.Util=function(){var a=null;return{getIndexedDB:function(){return new Promise(function(b,c){window.indexedDB=window.indexedDB||window.webkitIndexedDB||window.mozIndexedDB||window.OIndexedDB||window.msIndexedDB;if(a)return b(a);window.indexedDB||c(null);var d=null,e=indexedDB.open(navitime.geo.IndexedDB.Constant.DB_NAME,1);e.onupgradeneeded=function(a){d=a.target.result;d.createObjectStore(navitime.geo.IndexedDB.Constant.TABLE_NAME,{keyPath:navitime.geo.IndexedDB.Constant.STORE_KEYPATH}).createIndex("timeIndex",
"access_time",{unique:!1,multiEntry:!1})};e.onsuccess=function(c){a=d=c.target.result;return b(a)}})},clearCache:function(){a&&a.transaction([navitime.geo.IndexedDB.Constant.TABLE_NAME],"readwrite").objectStore(navitime.geo.IndexedDB.Constant.TABLE_NAME).clear()}}}();
navitime.geo.IndexedDB.Handler=navitime.geo.base.Class({STORE_LENGTH_DEFAULT:3E3,STORE_LENGTH_MAX:5E3,RETENTION_PERIOD:30,_available:!1,_db:null,_storeLength:null,initialize:function(a){var b=this;navitime.geo.IndexedDB.Util.getIndexedDB().then(function(a){b._db=a;b._available=!0;b._deleteOldRetention()});b._storeLength=b.STORE_LENGTH_DEFAULT;a&&0<a.storeLength&&(b._storeLength=a.storeLength>=b.STORE_LENGTH_MAX?b.STORE_LENGTH_MAX:a.storeLength)},isAvailable:function(){return this._available},read:function(a){var b=
this;return new Promise(function(c,d){if(!b.isAvailable())return c(null);var e=b._db.transaction([navitime.geo.IndexedDB.Constant.TABLE_NAME],"readwrite").objectStore(navitime.geo.IndexedDB.Constant.TABLE_NAME).get(a);e.onsuccess=function(){return"undefined"===typeof this.result||"undefined"===typeof this.result.body?c(null):c(this.result.body)};e.onerror=function(){d("ERR: read error")}})},put:function(a,b,c){if(this.isAvailable()){var d=this._db.transaction([navitime.geo.IndexedDB.Constant.TABLE_NAME],
"readwrite"),e=d.objectStore(navitime.geo.IndexedDB.Constant.TABLE_NAME).count(),f=this;e.onsuccess=function(g){e.result>=f._storeLength&&f._deleteOldestRecord();d.objectStore(navitime.geo.IndexedDB.Constant.TABLE_NAME).put({req_url:a,body:b,access_time:c})};e.onerror=function(a){console.error("ERR: can not get record count.")}}},clear:navitime.geo.IndexedDB.Util.clearCache,updateTime:function(a,b){var c=this._db.transaction([navitime.geo.IndexedDB.Constant.TABLE_NAME],"readwrite").objectStore(navitime.geo.IndexedDB.Constant.TABLE_NAME).openCursor(IDBKeyRange.only(a));
c.onsuccess=function(a){if(a=c.result)a.value.access_time=b,a.update(a.value),a["continue"]()}},_deleteOldestRecord:function(){var a=this._db.transaction([navitime.geo.IndexedDB.Constant.TABLE_NAME],"readwrite").objectStore(navitime.geo.IndexedDB.Constant.TABLE_NAME).index("timeIndex").openCursor(null,"nextunique");a.onsuccess=function(b){if(b=a.result)b["delete"](),b["continue"]()}},_deleteOldRetention:function(){var a="YYYYMMDDHHmmss",b=new Date;b.setDate(b.getDate()-this.RETENTION_PERIOD);var a=
a.replace(/YYYY/,("0000"+b.getFullYear()).slice(-4)),a=a.replace(/MM/,("00"+(b.getMonth()+1)).slice(-2)),a=a.replace(/DD/,("00"+b.getDate()).slice(-2)),a=a.replace(/HH/,("00"+b.getHours()).slice(-2)),a=a.replace(/mm/,("00"+b.getMinutes()).slice(-2)),a=a.replace(/ss/,("00"+b.getSeconds()).slice(-2)),a=Number(a),c=this._db.transaction([navitime.geo.IndexedDB.Constant.TABLE_NAME],"readwrite").objectStore(navitime.geo.IndexedDB.Constant.TABLE_NAME).index("timeIndex").openCursor(IDBKeyRange.upperBound(a,
!0));c.onsuccess=function(a){if(a=c.result)a["delete"](),a["continue"]()}}});navitime.geo.namespace("navitime.geo.event");navitime.geo.event.addDomListener=function(a,b,c,d){var e=a.nodeType?a:a.eventDiv||a.div;navitime.geo.event.BrowserEventController.addEvent(e,b,c,d);return{func:function(){navitime.geo.event.BrowserEventController.removeEvent(e,b,c,d)}}};navitime.geo.event.addListener=function(a,b,c){var d=a.events;d&&d.register(b,null,c);return{func:function(){d.unregister(b,null,c)}}};
navitime.geo.event.addListenerOnce=function(a,b,c){var d=null;return d=navitime.geo.event.addListener(a,b,function(a){c(a);navitime.geo.event.removeListener(d)})};navitime.geo.event.removeListener=function(a){a&&a.func&&a.func()};navitime.geo.event.trigger=function(a,b,c){(a=a.events)&&a.triggerEvent(b,c)};navitime.geo.Map=navitime.geo.map.Map;navitime.geo.StaticMap=function(a,b,c,d){d.bufferNum=0;var e=new navitime.geo.map.Map(a,b,c,d);e.disableMouse();e.disableKeyboard();e.disableZoomBar();e.disableTouchPanel();a={};for(var f in e)b=e[f],void 0!==b&&"function"==typeof b&&0!==f.indexOf("_")&&(a[f]=navitime.geo.Util.Function.bind(b,e));a.getMap=function(){return e};return a};navitime.geo.namespace("navitime.geo.util");navitime.geo.util.calcAutomaticAdjustmentViewPort=navitime.geo.Util.calcAutomaticAdjustmentViewPort;
navitime.geo.util.addDomListener=navitime.geo.event.addDomListener;navitime.geo.util.addListener=navitime.geo.event.addListener;navitime.geo.util.addListenerOnce=navitime.geo.event.addListenerOnce;navitime.geo.util.removeListener=navitime.geo.event.removeListener;navitime.geo.util.trigger=navitime.geo.event.trigger;navitime.geo.util.transDatumJtoW=navitime.geo.Util.transDatumJtoW;navitime.geo.util.transDatumWtoJ=navitime.geo.Util.transDatumWtoJ;navitime.geo.namespace("navitime.geo.route");
navitime.geo.route.Parser={parse:function(a){var b={sections:[]};switch(a.type){case "FeatureCollection":a=a.features;for(var c=a.length,d=0;d<c;d++)navitime.geo.route.Parser.drawAdd(a[d],b.sections);break;case "Feature":navitime.geo.route.Parser.drawAdd(a,b.sections)}return b},drawAdd:function(a,b){if(0===b.length)b.push(a);else{var c=b[b.length-1];if(a.properties.inline.color===c.properties.inline.color)c.geometry.coordinates=c.geometry.coordinates.concat(a.geometry.coordinates);else{var d=c.geometry.coordinates[c.geometry.coordinates.length-
1],e=a.geometry.coordinates[0];d!==e&&b.push({geometry:{coordinates:[d,e]},properties:{inline:{line_style:"auxiliary",color:"#4B4B4B",width:c.properties.inline.width,opacity:c.properties.inline.opacity},outline:{line_style:"dashed",color:"#4B4B4B",width:c.properties.inline.width,opacity:c.properties.outline.opacity},ways:"auxiliary"}});b.push(a)}}}};navitime.geo.namespace("navitime.geo.route");
navitime.geo.route.Renderer=navitime.geo.base.Class({_defaultCenterLine:{strokeColor:"#55ff00",strokeWeight:7,strokeOpacity:0.765,zIndex:1},_defaultShadowLine:{strokeColor:"#4B4B4B",strokeWeight:10,strokeOpacity:0.5,zIndex:1},DEFAULT_INLINE_OFFSET:-4,DEFAULT_OUTLINE_OFFSET:1,_trainColor:"#3e79ff",_geojson:null,_options:null,_centerLine:null,_shadowLine:null,_allRouteCenter:null,_route:null,_originalColor:!1,initialize:function(a,b){this._options=b||{};this._options.unit=b.unit||"degree";this._options.lineAttr=
b.lineAttr||{shadow:!0,inlineOffset:this.DEFAULT_INLINE_OFFSET,outlineOffset:this.DEFAULT_OUTLINE_OFFSET};this._options.lineAttr.inlineOffset||0===this._options.lineAttr.inlineOffset||(this._options.lineAttr.inlineOffset=this.DEFAULT_INLINE_OFFSET);this._options.lineAttr.outlineOffset||0===this._options.lineAttr.outlineOffset||(this._options.lineAttr.outlineOffset=this.DEFAULT_OUTLINE_OFFSET);this._geojson=new navitime.geo.route.Parser.parse(a);this._route=b.route?b.route:this._createRoute(this._geojson.sections);
this._originalColor=b.originalColor;this._shadowLine=[];this._centerLine=[]},destroy:function(){for(var a=this._shadowLine.length;a--;)this._shadowLine.pop().destroy();for(a=this._centerLine.length;a--;)this._centerLine.pop().setMap(null);this._allRouteCenter=this._options=this._geojson=null},draw:function(){var a=this._options,b=a.lineAttr,c;a.allRoute&&this.displayAllRoute();var d=this._route.length;if(b&&b.shadow){c=this._createShadowLineAttr(b);for(var e=b.outlineOffset,f=0;f<d;f++)this._shadowLine.push(this._doDraw(this._route[f],
e,null,c,!0))}c=b.inlineOffset;for(e=0;e<d;e++)this._centerLine.push(this._doDraw(this._route[e],c,a.arrow,b,!1))},displayAllRoute:function(){var a=this._options,b=a.map;this._allRouteCenter||(this._allRouteCenter=this._calcAllRouteCenter(b,a.unit));b.setCenter(this._allRouteCenter.latlng,this._allRouteCenter.zoom)||window.setTimeout(navitime.geo.Util.Function.bind(b.setCenter,b,this._allRouteCenter.latlng,this._allRouteCenter.zoom),250)},changeVisibility:function(a){for(var b=this._shadowLine.length;b--;)this._shadowLine[b].setVisible(a);
for(b=this._centerLine.length;b--;)this._centerLine[b].setVisible(a)},isVisible:function(){return this._centerLine&&0<this._centerLine.length?this._centerLine[0].getVisible():!1},getRoute:function(){return this._route},_createShadowLineAttr:function(a){var b={};a.shadowOriginalColor||(b.color=this._defaultShadowLine.strokeColor);a.weight&&(b.weight=1.4*a.weight);a.opacity&&(b.opacity=0.65*a.opacity);return b},_doDraw:function(a,b,c,d,e){var f=this._options;e=e?a.outline:a.inline;b={map:f.map,strokeColor:this._getStrokeColor(e,
d.color,a.ways),strokeWeight:this._getStrokeWeight(e,b,d.weight),strokeOpacity:this._getStrokeOpacity(e,b,d.opacity),zIndex:f.zIndex||(0>b?this._defaultCenterLine.zIndex:this._defaultShadowLine.zIndex),slide:b,arrow:c,strokedasharray:"auxiliary"===e.line_style?"2":null};b.path=a.path;return new navitime.geo.overlay.Polyline(b)},_coordsToLatLng:function(a,b,c){var d=parseFloat(a[c?0:1]);a=parseFloat(a[c?1:0]);b=this._conversion(d,a,b);return new navitime.geo.LatLng(b.lat,b.lng)},_coordsToLatLngs:function(a,
b,c,d){for(var e=[],f=0,g=a.length;f<g;f++){var h=c?this._coordsToLatLngs(a[f],b,c-1,d):this._coordsToLatLng(a[f],b,d);e.push(h)}return e},_conversion:function(a,b,c){switch(c){case "degree":return{lat:navitime.geo.LatLng.transDEGtoMillisec(a+""),lng:navitime.geo.LatLng.transDEGtoMillisec(b+"")};default:return{lat:a,lng:b}}},_calcAllRouteCenter:function(a,b){for(var c=this._geojson.sections,d=[],e=0,f=c.length;e<f;e++)Array.prototype.push.apply(d,this._coordsToLatLngs(c[e].geometry.coordinates,b));
return navitime.geo.Util.calcAutomaticAdjustmentViewPort(a,d)},_getStrokeColor:function(a,b,c){return"auxiliary"===c?a.color:b?b:"transport"!==c||this._originalColor?a.color||this._defaultCenterLine.strokeColor:this._trainColor},_getStrokeWeight:function(a,b,c){return c?c:a.width||(0>b?this._defaultCenterLine.strokeWeight:this._defaultShadowLine.strokeWeight)},_getStrokeOpacity:function(a,b,c){return c?c:a.opacity||(0>b?this._defaultCenterLine.strokeOpacity:this._defaultShadowLine.strokeOpacity)},
_createRoute:function(a){for(var b=[],c=a.length,d=0;d<c;d++){var e=a[d];"dashed"!==e.properties.inline.line_style&&b.push({path:this._coordsToLatLngs(e.geometry.coordinates,this._options.unit),ways:e.properties.ways,inline:e.properties.inline,outline:e.properties.outline})}return b}});