VEShapeLayer.prototype.IFAddJSON=function(I,F,H,E){var J=null;if(/MSIE (\d+\.\d+);/.test(navigator.userAgent)){J=new Number(RegExp.$1)}var L=I.length;var K;var G;var C=[];var A;if(iFactor.common.config.setClusters){if(E=="streetlightAssets"){I=meanAverageGridCluster(I)}}for(var D=0;D<L;D=D+1){K=I[D];if(iFactor.common.config.setClusters){if(E=="reportedIncidents"||E=="in_progressIncidents"){if(K.assetid){if(iFactor.common.config.actualAssetCoordinates[K.assetid]){var B=iFactor.common.config.actualAssetCoordinates[K.assetid].split("|");K.latitude=B[0];K.longitude=B[1]}}}}pointLocation=new VELatLong(parseFloat(K.latitude),parseFloat(K.longitude));G=new VEShape(VEShapeType.Pushpin,pointLocation);if(J<=6){G.SetCustomIcon('<span style="z-index:100;display:inline-block;filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='+F+')"><img style="filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);"  src="'+F+'"/></span>')}else{G.SetCustomIcon(F)}A=K.id;if(A){G.SetTitle(K.id.toString())}if(H){G.SetZIndex(100)}C.push(G)}this.AddShape(C);return C};VEShapeLayer.prototype.IFAddJSONIndividually=function(G,D,F){var I=G.length;var H;var E;var B=[];var A;for(var C=0;C<I;C=C+1){H=G[C];pointLocation=new VELatLong(parseFloat(H.latitude),parseFloat(H.longitude));E=new VEShape(VEShapeType.Pushpin,pointLocation);E.SetCustomIcon(D);A=H.id;if(A){E.SetTitle(H.id.toString())}if(F){E.SetZIndex(F)}this.AddShape(E);B.push(E)}return B};VEShapeLayer.prototype.IFAddJSONArea=function(N,M){var L;var F=[];var A;var O;var B;var D=N.polygon;var J=N.id;var E=iFactor.common.config;if(D&&(D.indexOf("$")!=-1)){var B=D.split("$");for(var I=0;I<B.length;I++){if(B[I].length==0){break}B[I]=B[I].replace("{","");B[I]=B[I].replace("}","");var H=B[I].split(",");var K=new Array();for(var G=0;G<H.length;G++){var C=H[G].split(" ");K.push(new VELatLong(parseFloat(C[1]),parseFloat(C[0])))}O=K;L=new VEShape(VEShapeType.Polygon,O);L.SetFillColor(iFactor.common.configStyles.thematic_na_area_color);if(M.layerName=="servicearea"){L.SetLineColor(iFactor.common.configStyles.serviceareas_border_color);L.SetLineWidth(iFactor.common.configStyles.serviceareas_border_width)}else{L.SetLineColor(iFactor.common.configStyles.thematic_na_area_color)}if(N.centroid){anCentroid=N.centroid}if(N.areaname){anAreaname=N.areaname}if(M.layerName!="servicearea"){titleJSON='{"stateid":"'+J+'", "centroid":"'+anCentroid+'","areaname":"'+anAreaname+'"}';L.SetTitle(titleJSON)}L.HideIcon();if(M.zIndex){L.SetZIndex(M.zIndex)}this.AddShape(L)}return F}else{return }};function meanAverageGridCluster(H){var I=H.length;var E=0;var J=new Array();var K=new Array();K[0]=new Array();for(G=0;G<I;G++){var F=H[G];E=0;for(j=0;j<K.length;j++){if(K[j][0]!=undefined){var B=HaversineDistance(K[j][0],F);if(B){K[j][K[j].length]=F;E=1}}}if(E==0){K[K.length]=new Array();K[K.length-1][0]=F}}var A=0;for(var D=0;D<K.length;D++){if(K[D].length>1){J[A]=K[D];A=A+1}}clustering(J);for(var G=0;G<I;G=G+1){point=H[G];id=point.id;if(iFactor.common.config.actualAssetCoordinates[id]){var C=iFactor.common.config.actualAssetCoordinates[id].split("|");point.latitude=C[0];point.longitude=C[1]}}return H}function HaversineDistance(F,A){var E=F.latitude;var D=A.latitude;var C=F.longitude;var B=A.longitude;if(E==D&&C==B){return true}return false}function clustering(P){var G=P.length;var E=3.14;var J;var B=iFactor.StormCenter.map;var L=GetZoomLevel(B);if(G>=1){for(var H=0;H<G;H++){var I=H;var N=P[I].length;if(L==18){if(N==2){J=0.00009999;J=0.8*J}else{if(N==3){J=0.85*0.00005}else{if(N==4){J=0.00005*(N-1)/(2*E);J=3*J}else{if(N>4){J=0.00005*(N-1)/(2*E);J=2*J}}}}}else{if(L==19){if(N==2){J=0.00009999;J=0.4*J}else{if(N==3){J=0.000025}else{if(N==4){J=0.00005*(N-1)/(2*E);J=1.5*J}else{if(N>4){J=0.00005*(N-1)/(2*E);J=1*J}}}}}}for(var C=0;C<N;C++){var M=C;var F;var K;var A;var K=P[I][C].latitude;var A=P[I][C].longitude;if(N==3){F=M*(2*E)/N;K=K+(J*Math.sin(F));A=A+(J*Math.cos(F))}else{if(N==2){if(M<N){F=M*(2*E)/N}}else{if(N>=4){if(M<N){F=M*(2*E)/(N-1)}}}if(M!=N-1){K=K+(J*Math.sin(F));A=A+(J*Math.cos(F))}}var O=P[I][C].id;var D=K+"|"+A;iFactor.common.config.actualAssetCoordinates[O]=D}}}return };
