/**
* OpenLayers.Layer.Vector<br/>
*
* @class Vector
* @extends OpenLayers.Layer
* @constructor
* @namespace OpenLayers.Layer
* @param {String} name
* @param {Object} options 레이어 옵션 hashtable
*/
OpenLayers.Layer.Vector = OpenLayers.Class({
/**
* 이벤트 타입<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/>
* 지원하는 이벤트 타입
* beforefeatureadded - feature 추가되기 전에 발생<BR/>
* beforefeaturesadded - feature array 추가 되기 전에 발생<BR/>
* featureadded - feature 추가되고 후에 발생 <BR/>
* featuresadded - feature array 추가되고 후에 발생 <BR/>
* beforefeatureremoved - feature 제거되기 전에 발생 <BR/>
* beforefeaturesremoved - feature array 제거되기 전에 발생 <BR/>
* featureremoved - feature 제거 후에 발생 <BR/>
* featuresremoved - feature array 제거 후에 발생 <BR/>
* beforefeatureselected - feature 선택 되기 전에 발생 <BR/>
* featureselected - feature 선택 후에 발생 <BR/>
* featureunselected - feature 선택 해제 후에 발생 <BR/>
* beforefeaturemodified <BR/>
* featuremodified <BR/>
* afterfeaturemodified <BR/>
* vertexmodified <BR/>
* vertexremoved <BR/>
* sketchstarted <BR/>
* sketchmodified <BR/>
* sketchcomplete <BR/>
* refresh <BR/>
* @property EVENT_TYPES
* @final
* @type {Array(String)}
*/
EVENT_TYPES: ["beforefeatureadded", "beforefeaturesadded",
"featureadded", "featuresadded", "beforefeatureremoved",
"beforefeaturesremoved", "featureremoved", "featuresremoved",
"beforefeatureselected", "featureselected", "featureunselected",
"beforefeaturemodified", "featuremodified", "afterfeaturemodified",
"vertexmodified", "vertexremoved", "sketchstarted",
"sketchmodified", "sketchcomplete", "refresh"],
/**
* 레이어가 base layer이면 true 아니면 false. 디폴트 false.
* @property isBaseLayer
* @type {Boolean}
*/
isBaseLayer: false,
/**
* @property isFixed
* @type {Boolean}
*/
isFixed: false,
/**
* @property features
* @type {Array(OpenLayers.Feature.Vector)}
*/
features: null,
/**
* @property reportError
* @type {Boolean}
*/
reportError: true,
/**
* @property style
* @type {Object}
*/
style: null,
/**
* @property rendererOptions
* @type {Object}
*/
rendererOptions: null,
/**
* @property geometryType
* @type {String}
*/
geometryType: null,
/**
* @method destory
**/
destory: function(){},
/**
* 레이어를 다시 그림.
* @method redraw
*/
redraw: function(){},
/**
* 레이어를 보여줄지 숨길지 설정
* @method display
* @param {Boolean} display
*/
display: function(display){},
/**
* @method addFeatures
* @param {Array(OpenLayers.Feature.Vector)} vector
* @param {Object} options
*/
addFeatures: function(features, options){},
/**
* @method removeFeatures
* @param {Array(OpenLayers.Feature.Vector)} features
* @param {Object} options
*/
removeFeatures: function(features,options){},
/**
* @method removeAllFeatures
* @param {Object} options
*/
removeAllFeatures: function(map){},
/**
* @method destroyFeatures
* @param {Object} options
*/
destroyFeatures: function(features, options){},
/**
* @method drawFeature
* @param {OpenLayers.Feature.Vector} feature
* @param {String | Object} style
*/
drawFeature: function(feature, style) {},
/**
* @method getFeatureBy
* @param {String} property
* @param {String} value
* @return {OpenLayers.Feature.Vector} vector
*/
getFeatureBy: function(property,value) {},
/**
* @method getFeatureById
* @param {String} featureId
* @return {OpenLayers.Feature.Vector} vector
*/
getFeatureById: function(featureId){},
/**
* @method getFeatureByFid
* @param {String} featureFid
* @return {OpenLayers.Feature.Vector} vector
*/
getFeatureByFid: function(featureFid){},
/**
* @method getFeaturesByAttribute
* @param {String} attrName
* @param {String} attrValue
* @return {Array(OpenLayers.Feature.Vector)} vector
*/
getFeaturesByAttribute: function(attrName, attrValue){},
/**
* feature insert 후 실행되어 진다. 디폴트는 빈함수. 오버라이드해서 구현
* @method onFeatureInsert
* @param {OpenLayers.Feature.Vector} feature
*/
onFeatureInsert: function(feature) {},
/**
* @method preFeatureInsert
* @param {OpenLayers.Feature.Vector} feature
*/
preFeatureInsert: function(feature) {},
/**
* @method getDataExtent
* @return {OpenLayers.Bounds | null} bounds
*/
getDataExtent: function(){}
});