zingchart
Version:
Our JavaScript charting library is a commercial product. But the full branded version is free to try, forever.
8 lines (7 loc) • 30.1 kB
JavaScript
/*
All of the code within the ZingChart software is developed and copyrighted by ZingChart, Inc., and may not be copied,
replicated, or used in any other software or application without prior permission from ZingChart. All usage must coincide with the
ZingChart End User License Agreement which can be requested by email at support@zingchart.com.
Build 2.9.11
*/
ZC.WG.push("maps"),zingchart.maps||(zingchart.maps={},zingchart.maps.maps={},zingchart.maps.data={}),zingchart.maps.FORCESCALE=0,zingchart.maps.CONNECTORS=1,zingchart.maps.LITE=0,zingchart.maps._DEFAULTS_={_COMMON_:{label:{"font-size":9,padding:"1 2",overlap:!1},tooltip:{"border-radius":6,"background-color":"#fff",color:"#303030","border-width":1,"border-color":"#909090",padding:10}},_POLY_:{alpha:.9,shadow:!0,"shadow-distance":3,"shadow-color":"#ccc","border-width":1,"border-color":"#a3a3a3","background-color":"#e3e3e3","hover-state":{shadow:!0,"background-color":"#d3d3d3","offset-x":-1,"offset-y":-1,"shadow-distance":3},connector:{"line-color":"#666","line-width":1}},_LINE_:{alpha:1,shadow:!1,"line-width":2,"line-color":"#4ea8fc","hover-state":{"line-color":"#4ec8cc","offset-x":0,"offset-y":0,shadow:!1}},_POINT_:{alpha:1,size:3,shadow:!1,"background-color":"#333","hover-state":{"offset-x":0,"offset-y":0,shadow:!1,"border-width":1,"border-color":"#aaa","background-color":"#666"},label:{"font-size":10,"offset-y":8}}},zingchart.maps.LIGHT={"background-color":"#fff",_COMMON_:{label:{"font-size":9,padding:"1 2",overlap:!1},tooltip:{"border-radius":6,"background-color":"#fff",color:"#303030","border-width":1,"border-color":"#909090",padding:10}},_POLY_:{alpha:1,"border-width":1,"border-color":"#fff","background-color":"#DDDDDD","hover-state":{"background-color":"#C4C4C4"},connector:{"line-color":"#666","line-width":1}},_LINE_:{alpha:1,shadow:!1,"line-width":2,"line-color":"#4ea8fc","hover-state":{"line-color":"#4ec8cc","offset-x":0,"offset-y":0,shadow:!1}},_POINT_:{alpha:1,size:3,shadow:!1,"background-color":"#333","hover-state":{"offset-x":0,"offset-y":0,shadow:!1,"border-width":1,"border-color":"#aaa","background-color":"#666"},label:{"font-size":10,"offset-y":8}}},zingchart.maps.DARK={"background-color":"#221F1F",_COMMON_:{label:{"font-size":9,padding:"1 2"},tooltip:{"border-radius":6,"background-color":"#fff",color:"#303030","border-width":1,"border-color":"#909090",padding:10}},_POLY_:{alpha:1,"border-width":1,"border-color":"#221F1F","background-color":"#DDDDDD","hover-state":{"background-color":"#C4C4C4"},connector:{"line-color":"#DDDDDD","line-width":1}},_LINE_:{alpha:1,shadow:!1,"line-width":2,"line-color":"#4ea8fc","hover-state":{"line-color":"#4ec8cc","offset-x":0,"offset-y":0,shadow:!1}},_POINT_:{alpha:1,size:3,shadow:!1,"background-color":"#333","hover-state":{"offset-x":0,"offset-y":0,shadow:!1,"border-width":1,"border-color":"#aaa","background-color":"#666"},label:{"font-size":10,"offset-y":8}}},zingchart.maps.upgrade=function(o){var a,t=zingchart.maps.data,e=o.split(".");for(var i in 1===e.length?t=t[o]:2===e.length&&(t=t[e[0]][e[1]]),t)if("_GROUPS_"!==i&&"_DEFAULTS_"!==i&&"_RULES_"!==i&&null===ZC._n_(t[i].cpoint))if(null!==ZC._n_(t[i].label.x)&&null!==ZC._n_(t[i].label.y))t[i].cpoint={x:t[i].label.x,y:t[i].label.y};else{if("point"===t[i].type)a=t[i].coords[0];else if("line"===t[i].type){var r=ZC._i_(t[i].coords.length/2);a=t[i].coords[r]||t[i].coords[r+1]||t[i].coords[r-1]}else a=zingchart.maps.centroid(t[i].coords);t[i].cpoint={x:a[0].toFixed(4)+"lon",y:a[1].toFixed(4)+"lat"},t[i].label.x=a[0].toFixed(4)+"lon",t[i].label.y=a[1].toFixed(4)+"lat"}},zingchart.maps.centroid=function(o){var a,t,e,i,r=0,n=0,_=0;for(e=0,i=o.length;e<i-1;e++)null!==ZC._n_(a=o[e])&&null!==ZC._n_(t=o[e+1])&&(_+=a[0]*t[1]-t[0]*a[1],r+=(a[0]+t[0])*(a[0]*t[1]-t[0]*a[1]),n+=(a[1]+t[1])*(a[0]*t[1]-t[0]*a[1]));return[r/=6*(_*=.5),n/=6*_,_]},zingchart.maps.getMapByGraphIndex=function(o,a){var t;for(var e in zingchart.maps.maps)if((t=zingchart.maps.maps[e])._INFO_.loaderid===o&&t._INFO_.graphinfo.graph.index===a)return t;return null},zingchart.maps.zoomIn=function(A4C){var oMap=zingchart.maps.maps[A4C]||eval("zingchart.maps.data."+A4C);if(oMap&&oMap._INFO_){var fZoomRatio=1.25;oMap._INFO_.zoom*=fZoomRatio,zingchart.maps.setView(oMap._INFO_.loaderid,oMap._INFO_.id,oMap._INFO_.zoom,oMap._INFO_.offsetX,oMap._INFO_.offsetY),ZC.AQ.C0("maps.zoom",zingchart.getLoader(oMap._INFO_.loaderid),oMap._INFO_)}},zingchart.maps.zoomOut=function(A4C){var oMap=zingchart.maps.maps[A4C]||eval("zingchart.maps.data."+A4C);if(oMap&&oMap._INFO_){var H=zingchart.getLoader(oMap._INFO_.loaderid),C=H.AG[oMap._INFO_.graphinfo.graph.index],fZoomRatio=1.25,iCX=C.iX+C.I/2,iCY=C.iY+C.F/2,iMouseX=C.I/2,iMouseY=C.F/2,ED,aCP=[(oMap._INFO_.bbox[0]+oMap._INFO_.bbox[2])/2,(oMap._INFO_.bbox[1]+oMap._INFO_.bbox[3])/2],aLonLat=zingchart.maps.getLonLat(oMap._INFO_.id,[iMouseX,iMouseY]);if(oMap._INFO_.zoom=Math.max(.1,oMap._INFO_.zoom/fZoomRatio),oMap._INFO_.zoom>fZoomRatio)ED=zingchart.maps.getXY(oMap._INFO_.id,aLonLat),oMap._INFO_.offsetX-=ED[0]-iMouseX,oMap._INFO_.offsetY-=ED[1]-iMouseY;else{ED=zingchart.maps.getXY(oMap._INFO_.id,aCP);var OT=ED[0]-iCX,A00=ED[1]-iCY/2;oMap._INFO_.offsetX=OT*((oMap._INFO_.zoom-1)/5),oMap._INFO_.offsetY=A00*((oMap._INFO_.zoom-1)/5)}zingchart.maps.setView(oMap._INFO_.loaderid,oMap._INFO_.id,oMap._INFO_.zoom,oMap._INFO_.offsetX,oMap._INFO_.offsetY),ZC.AQ.C0("maps.zoom",zingchart.getLoader(oMap._INFO_.loaderid),oMap._INFO_)}},zingchart.maps.destroyMap=function(o){delete zingchart.maps.maps[o]},zingchart.maps.setView=function(K,A4C,fZoom,fOffsetX,fOffsetY){for(var H=zingchart.getLoader(K),LH=0,iShapeIndex=0,g=0;g<H.o.graphset.length;g++)if(H.o.graphset[g].shapes)for(var s=0;s<H.o.graphset[g].shapes.length;s++)if("zingchart.maps"===H.o.graphset[g].shapes[s].type&&H.o.graphset[g].shapes[s].options&&(H.o.graphset[g].shapes[s].options.id===A4C||H.o.graphset[g].shapes[s].options.name===A4C)){LH=g,iShapeIndex=s;break}var WO=H.o.graphset[LH].shapes[iShapeIndex];if(WO.options=WO.options||{},WO.options.zoom=Math.abs(ZC._f_(fZoom||"1")),WO.options["offset-x"]=ZC._i_(fOffsetX||"0"),WO.options["offset-y"]=ZC._i_(fOffsetY||"0"),WO.options.style=WO.options.style||{},WO.options.style.label=WO.options.style.label||{},null===ZC._n_(WO.options.style.label.visible_)&&(WO.options.style&&WO.options.style.label?WO.options.style.label.visible_=null===ZC._n_(WO.options.style.label.visible)||WO.options.style.label.visible:(WO.options.style=WO.options.style||{},WO.options.style.label=WO.options.style.label||{},WO.options.style.label.visible_=!0)),ZC._n_(WO.options.style.label["adjust-font-size"])&&ZC._b_(WO.options.style.label["adjust-font-size"])){var oMap=zingchart.maps.maps[A4C]||eval("zingchart.maps.data."+A4C);oMap&&oMap._INFO_&&(oMap._INFO_.baseFontSize||(oMap._INFO_.baseFontSize=11,WO.options.style.label["font-size"]&&(oMap._INFO_.baseFontSize=ZC._i_(WO.options.style.label["font-size"]))),WO.options.style.label["font-size"]=Math.min(19,oMap._INFO_.baseFontSize*oMap._INFO_.zoom*.65))}zingchart.maps.SKIP_LABELS?WO.options.style.label.visible=!1:(WO.options.style.label.visible=null===ZC._n_(WO.options.style.label.visible_)||WO.options.style.label.visible_,WO.options.style.label.visible_=null),H.clearGenerated(),zingchart.exec(K,"setdata",{data:H.o})},zingchart.bind(null,"shape_mouseover",function(o){var a=zingchart.getLoader(o.id),t=ZC.Q.MH(o.ev),e=a.A5C(t[0],t[1]);if(e){var i=zingchart.maps.getMapByGraphIndex(o.id,e.L);i&&i._INFO_["color-scale"]&&zingchart.plugins.colorscale&&zingchart.plugins.colorscale.info&&zingchart.plugins.colorscale.info[o.id+"_"+e.L]&&zingchart.plugins.colorscale.AGM(o.id,{graphid:o.graphid,value:o["data-value"]})}}),zingchart.bind(null,"shape_mouseout",function(o){var a=zingchart.getLoader(o.id),t=ZC.Q.MH(o.ev),e=a.A5C(t[0],t[1]);if(e){var i=zingchart.maps.getMapByGraphIndex(o.id,e.L);i&&i._INFO_["color-scale"]&&zingchart.plugins.colorscale&&zingchart.plugins.colorscale.info&&zingchart.plugins.colorscale.info[o.id+"_"+e.L]&&zingchart.plugins.colorscale.clear(o.id,{graphid:o.graphid})}}),zingchart.bind(null,"shape_dblclick",function(o){var a=zingchart.getLoader(o.id),t=ZC.Q.MH(o.ev),e=a.A5C(t[0],t[1]);if(e){var i=zingchart.maps.getMapByGraphIndex(o.id,e.L);if(i){if(!i._INFO_.zooming)return;zingchart.maps.zoomToItem(i._INFO_.id,o.shapeid)}}}),zingchart.bind(null,"label_click",function(o){var a=zingchart.getLoader(o.id),t=ZC.Q.MH(o.ev),e=a.A5C(t[0],t[1]);if(e){var i=zingchart.maps.getMapByGraphIndex(o.id,e.L);i&&(o.labelid===i._INFO_.id+"_zoom_in"?zingchart.maps.zoomIn(i._INFO_.id):o.labelid===i._INFO_.id+"_zoom_out"&&zingchart.maps.zoomOut(i._INFO_.id))}}),zingchart.bind(null,"mousedown",function(o){if(0===o.ev.button&&("none"===o.target||"shape"===o.target)){var a=zingchart.getLoader(o.id),t=ZC.Q.MH(o.ev);o.ev.preventDefault();var e=a.A5C(t[0],t[1]);if(e){var i=zingchart.maps.getMapByGraphIndex(o.id,e.L);i&&i._INFO_.panning&&(zingchart.maps.MD=!0,zingchart.maps.REFX=o.ev.pageX,zingchart.maps.REFY=o.ev.pageY,zingchart.maps.OFFX=0,zingchart.maps.OFFY=0,zingchart.maps.REFOFFX=i._INFO_.offsetX,zingchart.maps.REFOFFY=i._INFO_.offsetY)}}}),zingchart.bind(null,"mousemove",function(o){if(zingchart.maps.MD){var a=zingchart.getLoader(o.id),t=ZC.Q.MH(o.ev),e=a.A5C(t[0],t[1]);if(e){var i=zingchart.maps.getMapByGraphIndex(o.id,e.L);i&&(zingchart.maps.OFFX=zingchart.maps.REFOFFX+o.ev.pageX-zingchart.maps.REFX,zingchart.maps.OFFY=zingchart.maps.REFOFFY+o.ev.pageY-zingchart.maps.REFY,ZC._a_(zingchart.maps.REFOFFX-zingchart.maps.OFFX)+ZC._a_(zingchart.maps.REFOFFY-zingchart.maps.OFFY)>5&&(zingchart.maps.setView(o.id,i._INFO_.id,i._INFO_.zoom,zingchart.maps.OFFX,zingchart.maps.OFFY),ZC.AQ.C0("maps.zoom",zingchart.getLoader(i._INFO_.loaderid),i._INFO_)))}}}),zingchart.bind(null,"mouseup",function(o){if(zingchart.maps.MD){var a=zingchart.getLoader(o.id),t=ZC.Q.MH(o.ev),e=a.A5C(t[0],t[1]);if(e)zingchart.maps.getMapByGraphIndex(o.id,e.L)&&(zingchart.maps.MD=!1,zingchart.maps.REFOFFX=zingchart.maps.OFFX,zingchart.maps.REFOFFY=zingchart.maps.OFFY)}}),zingchart.bind(null,"mousewheel",function(o){var a=zingchart.getLoader(o.id),t=ZC.Q.MH(o.ev),e=a.A5C(t[0],t[1]);if(e){var i=zingchart.maps.getMapByGraphIndex(o.id,e.L),r=e.iX+e.I/2,n=e.iY+e.F/2;if(i){if(!i._INFO_.scrolling||o.ev.altKey)return;o.ev.preventDefault();var _,s,l=ZC.A5("#"+a.K+"-top"),p=t[0]-l.offset().left-e.iX,f=t[1]-l.offset().top-e.iY;if(o.ev.wheelDelta>0)_=zingchart.maps.getLonLat(i._INFO_.id,[p,f]),i._INFO_.zoom*=1.25,s=zingchart.maps.getXY(i._INFO_.id,_),i._INFO_.offsetX-=s[0]-p,i._INFO_.offsetY-=s[1]-f;else{var c=[(i._INFO_.bbox[0]+i._INFO_.bbox[2])/2,(i._INFO_.bbox[1]+i._INFO_.bbox[3])/2];if(_=zingchart.maps.getLonLat(i._INFO_.id,[p,f]),i._INFO_.zoom=Math.max(1,i._INFO_.zoom/1.25),i._INFO_.zoom>1.25)s=zingchart.maps.getXY(i._INFO_.id,_),i._INFO_.offsetX-=s[0]-p,i._INFO_.offsetY-=s[1]-f;else{var h=(s=zingchart.maps.getXY(i._INFO_.id,c))[0]-r,g=s[1]-n/2;i._INFO_.offsetX=h*((i._INFO_.zoom-1)/5),i._INFO_.offsetY=g*((i._INFO_.zoom-1)/5)}}zingchart.maps.setView(o.id,i._INFO_.id,i._INFO_.zoom,i._INFO_.offsetX,i._INFO_.offsetY),ZC.AQ.C0("maps.zoom",zingchart.getLoader(i._INFO_.loaderid),i._INFO_)}}}),zingchart.maps.viewAll=function(A4C){var oMap=zingchart.maps.maps[A4C];(oMap||(oMap=eval("zingchart.maps.data."+A4C),oMap))&&zingchart.maps.zoomTo(A4C,{zoom:1,offsetX:0,offsetY:0})},zingchart.maps.zoomToItem=function(A4C,AAO){var oMap,BR;if(oMap=zingchart.maps.maps[A4C]){if(!(BR=oMap[AAO]))return}else if(oMap=eval("zingchart.maps.data."+A4C),!oMap||!(BR=oMap[AAO]))return;if(oMap._INFO_){var fMapW=oMap._INFO_.bbox[2]-oMap._INFO_.bbox[0],fMapH=oMap._INFO_.bbox[1]-oMap._INFO_.bbox[3],fMapCX=(oMap._INFO_.bbox[2]+oMap._INFO_.bbox[0])/2,fMapCY=(oMap._INFO_.bbox[1]+oMap._INFO_.bbox[3])/2,fItemW=BR.bbox[2]-BR.bbox[0],fItemH=BR.bbox[1]-BR.bbox[3],fItemCX=(BR.bbox[2]+BR.bbox[0])/2,fItemCY=(BR.bbox[1]+BR.bbox[3])/2,fRatio=Math.min(fMapW/fItemW,fMapH/fItemH),fZoom=fRatio,fFactorW=oMap._INFO_.width/fMapW,fFactorH=oMap._INFO_.height/fMapH,fDiffX=fMapCX-fItemCX,fDiffY=fItemCY-fMapCY,fOffX=fRatio*(fDiffX*fFactorW),fOffY=fRatio*(fDiffY*fFactorH);zingchart.maps.zoomTo(A4C,{zoom:fZoom,offsetX:fOffX,offsetY:fOffY})}},zingchart.maps.zoomTo=function(A4C,BB){var oMap=zingchart.maps.maps[A4C]||eval("zingchart.maps.data."+A4C);if(oMap){var MY={zoom:oMap._INFO_.zoom,offsetX:oMap._INFO_.offsetX,offsetY:oMap._INFO_.offsetY};zingchart.exec(oMap._INFO_.loaderid,"setobjectsmode",{mode:"flat"}),zingchart.maps.SKIP_LABELS=!0;var Y=0,RD=10,iZoomTick=window.setInterval(function(){var o="regularEaseOut",a=ZC.E6[o](Y,MY.zoom,BB.zoom-MY.zoom,RD),t=ZC.E6[o](Y,MY.offsetX,BB.offsetX-MY.offsetX,RD),e=ZC.E6[o](Y,MY.offsetY,BB.offsetY-MY.offsetY,RD);Y===RD&&(zingchart.maps.SKIP_LABELS=!1,zingchart.exec(oMap._INFO_.loaderid,"setobjectsmode",{mode:"normal"})),zingchart.maps.setView(oMap._INFO_.loaderid,A4C,a,t,e),++Y>RD&&(window.clearInterval(iZoomTick),oMap._INFO_.zoom=BB.fZoom,oMap._INFO_.offsetX=BB.fOffX,oMap._INFO_.offsetY=BB.fOffY,ZC.AQ.C0("maps.zoom",zingchart.getLoader(oMap._INFO_.loaderid),oMap._INFO_))},1)}},zingchart.maps.getInfo=function(A4C){var oMap=zingchart.maps.maps[A4C];return oMap||(oMap=eval("zingchart.maps.data."+A4C)),oMap},zingchart.maps.getItems=function(A4C){var oMap=zingchart.maps.maps[A4C];if(oMap||(oMap=eval("zingchart.maps.data."+A4C)),oMap){var B6=[];for(var sItem in oMap)"_DEFAULTS_"!==sItem&&"_INFO_"!==sItem&&"_GROUPS_"!==sItem&&"_RULES_"!==sItem&&(oMap._INFO_?-1!==ZC.AV(oMap._INFO_.items,sItem)&&B6.push(sItem):B6.push(sItem));return B6}return null},zingchart.maps.getItemInfo=function(A4C,AAO){var oMap,BR;if(oMap=zingchart.maps.maps[A4C]){if(BR=oMap[AAO])return BR}else if(oMap=eval("zingchart.maps.data."+A4C),oMap&&(BR=oMap[AAO]))return BR;return null},zingchart.maps.getXY=function(o,a,t){var e;if(t=t||"",e=zingchart.maps.maps[o]){var i={};return ZC._cp_(e._INFO_,i),""!==t&&ZC._cp_({map:o,item:t},i),zingchart.maps.lonlat2xy(e._INFO_.x,e._INFO_.y,e._INFO_.width,e._INFO_.height,a,e._INFO_.bbox,i)}return null},zingchart.maps.getLonLat=function(o,a){var t;return(t=zingchart.maps.maps[o])?zingchart.maps.xy2lonlat(t._INFO_.x,t._INFO_.y,t._INFO_.width,t._INFO_.height,a,t._INFO_.bbox,t._INFO_):null},zingchart.maps.registerMap=function(o,a){ZC.WG.push("maps-"+o),zingchart.maps[o]||(zingchart.maps[o]={}),zingchart.maps.data[o]||(zingchart.maps.data[o]=a),zingchart.maps.data[o]._GROUPS_={},zingchart.maps.data[o]._DEFAULTS_=zingchart.maps._DEFAULTS_,zingchart.maps[o]=function(a,t,e){return zingchart.maps.convert({loader:this,loaderdata:t||{},graphid:"undefined"==typeof a.graphid?0:a.graphid,data:e,id:a.id||o,x:"undefined"==typeof a.x?0:a.x,y:"undefined"==typeof a.y?0:a.y,width:"undefined"==typeof a.width?1:a.width,height:"undefined"==typeof a.height?1:a.height,level:"undefined"==typeof a.level?1:a.level,groups:a.groups||[],items:a.items||[],ignore:a.ignore||[],bbox:a.bbox||null,map:zingchart.maps.data[o]})}},zingchart.maps.lonlat2xy=function(iX,iY,I,F,aLonLat,aBBox,BJ,bTranslate){void 0===bTranslate&&(bTranslate=!1),BJ=BJ||{};var iZoom=Math.abs(ZC._f_(BJ.zoom||"1")),BK=ZC._i_(BJ.offsetX||"0"),BI=ZC._i_(BJ.offsetY||"0"),fLonRatio=I/ZC._a_(aBBox[2]-aBBox[0]),fLatRatio=F/ZC._a_(aBBox[3]-aBBox[1]);fLonRatio*=iZoom,fLatRatio*=iZoom,iX-=I*(iZoom-1)/2,iY+=F*(iZoom-1)/2,iX+=BK,iY+=BI;var iPx=iX+(ZC._f_(aLonLat[0])-ZC.CY(aBBox[0],aBBox[2]))*fLonRatio,iPy=iY+F-(ZC._f_(aLonLat[1])-ZC.CY(aBBox[1],aBBox[3]))*fLatRatio,oMap,BR;if(BJ&&BJ.map&&(oMap=zingchart.maps.maps[BJ.map],oMap||(oMap=eval("zingchart.maps.data."+BJ.map)),oMap)){if((BR=oMap[BJ.item])&&(iPx+=BR.transform.offsetLon*fLonRatio,iPy-=BR.transform.offsetLat*fLatRatio,1!==BR.transform.scale)){var oItemX=iX+(ZC.CY(BR.bbox[0],BR.bbox[2])-ZC.CY(aBBox[0],aBBox[2]))*fLonRatio,oItemY=iY+F-(ZC.CY(BR.bbox[1],BR.bbox[3])-ZC.CY(aBBox[1],aBBox[3]))*fLatRatio,oItemHeight=ZC._a_(BR.bbox[3]-BR.bbox[1])*fLatRatio;iPx=oItemX+(iPx-oItemX)*BR.transform.scale,iPy=oItemY-oItemHeight+(iPy-(oItemY-oItemHeight))*BR.transform.scale}bTranslate&&(iPx+=oMap._INFO_.graphinfo.graph.x,iPy+=oMap._INFO_.graphinfo.graph.y)}return[iPx,iPy]},zingchart.maps.xy2lonlat=function(o,a,t,e,i,r,n){n=n||{};var _=Math.abs(ZC._f_(n.zoom||"1")),s=ZC._i_(n.offsetX||"0"),l=ZC._i_(n.offsetY||"0");o-=t*(_-1)/2,a-=e*(_-1)/2;var p=t/ZC._a_(r[2]-r[0]),f=e/ZC._a_(r[3]-r[1]);return p*=_,f*=_,[r[0]+(i[0]-o-s)/p,r[1]+(a-i[1]+l)/f]},zingchart.maps.mappoints=function(o,a,t,e,i,r,n,_,s){var l,p,f,c,h,g,d,m=[],C=null;g=t/ZC._a_(i[2]-i[0]),d=e/ZC._a_(i[3]-i[1]),_=_||{};var b=Math.abs(ZC._f_(_.zoom||"1")),O=ZC._i_(_.offsetX||"0");g*=b,d*=b,o-=t*(b-1)/2,a-=e*(b-1)/2,a+=ZC._i_(_.offsetY||"0"),f=(o+=O)+(ZC.CY(r.bbox[0],r.bbox[2])-ZC.CY(i[0],i[2]))*g,c=a+e*b-(ZC.CY(r.bbox[1],r.bbox[3])-ZC.CY(i[1],i[3]))*d,ZC._a_(r.bbox[2]-r.bbox[0]),h=ZC._a_(r.bbox[3]-r.bbox[1])*d;for(var z=0,F=r.coords.length;z<F;z++)if(null===ZC._n_(r.coords[z]))m.push(null);else{var u=r.transform.offsetLon,Z=r.transform.offsetLat,I=r.transform.scale;if("__"===r.id&&null!==ZC._n_(n))for(var x=0,M=n.length;x<M;x++)if(r.coords[z][0]>=n[x].bbox[0]-n[x].offsetLon&&r.coords[z][0]<=n[x].bbox[2]-n[x].offsetLon&&r.coords[z][1]>=n[x].bbox[3]-n[x].offsetLat&&r.coords[z][1]<=n[x].bbox[1]-n[x].offsetLat){u=n[x].offsetLon,Z=n[x].offsetLat,I=n[x].scale,C=n[x].bbox;break}if(l=o+(r.coords[z][0]-ZC.CY(i[0],i[2]))*g+u*g,p=a+(ZC.BQ(i[1],i[3])-r.coords[z][1])*d-Z*d,1!==I)if("__"===r.id){var v=o+(ZC.CY(C[0],C[2])-ZC.CY(i[0],i[2]))*g,N=a+e-(ZC.CY(C[1],C[3])-ZC.CY(i[1],i[3]))*d,y=ZC._a_(C[3]-C[1])*d;l=v+(l-v)*I,p=N-y+(p-(N-y))*I}else l=f+(l-f)*I,p=c-h+(p-(c-h))*I;null!==ZC._n_(s)?m.push([parseInt(l,10)-ZC.AP.E4,parseInt(p,10)-ZC.AP.E5,parseInt(s,10)]):m.push([parseInt(l,10),parseInt(p,10)])}return m},zingchart.maps.translate=function(o,a,t,e,i){var r=t/ZC._a_(i[2]-i[0]),n=e/ZC._a_(i[3]-i[1]);return"x"===o?a*r:a*n},zingchart.maps.convert=function(o){var a=o.data.options||{};ZC._todash_(a);var t=o.id,e=o.groups,i=o.items,r=o.ignore,n=o.bbox,_=o.level,s=!1;"01"===_&&(_=1,s=!0);var l=Math.abs(ZC._f_(a.zoom||"1")),p=ZC._i_(a["offset-x"]||"0"),f=ZC._i_(a["offset-y"]||"0"),c=!0,h=!0,g=!0;null!==ZC._n_(a.zooming)&&(c=ZC._b_(a.zooming)),null!==ZC._n_(a.panning)&&(h=ZC._b_(a.panning)),null!==ZC._n_(a.scrolling)&&(g=ZC._b_(a.scrolling));var d,m=o.loader.A5I(o.loaderdata,o.graphid);o.loader.MC&&(d=o.loader.MC.theme||"light"),o.loader.o&&(d=o.loader.o.theme||"light"),"light"===d?o.map._DEFAULTS_=zingchart.maps.LIGHT:"dark"===d&&(o.map._DEFAULTS_=zingchart.maps.DARK),ZC.AP&&(ZC.AP.A4E=2.5*ZC.BQ(m.graph.width,m.graph.height),ZC.AP.E4=m.plotarea.x+m.plotarea.width/2,ZC.AP.E5=m.plotarea.y+m.plotarea.height/2);var C=ZC.IL(o.x);C=ZC._i_(C>0&&C<1?C*m.plotarea.width:C),C+=m.plotarea.x;var b=ZC.IL(o.y);b=ZC._i_(C>0&&b<1?b*m.plotarea.height:b),b+=m.plotarea.y;var O=ZC.IL(o.width);O=ZC._i_(O<=1?O*m.plotarea.width:O);var z=ZC.IL(o.height);z=ZC._i_(z<=1?z*m.plotarea.height:z);var F,u,Z,I,x={};if(ZC._cp_(o.map,x),0===O||0===z||!x)return[];for(F in x)"_DEFAULTS_"!==F&&"_INFO_"!==F&&"_GROUPS_"!==F&&"_RULES_"!==F&&(null===ZC._n_(x[F].transform)&&(x[F].transform={offsetLon:0,offsetLat:0,scale:1}),null===ZC._n_(x[F].connector)&&(x[F].connector={points:[],anchor:""}));for(F in x)if("_DEFAULTS_"!==F&&"_INFO_"!==F&&"_GROUPS_"!==F&&"_RULES_"!==F&&!(0===_&&"__"!==F||0!==_&&"__"===F&&!s)){I=[ZC.MAX,-ZC.MAX,-ZC.MAX,ZC.MAX];var M=x[F].transform.offsetLon,v=x[F].transform.offsetLat,N=x[F].transform.scale;for(u=0;u<x[F].coords.length;u++)if(null!==ZC._n_(x[F].coords[u])){if("__"===F&&null!==ZC._n_(x._RULES_))for(var y=0,L=x._RULES_.length;y<L;y++)if(x[F].coords[u][0]>=x._RULES_[y].bbox[0]-x._RULES_[y].offsetLon&&x[F].coords[u][0]<=x._RULES_[y].bbox[2]-x._RULES_[y].offsetLon&&x[F].coords[u][1]>=x._RULES_[y].bbox[3]-x._RULES_[y].offsetLat&&x[F].coords[u][1]<=x._RULES_[y].bbox[1]-x._RULES_[y].offsetLat){M=x._RULES_[y].offsetLon,v=x._RULES_[y].offsetLat,N=x._RULES_[y].scale;break}I[0]=ZC.CY(I[0],x[F].coords[u][0]+M),I[1]=ZC.BQ(I[1],x[F].coords[u][1]+v),I[2]=ZC.BQ(I[2],x[F].coords[u][0]+M),I[3]=ZC.CY(I[3],x[F].coords[u][1]+v)}1!==N&&"__"!==F&&(I[2]=I[0]+(I[2]-I[0])*N,I[3]=I[1]-(I[1]-I[3])*N),x[F].id=F,x[F].bbox=I}I=[ZC.MAX,-ZC.MAX,-ZC.MAX,ZC.MAX];var A=[];if(e.length>0&&x._GROUPS_){for(u=0,Z=e.length;u<Z;u++)x._GROUPS_[e[u]]&&(A=A.concat(x._GROUPS_[e[u]]));for(u=A.length-1;u>=0;u--)if(-1===A[u].indexOf("@"))-1!==ZC.AV(r,A[u])&&A.splice(u,1);else{var R=A[u].split("@");-1!==ZC.AV(r,R[0])&&A.splice(u,1)}}if(i.length>0)for(u=0,Z=i.length;u<Z;u++)-1===ZC.AV(r,i[u])&&A.push(i[u]);else for(F in x)if(x.hasOwnProperty(F)){if("_DEFAULTS_"===F||"_INFO_"===F||"_GROUPS_"===F||"_RULES_"===F)continue;if(0===_&&"__"!==F||0!==_&&"__"===F&&!s)continue;0===e.length&&-1===ZC.AV(r,F)&&A.push(F)}for(u=A.length-1;u>=0;u--)if(A[u]&&-1!==A[u].indexOf("@")){var B=A[u].split("@");-1!==ZC.AV(A,B[0])&&A.splice(u,1)}if(null!==ZC._n_(n)&&4===n.length)I=n;else for(u=0,Z=A.length;u<Z;u++)x[F=A[u]]&&(I[0]=ZC.CY(I[0],x[F].bbox[0]),I[1]=ZC.BQ(I[1],x[F].bbox[1]),I[2]=ZC.BQ(I[2],x[F].bbox[2]),I[3]=ZC.CY(I[3],x[F].bbox[3]));var Y,E=ZC._a_(I[2]-I[0])/20,S=ZC._a_(I[3]-I[1])/20;for(F in I[0]-=E,I[1]+=S,I[2]+=E,I[3]-=S,x)"_DEFAULTS_"!==F&&"_INFO_"!==F&&"_GROUPS_"!==F&&"_RULES_"!==F&&(0===_&&"__"!==F||0!==_&&"__"===F&&!s||(E=ZC.CY(1,ZC._a_(x[F].bbox[2]-x[F].bbox[0])/8),S=ZC.CY(1,ZC._a_(x[F].bbox[3]-x[F].bbox[1])/8),x[F].bbox[0]-=E,x[F].bbox[1]+=S,x[F].bbox[2]+=E,x[F].bbox[3]-=S));var X=1+.8*ZC._a_((I[3]+I[1])/180),w=O/ZC._a_(I[2]-I[0]),D=z/ZC._a_(I[3]-I[1]);if(!a.hasOwnProperty("scale")||ZC._b_(a.scale)){if((Y=X*w/D)>1.05){var U=ZC._i_(O/Y);C+=(O-U)/2,O=U}else if(Y<.95){var T=ZC._i_(z*Y);b+=(z-T)/2,z=T}w=O/ZC._a_(I[2]-I[0]),D=z/ZC._a_(I[3]-I[1])}for(var P in zingchart.maps.maps)if(t!==P){var W=zingchart.maps.maps[P];W&&W._INFO_&&o.loader.K===W._INFO_.loaderid&&W._INFO_.graphinfo&&W._INFO_.graphinfo.graph&&W._INFO_.graphinfo.graph.index===m.graph.index&&(W._INFO_.graphinfo.graph.index=-1)}x._INFO_={loaderid:o.loader.K,x:C,y:b,zoom:l,zooming:c,panning:h,scrolling:g,offsetX:p,offsetY:f,width:O,height:z,id:t,bbox:I,groups:e,items:A,ignore:r,graphinfo:m},3*A.length>zingchart.DEV.MAXPOOLSIZE&&(zingchart.DEV.MAXPOOLSIZE+=3*A.length),zingchart.maps.maps[t]=x;var k,H={},G={};if(k=a.choropleth){var Q,V=ZC.MAX,J=-ZC.MAX,K="";for(u=0,Z=A.length;u<Z;u++)F=A[u],null!==ZC._n_(a.style)&&null!==ZC._n_(a.style.items)&&null!==ZC._n_(a.style.items[F])&&null!==ZC._n_(a.style.items[F]["data-value"])&&(Q=ZC._f_(a.style.items[F]["data-value"]),V=Math.min(V,Q),J=Math.max(J,Q),G[F]={"data-value":Q});var j=k.aspect||"gradient",q=k.progression||"lin",$=k.intervals||4,oo=k.color||"#336699",ao=k["max-percent"]||50,to=k.effect||"lighten",eo=ZC._b_(k.mirrored),io=ao/(J-V);"log"===q&&(io=ao/(ZC.FT(J,10)-ZC.FT(V,10)));var ro=ao/$,no=k.labels||[],_o=k.steps||[],so=k.colors||[];if("intervals"===j){if(_o.length)$=_o.length-1;else if("lin"===q){var lo=(J-V)/$;for(u=0;u<$;u+=1)_o.push(V+u*lo);_o.push(J)}else{var po=Math.floor(ZC.FT(V,10)),fo=Math.ceil(ZC.FT(J,10));for(po===fo&&fo++,$=Math.max(1,fo-po-1),u=po;u<=fo;u+=1)u===po&&po<1?_o.push(0):_o.push(Math.pow(10,u));ro=ao/$}if(!so.length)for(u=0;u<=$;u+=1)so.push("lighten"===to?ZC.AQ.R0(oo,u*ro):ZC.AQ.JO(oo,u*ro))}for(u=0,Z=A.length;u<Z;u++)if(G[F=A[u]]){if(Q=G[F]["data-value"],"gradient"===j){var co=ZC._i_((Q-V)*io);"log"===q&&(co=ZC._i_((ZC.FT(Q,10)-ZC.FT(V,10))*io)),eo&&(co=ao-co),K="lighten"===to?ZC.AQ.R0(oo,co):ZC.AQ.JO(oo,co)}else if("intervals"===j){for(var ho=0;ho<_o.length-1;ho++)if(Q>=_o[ho]&&Q<_o[ho+1]){K=so[ho];break}""===K&&Q===J&&(K=so[so.length-1])}G[F]={"data-color":K,"background-color":K,"hover-state":{"background-color":K}},k["override-tooltip"]&&(G[F].tooltip={"background-color":ZC.AQ.JO(K,15)})}x._INFO_.choropleth={aspect:j,progression:q,intervals:$,color:oo,maxPercent:ao,effect:to,minValue:V,maxValue:J,steps:_o,colors:so,labels:no,mirrored:eo}}for(a["color-scale"]&&(x._INFO_["color-scale"]=!0),u=0,Z=A.length;u<Z;u++)if(x[F=A[u]]){var go=x[F].type||"poly",mo=0;"line"!==go&&"point"!==go||(mo+=10),x[F].sort&&(x[F].sort&&(x[F].sort=.5),mo+=x[F].sort);var Co,bo,Oo,zo=null;if(null!==ZC._n_(a.style)&&(a.style["3d"]&&(zo=1),null!==ZC._n_(a.style.z)&&(zo=a.style.z),null!==ZC._n_(a.style.items)&&null!==ZC._n_(a.style.items[F])&&null!==ZC._n_(a.style.items[F].z)&&(zo=a.style.items[F].z)),"poly"===go||"line"===go)H[F]={type:go,id:F,points:zingchart.maps.mappoints(C,b,O,z,I,x[F],x._RULES_,x._INFO_,zo),label:{map:t},"z-sort":mo,"z-index":mo,tooltip:{},connector:{},"map-item":!0,generated:!0};else if("point"===go){var Fo=zingchart.maps.mappoints(C,b,O,z,I,x[F],x._RULES_,x._INFO_,zo);H[F]={type:"circle",id:F,size:5,x:Fo[0][0],y:Fo[0][1],label:{map:t},"z-sort":mo,"z-index":mo,tooltip:{},connector:{},"map-item":!0,generated:!0}}if("poly"===go||"line"===go){var uo=zingchart.maps.centroid(H[F].points);bo=uo[0],Oo=uo[1],Co=uo[2]}x._DEFAULTS_&&(ZC._cp_(x._DEFAULTS_._COMMON_,H[F]),"poly"===go?ZC._cp_(x._DEFAULTS_._POLY_,H[F]):"line"===go?ZC._cp_(x._DEFAULTS_._LINE_,H[F]):"point"===go&&ZC._cp_(x._DEFAULTS_._POINT_,H[F])),x[F].style&&ZC._cp_(x[F].style,H[F]),ZC._todash_(H[F]);var Zo=x[F].label.text,Io=x[F].tooltip.text;ZC._cp_(a.style,H[F],null,null,null,["items"]);var xo=x[F].tooltip.text||"",Mo=H[F].tooltip.text||"";ZC._cp_(x[F].tooltip,H[F].tooltip);var vo=H[F].label.text;ZC._cp_(x[F].label,H[F].label),vo&&(H[F].label.text=vo),1===zingchart.maps.CONNECTORS&&ZC._cp_(x[F].connector,H[F].connector),"poly"!==go&&"line"!==go||"auto"===H[F].label.visible&&Co<400&&(0===zingchart.maps.CONNECTORS||0===H[F].connector.points.length)&&(H[F].label.visible=!1),G[F]&&ZC._cp_(G[F],H[F]);var No=!1;for(var yo in null!==ZC._n_(a.style)&&null!==ZC._n_(a.style.items)&&(ZC._cp_(a.style.items[F],H[F]),a.style.items[F]&&a.style.items[F].tooltip&&a.style.items[F].tooltip.text&&(xo=a.style.items[F].tooltip.text,-1===Mo.indexOf("%text")&&(No=!0))),H[F].tooltip.text=""===Mo||No?xo:Mo.replace("%text",xo),H[F])"data-"===yo.substring(0,5)&&(H[F].tooltip.text=H[F].tooltip.text.replace("%"+yo,H[F][yo]),H[F].label.text=H[F].label.text.replace("%"+yo,H[F][yo]));if(H[F].tooltip.text=H[F].tooltip.text.replace("%short-text",Zo).replace("%long-text",Io),H[F].label.text=H[F].label.text.replace("%short-text",Zo).replace("%long-text",Io),zingchart.maps.CONNECTORS&&null!==ZC._n_(H[F].connector.points)){for(var Lo=0,Ao=H[F].connector.points.length;Lo<Ao;Lo++)H[F].connector.points[Lo]=zingchart.maps.lonlat2xy(C,b,O,z,H[F].connector.points[Lo],I,{zoom:l,offsetX:p,offsetY:f});H[F].connector.points=ZC.AQ.A5L(H[F].connector.points,m.graph.x,m.graph.y)}null===ZC._n_(H[F].label.x)&&(H[F].label.x=bo+m.graph.x),null===ZC._n_(H[F].label.y)&&(H[F].label.y=Oo+m.graph.y)}var Ro=m.graph.width,Bo=m.graph.height;a.style=a.style||{};var Yo=a.style.controls||{};if(null===ZC._n_(Yo.visible)||ZC._b_(Yo.visible)){var Eo=ZC._i_(Yo.x||"-1"),So=ZC._i_(Yo.y||"-1"),Xo=Yo.placement||"";""!==Xo||-1!==Eo&&-1!==So||(Xo="tl");switch(Xo){case"tl":Eo=10,So=10;break;case"tr":Eo=0+Ro-25-10,So=10;break;case"bl":Eo=10,So=0+Bo-50-10;break;case"br":Eo=0+Ro-25-10,So=0+Bo-50-10}H._ZOOM_IN_={objtype:"label",id:x._INFO_.id+"_zoom_in",generated:!0,x:Eo,y:So,width:25,height:25,"border-width":1,"border-color":"#999","background-color":"#eee","border-radius":"2 2 0 0","font-size":17,text:"+",tooltip:{text:"Zoom In"}},ZC._cp_(zingchart.maps._DEFAULTS_._COMMON_.tooltip,H._ZOOM_IN_.tooltip),ZC._cp_(Yo["zoom-in"],H._ZOOM_IN_),H._ZOOM_OUT_={objtype:"label",id:x._INFO_.id+"_zoom_out",generated:!0,x:Eo,y:So+25-1,width:25,height:25,"border-width":1,"border-color":"#999","background-color":"#eee","border-radius":"0 0 2 2","font-size":17,text:"-",tooltip:{text:"Zoom Out"}},ZC._cp_(zingchart.maps._DEFAULTS_._COMMON_.tooltip,H._ZOOM_OUT_.tooltip),ZC._cp_(Yo["zoom-out"],H._ZOOM_OUT_)}return Y=X*w/D,!zingchart.maps.FORCESCALE&&(Y>1.05||Y<.95)&&(H._ALERT_={type:"circle",id:"_ALERT_",x:C+10,y:b+10,size:8,"background-color":"#c00",label:{color:"#fff",bold:!0,text:"!"},tooltip:{text:"Scaling Error<br />Use "+O+"/"+ZC._i_(z*Y)+" or "+ZC._i_(O/Y)+"/"+z,"background-color":"#c00","border-radius":8,color:"#fff"}}),H},zingchart.maps.exportMap=function(o,a){var t=['ZC.WG.push("maps-{{exportid}}");',"","(function() {","","if (!zingchart.maps.{{exportid}}) {","zingchart.maps.{{exportid}} = {};","};","","if (!zingchart.maps.data.{{exportid}}) {","zingchart.maps.data.{{exportid}} = {};","};","","var _COORDS_ = {","{{coords}}","};","","zingchart.maps.data.{{exportid}} = {","_GROUPS_:{","{{groups}}","},","_DEFAULTS_:zingchart.maps._DEFAULTS_,","{{items}}","};","",'zingchart.maps.upgrade("{{exportid}}");',"","})();","","zingchart.maps.{{exportid}} = function(p, ld, d) {","return zingchart.maps.convert({","loader:this,","loaderdata:ld || {},",'graphid:((typeof(p.graphid) == "undefined")?0:p.graphid),',"data:d,",'id:p.id || "{{exportid}}",','x:((typeof(p.x) == "undefined")?0:p.x),','y:((typeof(p.y) == "undefined")?0:p.y),','width:((typeof(p.width) == "undefined")?1:p.width),','height:((typeof(p.height) == "undefined")?1:p.height),','level:((typeof(p.level) == "undefined")?1:p.level),',"groups:p.groups || [],","items:p.items || [],","ignore:p.ignore || [],","bbox:p.bbox || null,","map:zingchart.maps.data.{{exportid}}","});","}"].join("\n"),e=['"{{id}}":{','coords:_COORDS_["{{id}}"],',"tooltip:{",'text:"{{text}}"',"},","cpoint:{",'x:"{{x}}", y:"{{y}}"',"},","label:{",'text:"{{id}}", x:"{{x}}", y:"{{y}}"',"}","}"].join("\n"),i=t;i=i.replace(/\{\{exportid\}\}/gi,a);var r=[],n=[],_=[],s=zingchart.maps.data[o];for(var l in s._GROUPS_){var p='"'+l+'":["'+s._GROUPS_[l].join('","')+'"]';n.push(p)}for(var f in s)if("_DEFAULTS_"!==f&&"_GROUPS_"!==f){var c=e;c=(c=(c=(c=c.replace(/\{\{id\}\}/g,f)).replace(/\{\{text\}\}/g,s[f].tooltip.text)).replace(/\{\{x\}\}/g,s[f].cpoint.x)).replace(/\{\{y\}\}/g,s[f].cpoint.y),_.push(c);for(var h='"'+f+'":',g=[],d=0;d<s[f].coords.length;d++)s[f].coords[d]?g.push([s[f].coords[d][0].toFixed(3),s[f].coords[d][1].toFixed(3)]):g.push(null);h+=JSON.stringify(g).replace(/\"/g,""),r.push(h)}return i=(i=(i=i.replace(/\{\{coords\}\}/gi,r.join(",\n"))).replace(/\{\{groups\}\}/gi,n.join(",\n"))).replace(/\{\{items\}\}/gi,_.join(",\n"))};