依赖文件
This commit is contained in:
+152
@@ -0,0 +1,152 @@
|
||||
var utils = require('cordova/utils'),
|
||||
common = require('./Common'),
|
||||
Overlay = require('./Overlay');
|
||||
|
||||
/*****************************************************************************
|
||||
* GroundOverlay Class
|
||||
*****************************************************************************/
|
||||
var GroundOverlay = function (map, groundOverlayOptions, _exec) {
|
||||
Overlay.call(this, map, groundOverlayOptions, 'GroundOverlay', _exec);
|
||||
|
||||
var self = this;
|
||||
groundOverlayOptions.visible = groundOverlayOptions.visible === undefined ? true : groundOverlayOptions.visible;
|
||||
groundOverlayOptions.zIndex = groundOverlayOptions.zIndex || 1;
|
||||
groundOverlayOptions.opacity = groundOverlayOptions.opacity || 1;
|
||||
groundOverlayOptions.bounds = groundOverlayOptions.bounds || [];
|
||||
groundOverlayOptions.anchor = groundOverlayOptions.anchor || [0, 0];
|
||||
groundOverlayOptions.bearing = groundOverlayOptions.bearing || 0;
|
||||
|
||||
//-----------------------------------------------
|
||||
// Sets event listeners
|
||||
//-----------------------------------------------
|
||||
self.on('visible_changed', function () {
|
||||
var visible = self.get('visible');
|
||||
self.exec.call(self, null, self.errorHandler, self.getPluginName(), 'setVisible', [self.getId(), visible]);
|
||||
});
|
||||
self.on('image_changed', function () {
|
||||
var image = self.get('image');
|
||||
self.exec.call(self, null, self.errorHandler, self.getPluginName(), 'setImage', [self.getId(), image]);
|
||||
});
|
||||
self.on('bounds_changed', function () {
|
||||
var bounds = self.get('bounds');
|
||||
self.exec.call(self, null, self.errorHandler, self.getPluginName(), 'setBounds', [self.getId(), bounds]);
|
||||
});
|
||||
self.on('opacity_changed', function () {
|
||||
var opacity = self.get('opacity');
|
||||
self.exec.call(self, null, self.errorHandler, self.getPluginName(), 'setOpacity', [self.getId(), opacity]);
|
||||
});
|
||||
self.on('clickable_changed', function () {
|
||||
var clickable = self.get('clickable');
|
||||
self.exec.call(self, null, self.errorHandler, self.getPluginName(), 'setClickable', [self.getId(), clickable]);
|
||||
});
|
||||
self.on('bearing_changed', function () {
|
||||
var bearing = self.get('bearing');
|
||||
self.exec.call(self, null, self.errorHandler, self.getPluginName(), 'setBearing', [self.getId(), bearing]);
|
||||
});
|
||||
self.on('zIndex_changed', function () {
|
||||
var zIndex = self.get('zIndex');
|
||||
self.exec.call(self, null, self.errorHandler, self.getPluginName(), 'setZIndex', [self.getId(), zIndex]);
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
utils.extend(GroundOverlay, Overlay);
|
||||
|
||||
GroundOverlay.prototype.setVisible = function (visible) {
|
||||
this.set('visible', visible);
|
||||
};
|
||||
|
||||
GroundOverlay.prototype.getVisible = function () {
|
||||
return this.get('visible');
|
||||
};
|
||||
|
||||
GroundOverlay.prototype.setImage = function (url) {
|
||||
this.set('image', url);
|
||||
};
|
||||
|
||||
GroundOverlay.prototype.setBounds = function (points) {
|
||||
var i,
|
||||
bounds = [];
|
||||
for (i = 0; i < points.length; i++) {
|
||||
bounds.push({
|
||||
'lat': parseFloat(points[i].lat, 10),
|
||||
'lng': parseFloat(points[i].lng, 10)
|
||||
});
|
||||
}
|
||||
this.set('bounds', bounds);
|
||||
};
|
||||
|
||||
GroundOverlay.prototype.getOpacity = function () {
|
||||
return this.get('opacity');
|
||||
};
|
||||
|
||||
GroundOverlay.prototype.getBearing = function () {
|
||||
return this.get('bearing');
|
||||
};
|
||||
|
||||
GroundOverlay.prototype.setOpacity = function (opacity) {
|
||||
if (!opacity && opacity !== 0) {
|
||||
console.log('opacity value must be int or double');
|
||||
return false;
|
||||
}
|
||||
this.set('opacity', opacity);
|
||||
};
|
||||
GroundOverlay.prototype.setBearing = function (bearing) {
|
||||
if (bearing > 360) {
|
||||
bearing = bearing - Math.floor(bearing / 360) * 360;
|
||||
}
|
||||
this.set('bearing', bearing);
|
||||
};
|
||||
|
||||
GroundOverlay.prototype.getZIndex = function () {
|
||||
return this.get('zIndex');
|
||||
};
|
||||
|
||||
GroundOverlay.prototype.setZIndex = function (zIndex) {
|
||||
this.set('zIndex', zIndex);
|
||||
};
|
||||
GroundOverlay.prototype.setClickable = function (clickable) {
|
||||
clickable = common.parseBoolean(clickable);
|
||||
this.set('clickable', clickable);
|
||||
return this;
|
||||
};
|
||||
GroundOverlay.prototype.getClickable = function () {
|
||||
return this.get('clickable');
|
||||
};
|
||||
|
||||
GroundOverlay.prototype.remove = function (callback) {
|
||||
var self = this;
|
||||
if (self._isRemoved) {
|
||||
if (typeof callback === 'function') {
|
||||
return;
|
||||
} else {
|
||||
return Promise.resolve();
|
||||
}
|
||||
}
|
||||
Object.defineProperty(self, '_isRemoved', {
|
||||
value: true,
|
||||
writable: false
|
||||
});
|
||||
self.trigger(self.__pgmId + '_remove');
|
||||
|
||||
var resolver = function(resolve, reject) {
|
||||
self.exec.call(self,
|
||||
function() {
|
||||
self.destroy();
|
||||
resolve.call(self);
|
||||
},
|
||||
reject.bind(self),
|
||||
self.getPluginName(), 'remove', [self.getId()], {
|
||||
remove: true
|
||||
});
|
||||
};
|
||||
|
||||
if (typeof callback === 'function') {
|
||||
resolver(callback, self.errorHandler);
|
||||
} else {
|
||||
return new Promise(resolver);
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
module.exports = GroundOverlay;
|
||||
Reference in New Issue
Block a user