
function ZoomLevelRenderer(){this.name="ZoomLevelRenderer";var theObject=this;this._pointRenderer=new PointRenderer();this._images;this._imageWidths;this._imageHeights;this._zoomLevels;this._infoboxNames;this._oDataEntityNames;this._lastMatchingZoomLevelIndex=0;this.getPointRenderer=function(){return this._pointRenderer;}
this.setImages=function(value){this._images=value;}
this.getImages=function(){return this._images;}
this.setImageWidths=function(value){this._imageWidths=value;}
this.getImageWidths=function(){return this._imageWidths;}
this.setImageHeights=function(value){this._imageHeights=value;}
this.getImageHeights=function(){return this._imageHeights;}
this.setZoomLevels=function(value){this._zoomLevels=value;}
this.getZoomLevels=function(){return this._zoomLevels;}
this.setInfoboxNames=function(value){this._infoboxNames=value;}
this.getInfoboxNames=function(){return this._infoboxNames;}
this.setODataEntityNames=function(value){this._oDataEntityNames=value;}
this.getODataEntityNames=function(){return this._oDataEntityNames;}
this.setLayerName=function(value){var renderer=this.getPointRenderer();renderer.setLayerName(value);}
this.setCategoryName=function(value){var renderer=this.getPointRenderer();renderer.setCategoryName(value);}
this.Render=function(oDataUri){var renderer=this.getPointRenderer();var zoomLevels=this.getZoomLevels();var images=this.getImages();var widths=this.getImageWidths();var heights=this.getImageHeights();var infoboxNames=this.getInfoboxNames();var oDataEntityNames=this.getODataEntityNames();var matchingZoomLevelIndex=0;var mapZoom=map.getZoom();for(var i=0;i<zoomLevels.length;i++){if(mapZoom>=zoomLevels[i]){matchingZoomLevelIndex=i;}
else{break;}}
if(this._lastMatchingZoomLevelIndex!=matchingZoomLevelIndex){this._lastMatchingZoomLevelIndex=matchingZoomLevelIndex;this.Clear();renderer.HideInfobox();}
if(images.length>=matchingZoomLevelIndex){renderer.setImagePath(images[matchingZoomLevelIndex]);renderer.setWidth(widths[matchingZoomLevelIndex]);renderer.setHeight(heights[matchingZoomLevelIndex]);renderer.setInfoboxName(infoboxNames[matchingZoomLevelIndex]);renderer.setODataEntityName(oDataEntityNames[matchingZoomLevelIndex]);renderer.Render(oDataUri);}}
this.Clear=function(){this.getPointRenderer().Clear();}}
