[OSM-dev-fr] OpenLayers.Format.OSM() et récup. user+timestamp sur 1 node.

Sylvain Perrinel sylvain.perrinel at gmail.com
Mer 9 Nov 10:36:20 GMT 2011


Tu peux en effet facilement modifier le fichier OSM.js :

A la ligne 181, tu peux modifier la fonction getNodes comme suit pour
récupérer la version et le timestamp.

getNodes: function(doc) {
182	        var node_list = doc.getElementsByTagName("node");
183	        var nodes = {};
184	        for (var i = 0; i < node_list.length; i++) {
185	            var node = node_list[i];
186	            var id = node.getAttribute("id");
187	            nodes[id] = {
188	                'lat': node.getAttribute("lat"),
189	                'lon': node.getAttribute("lon"),
190	                'node': node,
                        'version': node.getAttribute("version"),
                        'timestamp': node.getAttribute("timestamp")
191	            };
192	        }
193	        return nodes;
194	    },

puis à la ligne 147 dans la création de l'objet vecteur d'OpenLayers,
tu ajoutes ses éléments à la liste des tags :

if (this.checkTags) {
148	                    var result = this.getTags(node.node, true);
149	                    if (node.used && !result[1]) {
150	                        continue;
151	                    }
152	                    tags = result[0];
153	                } else {
154	                    tags = this.getTags(node.node);
155	                }
                        tags['version'] = node.version;
                        tags['timestamp'] = node.timestamp;

156	
157	                var feat = new OpenLayers.Feature.Vector(
158	                    new OpenLayers.Geometry.Point(node['lon'], node['lat']),
159	                    tags);
160	                if (this.internalProjection && this.externalProjection) {
161	                    feat.geometry.transform(this.externalProjection,
162	                        this.internalProjection);
163	                }

Je n'ai pas testé mais cela devrait fonctionner.

Bon courage

2011/11/9 ph ttv <ph.ttv at free.fr>:
> Bonjour à tous,
> Bonjour Didier et merci de m'avoir répondu;
> Avant de mettre les mains dans le cambouis je vais tout de même reposer
> ma question une dernière fois sur la liste des utilisateurs d'Openlayers
> ... sait-on jamais !
>
> @+
> Titivi
>
> Le 08/11/2011 23:57, didier2020 a écrit :
>>
>> javascript je le connais autant que toi perl ....
>> dans ton cas, la meilleure solution est celle que tu maitrise le mieu!
>> bon courage dans ta demarche, c'est interessant comme rendu final
>
> _______________________________________________
> dev-fr mailing list
> dev-fr at openstreetmap.org
> http://lists.openstreetmap.org/listinfo/dev-fr
>



-- 
Sylvain



Plus d'informations sur la liste de diffusion dev-fr