之前主要是Entity的一個(gè)大概流程,本文主要介紹Cesium的屬性,比如defineProperties,Property(ConstantProperty,CallbackProperty,ConstantPositionProperty)以及createPropertyDescriptor的相關(guān)內(nèi)容,研究一下Cesium對(duì)Object的屬性設(shè)計(jì)和使用方式。
我們以Entity為例,看看它是如何封裝自己的屬性:
function Entity(options) { var id = options.id; if (!defined(id)) { id = createGuid(); } this._id = id; this._name = options.name; this._description = undefined; this._position = undefined; this._rectangle = undefined; }// Key 1:definePropertiesdefineProperties(Entity.prototype, { id : { get : function() { return this._id; } }, // Key 2:createRawPropertyDescriptor name : createRawPropertyDescriptor('name'), // Key 3:createPropertyDescriptor description : createPropertyDescriptor('description'), // Key 4:createPositionPropertyDescriptor position : createPositionPropertyDescriptor('position'), // Key 5:createPropertyTypeDescriptor rectangle : createPropertyTypeDescriptor('rectangle', RectangleGraphics) });網(wǎng)友評(píng)論