zingchart
Version:
Our JavaScript charting library is a commercial product. But the full branded version is free to try, forever.
8 lines (7 loc) • 29.8 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(a){var o,t=zingchart.maps.data,e=a.split(".");for(var i in 1===e.length?t=t[a]: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)o=t[i].coords[0];else if("line"===t[i].type){var r=ZC._i_(t[i].coords.length/2);o=t[i].coords[r]||t[i].coords[r+1]||t[i].coords[r-1]}else o=zingchart.maps.centroid(t[i].coords);t[i].cpoint={x:o[0].toFixed(4)+"lon",y:o[1].toFixed(4)+"lat"},t[i].label.x=o[0].toFixed(4)+"lon",t[i].label.y=o[1].toFixed(4)+"lat"}},zingchart.maps.centroid=function(a){var o,t,e,i,r=0,n=0,_=0;for(e=0,i=a.length;e<i-1;e++)null!==ZC._n_(o=a[e])&&null!==ZC._n_(t=a[e+1])&&(_+=o[0]*t[1]-t[0]*o[1],r+=(o[0]+t[0])*(o[0]*t[1]-t[0]*o[1]),n+=(o[1]+t[1])*(o[0]*t[1]-t[0]*o[1]));return[r/=6*(_*=.5),n/=6*_,_]},zingchart.maps.getMapByGraphIndex=function(a,o){var t;for(var e in zingchart.maps.maps)if((t=zingchart.maps.maps[e])._INFO_.loaderid===a&&t._INFO_.graphinfo.graph.index===o)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(a){delete zingchart.maps.maps[a]},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(a){var o=zingchart.getLoader(a.id),t=ZC.Q.MH(a.ev),e=o.A5C(t[0],t[1]);if(e){var i=zingchart.maps.getMapByGraphIndex(a.id,e.L);i&&i._INFO_["color-scale"]&&zingchart.plugins.colorscale&&zingchart.plugins.colorscale.info&&zingchart.plugins.colorscale.info[a.id+"_"+e.L]&&zingchart.plugins.colorscale.AGM(a.id,{graphid:a.graphid,value:a["data-value"]})}}),zingchart.bind(null,"shape_mouseout",function(a){var o=zingchart.getLoader(a.id),t=ZC.Q.MH(a.ev),e=o.A5C(t[0],t[1]);if(e){var i=zingchart.maps.getMapByGraphIndex(a.id,e.L);i&&i._INFO_["color-scale"]&&zingchart.plugins.colorscale&&zingchart.plugins.colorscale.info&&zingchart.plugins.colorscale.info[a.id+"_"+e.L]&&zingchart.plugins.colorscale.clear(a.id,{graphid:a.graphid})}}),zingchart.bind(null,"shape_dblclick",function(a){var o=zingchart.getLoader(a.id),t=ZC.Q.MH(a.ev),e=o.A5C(t[0],t[1]);if(e){var i=zingchart.maps.getMapByGraphIndex(a.id,e.L);if(i){if(!i._INFO_.zooming)return;zingchart.maps.zoomToItem(i._INFO_.id,a.shapeid)}}}),zingchart.bind(null,"label_click",function(a){var o=zingchart.getLoader(a.id),t=ZC.Q.MH(a.ev),e=o.A5C(t[0],t[1]);if(e){var i=zingchart.maps.getMapByGraphIndex(a.id,e.L);i&&(a.labelid===i._INFO_.id+"_zoom_in"?zingchart.maps.zoomIn(i._INFO_.id):a.labelid===i._INFO_.id+"_zoom_out"&&zingchart.maps.zoomOut(i._INFO_.id))}}),zingchart.bind(null,"mousedown",function(a){if(0===a.ev.button&&("none"===a.target||"shape"===a.target)){var o=zingchart.getLoader(a.id),t=ZC.Q.MH(a.ev);a.ev.preventDefault();var e=o.A5C(t[0],t[1]);if(e){var i=zingchart.maps.getMapByGraphIndex(a.id,e.L);i&&i._INFO_.panning&&(zingchart.maps.MD=!0,zingchart.maps.REFX=a.ev.pageX,zingchart.maps.REFY=a.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(a){if(zingchart.maps.MD){var o=zingchart.getLoader(a.id),t=ZC.Q.MH(a.ev),e=o.A5C(t[0],t[1]);if(e){var i=zingchart.maps.getMapByGraphIndex(a.id,e.L);i&&(zingchart.maps.OFFX=zingchart.maps.REFOFFX+a.ev.pageX-zingchart.maps.REFX,zingchart.maps.OFFY=zingchart.maps.REFOFFY+a.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(a.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(a){if(zingchart.maps.MD){var o=zingchart.getLoader(a.id),t=ZC.Q.MH(a.ev),e=o.A5C(t[0],t[1]);if(e)zingchart.maps.getMapByGraphIndex(a.id,e.L)&&(zingchart.maps.MD=!1,zingchart.maps.REFOFFX=zingchart.maps.OFFX,zingchart.maps.REFOFFY=zingchart.maps.OFFY)}}),zingchart.bind(null,"mousewheel",function(a){var o=zingchart.getLoader(a.id),t=ZC.Q.MH(a.ev),e=o.A5C(t[0],t[1]);if(e){var i=zingchart.maps.getMapByGraphIndex(a.id,e.L),r=e.iX+e.I/2,n=e.iY+e.F/2;if(i){if(!i._INFO_.scrolling||a.ev.altKey)return;a.ev.preventDefault();var _,s,l=ZC.A5("#"+o.K+"-top"),p=t[0]-l.offset().left-e.iX,f=t[1]-l.offset().top-e.iY;if(a.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(a.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 a="regularEaseOut",o=ZC.E6[a](Y,MY.zoom,BB.zoom-MY.zoom,RD),t=ZC.E6[a](Y,MY.offsetX,BB.offsetX-MY.offsetX,RD),e=ZC.E6[a](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,o,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(a,o,t){var e;if(t=t||"",e=zingchart.maps.maps[a]){var i={};return ZC._cp_(e._INFO_,i),""!==t&&ZC._cp_({map:a,item:t},i),zingchart.maps.lonlat2xy(e._INFO_.x,e._INFO_.y,e._INFO_.width,e._INFO_.height,o,e._INFO_.bbox,i)}return null},zingchart.maps.getLonLat=function(a,o){var t;return(t=zingchart.maps.maps[a])?zingchart.maps.xy2lonlat(t._INFO_.x,t._INFO_.y,t._INFO_.width,t._INFO_.height,o,t._INFO_.bbox,t._INFO_):null},zingchart.maps.registerMap=function(a,o){ZC.WG.push("maps-"+a),zingchart.maps[a]||(zingchart.maps[a]={}),zingchart.maps.data[a]||(zingchart.maps.data[a]=o),zingchart.maps.data[a]._GROUPS_={},zingchart.maps.data[a]._DEFAULTS_=zingchart.maps._DEFAULTS_,zingchart.maps[a]=function(o,t,e){return zingchart.maps.convert({loader:this,loaderdata:t||{},graphid:"undefined"==typeof o.graphid?0:o.graphid,data:e,id:o.id||a,x:"undefined"==typeof o.x?0:o.x,y:"undefined"==typeof o.y?0:o.y,width:"undefined"==typeof o.width?1:o.width,height:"undefined"==typeof o.height?1:o.height,level:"undefined"==typeof o.level?1:o.level,groups:o.groups||[],items:o.items||[],ignore:o.ignore||[],bbox:o.bbox||null,map:zingchart.maps.data[a]})}},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(a,o,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");a-=t*(_-1)/2,o-=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]-a-s)/p,r[1]+(o-i[1]+l)/f]},zingchart.maps.mappoints=function(a,o,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,a-=t*(b-1)/2,o-=e*(b-1)/2,o+=ZC._i_(_.offsetY||"0"),f=(a+=O)+(ZC.CY(r.bbox[0],r.bbox[2])-ZC.CY(i[0],i[2]))*g,c=o+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,I=r.transform.offsetLat,Z=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,I=n[x].offsetLat,Z=n[x].scale,C=n[x].bbox;break}if(l=a+(r.coords[z][0]-ZC.CY(i[0],i[2]))*g+u*g,p=o+(ZC.BQ(i[1],i[3])-r.coords[z][1])*d-I*d,1!==Z)if("__"===r.id){var v=a+(ZC.CY(C[0],C[2])-ZC.CY(i[0],i[2]))*g,N=o+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)*Z,p=N-y+(p-(N-y))*Z}else l=f+(l-f)*Z,p=c-h+(p-(c-h))*Z;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(a,o,t,e,i){var r=t/ZC._a_(i[2]-i[0]),n=e/ZC._a_(i[3]-i[1]);return"x"===a?o*r:o*n},zingchart.maps.convert=function(a){var o=a.data.options||{};ZC._todash_(o);var t=a.id,e=a.groups,i=a.items,r=a.ignore,n=a.bbox,_=a.level,s=!1;"01"===_&&(_=1,s=!0);var l=Math.abs(ZC._f_(o.zoom||"1")),p=ZC._i_(o["offset-x"]||"0"),f=ZC._i_(o["offset-y"]||"0"),c=!0,h=!0,g=!0;null!==ZC._n_(o.zooming)&&(c=ZC._b_(o.zooming)),null!==ZC._n_(o.panning)&&(h=ZC._b_(o.panning)),null!==ZC._n_(o.scrolling)&&(g=ZC._b_(o.scrolling));var d,m=a.loader.A5I(a.loaderdata,a.graphid);a.loader.MC&&(d=a.loader.MC.theme||"light"),a.loader.o&&(d=a.loader.o.theme||"light"),"light"===d?a.map._DEFAULTS_=zingchart.maps.LIGHT:"dark"===d&&(a.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(a.x);C=ZC._i_(C>0&&C<1?C*m.plotarea.width:C),C+=m.plotarea.x;var b=ZC.IL(a.y);b=ZC._i_(C>0&&b<1?b*m.plotarea.height:b),b+=m.plotarea.y;var O=ZC.IL(a.width);O=ZC._i_(O<=1?O*m.plotarea.width:O);var z=ZC.IL(a.height);z=ZC._i_(z<=1?z*m.plotarea.height:z);var F,u,I,Z,x={};if(ZC._cp_(a.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)){Z=[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}Z[0]=ZC.CY(Z[0],x[F].coords[u][0]+M),Z[1]=ZC.BQ(Z[1],x[F].coords[u][1]+v),Z[2]=ZC.BQ(Z[2],x[F].coords[u][0]+M),Z[3]=ZC.CY(Z[3],x[F].coords[u][1]+v)}1!==N&&"__"!==F&&(Z[2]=Z[0]+(Z[2]-Z[0])*N,Z[3]=Z[1]-(Z[1]-Z[3])*N),x[F].id=F,x[F].bbox=Z}Z=[ZC.MAX,-ZC.MAX,-ZC.MAX,ZC.MAX];var A=[];if(e.length>0&&x._GROUPS_){for(u=0,I=e.length;u<I;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,I=i.length;u<I;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)Z=n;else for(u=0,I=A.length;u<I;u++)x[F=A[u]]&&(Z[0]=ZC.CY(Z[0],x[F].bbox[0]),Z[1]=ZC.BQ(Z[1],x[F].bbox[1]),Z[2]=ZC.BQ(Z[2],x[F].bbox[2]),Z[3]=ZC.CY(Z[3],x[F].bbox[3]));var Y,E=ZC._a_(Z[2]-Z[0])/20,X=ZC._a_(Z[3]-Z[1])/20;for(F in Z[0]-=E,Z[1]+=X,Z[2]+=E,Z[3]-=X,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),X=ZC.CY(1,ZC._a_(x[F].bbox[3]-x[F].bbox[1])/8),x[F].bbox[0]-=E,x[F].bbox[1]+=X,x[F].bbox[2]+=E,x[F].bbox[3]-=X));var S=1+.8*ZC._a_((Z[3]+Z[1])/180),w=O/ZC._a_(Z[2]-Z[0]),D=z/ZC._a_(Z[3]-Z[1]);if(!o.hasOwnProperty("scale")||ZC._b_(o.scale)){if((Y=S*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_(Z[2]-Z[0]),D=z/ZC._a_(Z[3]-Z[1])}for(var P in zingchart.maps.maps)if(t!==P){var W=zingchart.maps.maps[P];W&&W._INFO_&&a.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:a.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:Z,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 H,k={},G={};if(H=o.choropleth){var Q,V=ZC.MAX,J=-ZC.MAX,K="";for(u=0,I=A.length;u<I;u++)F=A[u],null!==ZC._n_(o.style)&&null!==ZC._n_(o.style.items)&&null!==ZC._n_(o.style.items[F])&&null!==ZC._n_(o.style.items[F]["data-value"])&&(Q=ZC._f_(o.style.items[F]["data-value"]),V=Math.min(V,Q),J=Math.max(J,Q),G[F]={"data-value":Q});var j=H.aspect||"gradient",q=H.progression||"lin",$=H.intervals||4,aa=H.color||"#336699",oa=H["max-percent"]||50,ta=H.effect||"lighten",ea=ZC._b_(H.mirrored),ia=oa/(J-V);"log"===q&&(ia=oa/(ZC.FT(J,10)-ZC.FT(V,10)));var ra=oa/$,na=H.labels||[],_a=H.steps||[],sa=H.colors||[];if("intervals"===j){if(_a.length)$=_a.length-1;else if("lin"===q){var la=(J-V)/$;for(u=0;u<$;u+=1)_a.push(V+u*la);_a.push(J)}else{var pa=Math.floor(ZC.FT(V,10)),fa=Math.ceil(ZC.FT(J,10));for(pa===fa&&fa++,$=Math.max(1,fa-pa-1),u=pa;u<=fa;u+=1)u===pa&&pa<1?_a.push(0):_a.push(Math.pow(10,u));ra=oa/$}if(!sa.length)for(u=0;u<=$;u+=1)sa.push("lighten"===ta?ZC.AQ.R0(aa,u*ra):ZC.AQ.JO(aa,u*ra))}for(u=0,I=A.length;u<I;u++)if(G[F=A[u]]){if(Q=G[F]["data-value"],"gradient"===j){var ca=ZC._i_((Q-V)*ia);"log"===q&&(ca=ZC._i_((ZC.FT(Q,10)-ZC.FT(V,10))*ia)),ea&&(ca=oa-ca),K="lighten"===ta?ZC.AQ.R0(aa,ca):ZC.AQ.JO(aa,ca)}else if("intervals"===j){for(var ha=0;ha<_a.length-1;ha++)if(Q>=_a[ha]&&Q<_a[ha+1]){K=sa[ha];break}""===K&&Q===J&&(K=sa[sa.length-1])}G[F]={"data-color":K,"background-color":K,"hover-state":{"background-color":K}},H["override-tooltip"]&&(G[F].tooltip={"background-color":ZC.AQ.JO(K,15)})}x._INFO_.choropleth={aspect:j,progression:q,intervals:$,color:aa,maxPercent:oa,effect:ta,minValue:V,maxValue:J,steps:_a,colors:sa,labels:na,mirrored:ea}}for(o["color-scale"]&&(x._INFO_["color-scale"]=!0),u=0,I=A.length;u<I;u++)if(x[F=A[u]]){var ga=x[F].type||"poly",da=0;"line"!==ga&&"point"!==ga||(da+=10),x[F].sort&&(x[F].sort&&(x[F].sort=.5),da+=x[F].sort);var ma,Ca,ba,Oa=null;if(null!==ZC._n_(o.style)&&(o.style["3d"]&&(Oa=1),null!==ZC._n_(o.style.z)&&(Oa=o.style.z),null!==ZC._n_(o.style.items)&&null!==ZC._n_(o.style.items[F])&&null!==ZC._n_(o.style.items[F].z)&&(Oa=o.style.items[F].z)),"poly"===ga||"line"===ga)k[F]={type:ga,id:F,points:zingchart.maps.mappoints(C,b,O,z,Z,x[F],x._RULES_,x._INFO_,Oa),label:{map:t},"z-sort":da,"z-index":da,tooltip:{},connector:{},"map-item":!0,generated:!0};else if("point"===ga){var za=zingchart.maps.mappoints(C,b,O,z,Z,x[F],x._RULES_,x._INFO_,Oa);k[F]={type:"circle",id:F,size:5,x:za[0][0],y:za[0][1],label:{map:t},"z-sort":da,"z-index":da,tooltip:{},connector:{},"map-item":!0,generated:!0}}if("poly"===ga||"line"===ga){var Fa=zingchart.maps.centroid(k[F].points);Ca=Fa[0],ba=Fa[1],ma=Fa[2]}x._DEFAULTS_&&(ZC._cp_(x._DEFAULTS_._COMMON_,k[F]),"poly"===ga?ZC._cp_(x._DEFAULTS_._POLY_,k[F]):"line"===ga?ZC._cp_(x._DEFAULTS_._LINE_,k[F]):"point"===ga&&ZC._cp_(x._DEFAULTS_._POINT_,k[F])),x[F].style&&ZC._cp_(x[F].style,k[F]),ZC._todash_(k[F]);var ua=x[F].label.text,Ia=x[F].tooltip.text;ZC._cp_(o.style,k[F],null,null,null,["items"]);var Za=x[F].tooltip.text||"",xa=k[F].tooltip.text||"";ZC._cp_(x[F].tooltip,k[F].tooltip);var Ma=k[F].label.text;ZC._cp_(x[F].label,k[F].label),Ma&&(k[F].label.text=Ma),1===zingchart.maps.CONNECTORS&&ZC._cp_(x[F].connector,k[F].connector),"poly"!==ga&&"line"!==ga||"auto"===k[F].label.visible&&ma<400&&(0===zingchart.maps.CONNECTORS||0===k[F].connector.points.length)&&(k[F].label.visible=!1),G[F]&&ZC._cp_(G[F],k[F]);var va=!1;for(var Na in null!==ZC._n_(o.style)&&null!==ZC._n_(o.style.items)&&(ZC._cp_(o.style.items[F],k[F]),o.style.items[F]&&o.style.items[F].tooltip&&o.style.items[F].tooltip.text&&(Za=o.style.items[F].tooltip.text,-1===xa.indexOf("%text")&&(va=!0))),k[F].tooltip.text=""===xa||va?Za:xa.replace("%text",Za),k[F])"data-"===Na.substring(0,5)&&(k[F].tooltip.text=k[F].tooltip.text.replace("%"+Na,k[F][Na]),k[F].label.text=k[F].label.text.replace("%"+Na,k[F][Na]));if(k[F].tooltip.text=k[F].tooltip.text.replace("%short-text",ua).replace("%long-text",Ia),k[F].label.text=k[F].label.text.replace("%short-text",ua).replace("%long-text",Ia),zingchart.maps.CONNECTORS&&null!==ZC._n_(k[F].connector.points)){for(var ya=0,La=k[F].connector.points.length;ya<La;ya++)k[F].connector.points[ya]=zingchart.maps.lonlat2xy(C,b,O,z,k[F].connector.points[ya],Z,{zoom:l,offsetX:p,offsetY:f});k[F].connector.points=ZC.AQ.A5L(k[F].connector.points,m.graph.x,m.graph.y)}null===ZC._n_(k[F].label.x)&&(k[F].label.x=Ca+m.graph.x),null===ZC._n_(k[F].label.y)&&(k[F].label.y=ba+m.graph.y)}var Aa=m.graph.width,Ra=m.graph.height;o.style=o.style||{};var Ba=o.style.controls||{};if(null===ZC._n_(Ba.visible)||ZC._b_(Ba.visible)){var Ya=ZC._i_(Ba.x||"-1"),Ea=ZC._i_(Ba.y||"-1"),Xa=Ba.placement||"";""!==Xa||-1!==Ya&&-1!==Ea||(Xa="tl");switch(Xa){case"tl":Ya=10,Ea=10;break;case"tr":Ya=0+Aa-25-10,Ea=10;break;case"bl":Ya=10,Ea=0+Ra-50-10;break;case"br":Ya=0+Aa-25-10,Ea=0+Ra-50-10}k._ZOOM_IN_={objtype:"label",id:x._INFO_.id+"_zoom_in",generated:!0,x:Ya,y:Ea,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,k._ZOOM_IN_.tooltip),ZC._cp_(Ba["zoom-in"],k._ZOOM_IN_),k._ZOOM_OUT_={objtype:"label",id:x._INFO_.id+"_zoom_out",generated:!0,x:Ya,y:Ea+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,k._ZOOM_OUT_.tooltip),ZC._cp_(Ba["zoom-out"],k._ZOOM_OUT_)}return k},zingchart.maps.exportMap=function(a,o){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,o);var r=[],n=[],_=[],s=zingchart.maps.data[a];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"))};