/**
* OpenLayers.Layer<br/>
*
* @class Layer
* @constructor
* @namespace OpenLayers
* @param {String} name
* @param {Object} options 레이어 옵션 hashtable
*/
OpenLayers.Layer = OpenLayers.Class({
/**
* @property id
* @type {String}
*/
id: null,
/**
* @property name
* @type {String}
*/
name: null,
/**
* @property div
* @type {DOMElement}
*/
div: null,
/**
* 지도를 보여줄 때 스케일 베이스가 아닐 경우 반드시 true로 해야만 한다.
* @property alwaysInRange
* @type {Boolean}
*/
alwaysInRange: null,
/**
* 이벤트 타입<BR/>
* 아래와 같이 이벤트 리스너를 등록하면 된다.<BR/>
* layer.events.register(type, obj, listener); <BR/>
* layer.events.unregister(type, obj, listener); <BR/>
* 또는<BR/>
* layer.events.on({type:listener,"scope":obj});<BR/>
* layer.events.un({type:listener,"scope":obj});<BR/>
* 지원하는 이벤트 타입
* loadStart - 레이어가 로딩 시작 할때 발생<BR/>
* loadend - 레이어가 로딩 끝날때 발생<BR/>
* loadcancel - 레이어가 로딩 취소됬을 때 발생 <BR/>
* visibilitychanged - 레이어가 보여주는게 바뀔 때 발생 <BR/>
* move - 레이어가 움직일 때 발생<BR/>
* moveend - 레이어가 움직임이 완료되었을 때 발생<br/>
* added - 레이어가 map에 추가되고 난 후에 발생<br/>
* removed - 레이어가 map에서 제거 되고 난 후에 발생 <br/>
* @property EVENT_TYPES
* @final
* @type {Array(String)}
*/
EVENT_TYPES: ["loadstart", "loadend", "loadcancel", "visibilitychanged",
"move", "moveend", "added", "removed"],
/**
* resolutions 정보를 계산하기 위해 사용되는 속성들.
* @property RESOLUTION_PROPERTIES
* @final
* @type {Array(String)}
*/
RESOLUTION_PROPERTIES: [
'scales', 'resolutions',
'maxScale', 'minScale',
'maxResolution', 'minResolution',
'numZoomLevels', 'maxZoomLevel'
],
/**
* 이벤트.
* @property events
* @type {OpenLayers.Events}
*/
events:null,
/**
* 레이어를 지도에 추가할때 map 변수가 설정된다.
* @property events
* @type {OpenLayers.Map}
*/
map: null,
/**
* 레이어가 base layer이면 true 아니면 false. 디폴트 false.
* @property isBaseLayer
* @type {Boolean}
*/
isBaseLayer: false,
/**
* layer switcher에 레이어 이름을 보여준다면 true,아니면 false. 디폴트 true.
* @property displayInLayerSwitcher
* @type {Boolean}
*/
displayInLayerSwitcher: true,
/**
* 지도에 보여준다면 true 아니면 false. 디폴트 true.
* @property visibility
* @type {Boolean}
*/
visibility: true,
/**
* 지도에 OpenLayers.Control.Attribution 추가되어 있을 때 보여주는 Attribution 문자열.
* @property attribution
* @type {String}
*/
attribution: null,
/**
* 레이어 생성자 옵션에 설정해 레이어를 생성하면 eventListeners 에 있는 이벤트를 등록해준다.
* @property eventListeners
* @type {Object}
*/
eventListeners: null,
/**
* 이미지 타일 주변의 무시하는 거터 너비를 결정. 디폴트 0. non-tiled 레이어일 경우 항상 0 거터
* @property gutter
* @type {Integer}
*/
gutter: 0,
/**
* 레이어 생성자 옵션에 설정해 레이어를 생성하면 Projection을 설정할 수 있음.
* @property projection
* @type {OpenLayers.Projection|String}
*/
projection: null,
/**
* 레이어 map units.
* @property units
* @type {String}
*/
units: null,
/**
* map scale 내림차순 array.
* @property scales
* @type {Array}
*/
scales: null,
/**
* map resolutions 내림차순 list.
* @property resolutions
* @type {Array}
*/
resolutions: null,
/**
* @property maxExtent
* @type {OpenLayers.Bounds}
*/
maxExtent: null,
/**
* @property minExtent
* @type {OpenLayers.Bounds}
*/
minExtent: null,
/**
* @property maxResolution
* @type {Float}
*/
maxResolution: null,
/**
* @property minResolution
* @type {Float}
*/
minResolution: null,
/**
* @property numZoomLevels
* @type {Integer}
*/
numZoomLevels: null,
/**
* @property minScale
* @type {Float}
*/
minScale: null,
/**
* @property maxScale
* @type {Float}
*/
maxScale: null,
/**
* @property displayOutsideMaxExtent
* @type {Boolean}
*/
displayOutsideMaxExtent: false,
/**
* @property wrapDateLine
* @type {Boolean}
*/
wrapDateLine: false,
/**
* @property transitionEffect
* @type {String}
*/
transitionEffect: null,
/**
* 레이어 이름 설정
* @method setName
* @param {String} newName
*/
setName: function(newName){},
/**
* @method addOptions
* @param {Object} newOptions
* @param {Boolean} reinitalize
*/
addOptions: function(newOptions,reinitalize){},
/**
* 서브클래스에서 구현할 수 있는 함수
* @method onMapResize
*/
onMapResize: function(){},
/**
* 레이어를 다시 그림.
* @method redraw
*/
redraw: function(){},
/**
* 서브클래스에서 구현할 수 있는 함수.
* @method removeMap
* @param {OpenLayers.Map} map Map 클래스
*/
removeMap: function(map){},
/**
* 이미지 사이즈 또는 타일 사이즈.
* @method getImageSize
* @param {OpenLayers.Bounds} bounds
*/
getImageSize: function(bounds){},
/**
* 타일 사이즈 설정.
* @method setTileSize
* @param {OpenLayers.Size} size
*/
setTileSize: function(size){},
/**
* @method getVisibility
* @return {Boolean} 레이어를 디스플레이 하는지
*/
getVisibility: function(){},
/**
* 레이어 디스플레이 설정 및 redraw
* @method setVisibility
* @param {Boolean} visibility
*/
setVisibility: function(visibility){},
/**
* 레이어를 보여줄지 숨길지 설정
* @method display
* @param {Boolean} display
*/
display: function(display){},
/**
* 레이어가 현재 맵의 resolution에 맞게 계산
* @method calculateInRange
*/
calculateInRange: function(){},
/**
* @method setIsBaseLayer
* @param {Boolean} isBaseLayer
*/
setIsBaseLayer: function(isBaseLayer){},
/**
* @method getResolution
* @return {Float} 현재 선택된 resolution
*/
getResolution: function(){},
/**
* 현재 뷰포트 영역
* @method getExtent
* @return {OpenLayers.Bounds} bounds
*/
getExtent: function(){},
/**
* @method getZoomForExtent
* @param {OpenLayers.Bounds} extent
* @param {Boolean} closest
* @return {Integer} zoom level
*/
getZoomForExtent: function(extent,closest){},
/**
* @method getResolutionForZoom
* @param {Float} zoom zoom level
* @return {Float} resolution
*/
getResolutionForZoom: function(zoom){},
/**
* @method getZoomForResolution
* @param {Float} resolution
* @param {Boolean} closest
* @return {Integer} index of zoomlevel
*/
getZoomForResolution: function(resolution,closest){},
/**
* @method getLonLatFromViewPortPx
* @param {OpenLayers.Pixel} viewPortPx
* @return {OpenLayers.LonLat} lonlat
*/
getLonLatFromViewPortPx: function(viewPortPx){},
/**
* @method getViewPortPxFromLonLat
* @param {OpenLayers.LonLat} lonlat
* @return {OpenLayers.Pixel} pixel
*/
getViewPortPxFromLonLat: function(lonlat){},
/**
* @method setOpacity
* @param {Float} opacity
*/
setOpacity: function(opacity){}
});