Bienvenue sur PostGIS.fr

Bienvenue sur PostGIS.fr , le site de la communauté des utilisateurs francophones de PostGIS.

PostGIS ajoute le support d'objets géographique à la base de données PostgreSQL. En effet, PostGIS "spatialise" le serverur PostgreSQL, ce qui permet de l'utiliser comme une base de données SIG.

Maintenu à jour, en fonction de nos disponibilités et des diverses sorties des outils que nous testons, nous vous proposons l'ensemble de nos travaux publiés en langue française.

source: trunk/workshop-routing-foss4g/web/GeoExt/lib/GeoExt/data/LayerReader.js @ 81

Revision 76, 2.9 KB checked in by djay, 12 years ago (diff)

Ajout du répertoire web

  • Property svn:executable set to *
Line 
1/**
2 * Copyright (c) 2008-2010 The Open Source Geospatial Foundation
3 *
4 * Published under the BSD license.
5 * See http://svn.geoext.org/core/trunk/geoext/license.txt for the full text
6 * of the license.
7 */
8
9/**
10 * @include GeoExt/data/LayerRecord.js
11 */
12
13/** api: (define)
14 *  module = GeoExt.data
15 *  class = LayerReader
16 *  base_link = `Ext.data.DataReader <http://dev.sencha.com/deploy/dev/docs/?class=Ext.data.DataReader>`_
17 */
18Ext.namespace("GeoExt", "GeoExt.data");
19
20/** api: example
21 *  Sample using a reader to create records from an array of layers:
22 *
23 *  .. code-block:: javascript
24 *     
25 *      var reader = new GeoExt.data.LayerReader();
26 *      var layerData = reader.readRecords(map.layers);
27 *      var numRecords = layerData.totalRecords;
28 *      var layerRecords = layerData.records;
29 */
30
31/** api: constructor
32 *  .. class:: LayerReader(meta, recordType)
33 * 
34 *      Data reader class to create an array of
35 *      :class:`GeoExt.data.LayerRecord` objects from an array of
36 *      ``OpenLayers.Layer`` objects for use in a
37 *      :class:`GeoExt.data.LayerStore` object.
38 */
39GeoExt.data.LayerReader = function(meta, recordType) {
40    meta = meta || {};
41    if(!(recordType instanceof Function)) {
42        recordType = GeoExt.data.LayerRecord.create(
43            recordType || meta.fields || {});
44    }
45    GeoExt.data.LayerReader.superclass.constructor.call(
46        this, meta, recordType);
47};
48
49Ext.extend(GeoExt.data.LayerReader, Ext.data.DataReader, {
50
51    /** private: property[totalRecords]
52     *  ``Integer``
53     */
54    totalRecords: null,
55
56    /** api: method[readRecords]
57     *  :param layers: ``Array(OpenLayers.Layer)`` List of layers for creating
58     *      records.
59     *  :return: ``Object``  An object with ``records`` and ``totalRecords``
60     *      properties.
61     * 
62     *  From an array of ``OpenLayers.Layer`` objects create a data block
63     *  containing :class:`GeoExt.data.LayerRecord` objects.
64     */
65    readRecords : function(layers) {
66        var records = [];
67        if(layers) {
68            var recordType = this.recordType, fields = recordType.prototype.fields;
69            var i, lenI, j, lenJ, layer, values, field, v;
70            for(i = 0, lenI = layers.length; i < lenI; i++) {
71                layer = layers[i];
72                values = {};
73                for(j = 0, lenJ = fields.length; j < lenJ; j++){
74                    field = fields.items[j];
75                    v = layer[field.mapping || field.name] ||
76                        field.defaultValue;
77                    v = field.convert(v);
78                    values[field.name] = v;
79                }
80                values.layer = layer;
81                records[records.length] = new recordType(values, layer.id);
82            }
83        }
84        return {
85            records: records,
86            totalRecords: this.totalRecords != null ? this.totalRecords : records.length
87        };
88    }
89});
Note: See TracBrowser for help on using the repository browser.