123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778 |
- 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];
- }
- });
- });
|