80 lines
2.4 KiB
JavaScript
80 lines
2.4 KiB
JavaScript
//>>built
|
|
define("dojox/geo/openlayers/Feature", ["dojo/_base/kernel", "dojo/_base/declare", "dojox/geo/openlayers/Map"], function(dojo, declare, Map){
|
|
|
|
return declare("dojox.geo.openlayers.Feature", null, {
|
|
// summary:
|
|
// A Feature encapsulates an item so that it can be added to a Layer.
|
|
// This class is not attended to be used as it, but serve as a base class
|
|
// for specific features such as GeometryFeature which can display georeferenced
|
|
// geometries and WidgetFeature which can display georeferenced widgets.
|
|
constructor : function(){
|
|
// summary:
|
|
// Construct a new Feature
|
|
this._layer = null;
|
|
this._coordSys = dojox.geo.openlayers.EPSG4326;
|
|
},
|
|
|
|
getCoordinateSystem : function(){
|
|
// summary:
|
|
// Returns the coordinate system in which coordinates of this feature are expressed.
|
|
// returns: OpenLayers.Projection
|
|
// The coordinate system in which coordinates of this feature are expressed.
|
|
return this._coordSys;
|
|
},
|
|
|
|
setCoordinateSystem : function(/* OpenLayers.Projection */cs){
|
|
// summary:
|
|
// Set the coordinate system in which coordinates of this feature are expressed.
|
|
// cs: OpenLayers.Projection
|
|
// The coordinate system in which coordinates of this feature are expressed.
|
|
this._coordSys = cs;
|
|
},
|
|
|
|
getLayer : function(){
|
|
// summary:
|
|
// Returns the Layer to which this feature belongs.
|
|
// returns: dojox.geo.openlayers.Layer
|
|
// The layer to which this feature belongs.
|
|
return this._layer;
|
|
},
|
|
|
|
_setLayer : function(/* dojox.geo.openlayers.Layer */l){
|
|
// summary:
|
|
// Sets the layer to which this Feature belongs
|
|
// description:
|
|
// Called when the feature is added to the Layer.
|
|
// tags:
|
|
// private
|
|
this._layer = l;
|
|
},
|
|
|
|
render : function(){
|
|
// summary:
|
|
// subclasses implements drawing specific behavior.
|
|
},
|
|
|
|
remove : function(){
|
|
// summary:
|
|
// Subclasses implements specific behavior.
|
|
// Called when removed from the layer.
|
|
},
|
|
|
|
_getLocalXY : function(p){
|
|
// summary:
|
|
// From projected coordinates to screen coordinates
|
|
// p: Object
|
|
// Object with x and y fields
|
|
// tags:
|
|
// private
|
|
var x = p.x;
|
|
var y = p.y;
|
|
var layer = this.getLayer();
|
|
var resolution = layer.olLayer.map.getResolution();
|
|
var extent = layer.olLayer.getExtent();
|
|
var rx = (x / resolution + (-extent.left / resolution));
|
|
var ry = ((extent.top / resolution) - y / resolution);
|
|
return [rx, ry];
|
|
}
|
|
});
|
|
});
|