[OpenLayers-Users] OpenLayers.Ajax.getElementsByTagNameNS ???
Sébastien Geindre
sebastien.geindre at meteo.fr
Wed Mar 28 03:46:27 EDT 2007
Sébastien Geindre a écrit :
> hi everybody...
>
> Who could explain to me the OpenLayers.Ajax.getElementsByTagNameNS
> function ???
>
> I try to parse my own GML polygon structure :
> <gml:FeatureCollection>
> <gml:featureMember>
> <wims:WIMSCAT>
> <wims:CATPolygon>
> <wims:shape_major>
> <gml:Polygon>
> <gml:exterior>
> <gml:LinearRing>
> <gml:coordinates> -2.30,53.80 -2.30,53.80 -1.90,54.20
> -1.50,54.60 -1.30, ..... </gml:coordinates>
> </gml:LinearRing>
> </gml:exterior>
> </gml:Polygon>
> </wims:shape_major>
> <wims:shape_minor>
> <gml:Polygon><gml:exterior><gml:LinearRing>
> <gml:coordinates>2.50,47.10 2.50,47.10 2.50,47.40 2.50,47.60
> 2.60,47.70 2.70,47.70 2.90,47.70 3.00,47.60 3.00,47.40 3.00,47.20
> 3.00,47.10 2.50,47.10 </gml:coordinates>
> </gml:LinearRing></gml:exterior></gml:Polygon>
> </wims:shape_minor>
> ....
>
> with the following mosified code of OL/format/GML.js, but it never goes
> through ....
>
> parseFeature: function(xmlNode) {
> var geom, polygon;
> var p; // [points,bounds]
>
> var feature = new OpenLayers.Feature.Vector();
>
> if (xmlNode.firstChild.attributes &&
> xmlNode.firstChild.attributes['fid']) {
> feature.fid = xmlNode.firstChild.attributes['fid'].nodeValue;
> }
> // match WIMSCAT
> if (OpenLayers.Ajax.getElementsByTagNameNS(xmlNode, this.gmlns,
> "wims", "WIMSCAT").length != 0) {
> var WIMSCAT =
> OpenLayers.Ajax.getElementsByTagNameNS(xmlNode, this.gmlns, "wims",
> "WIMSCAT")[0];
> geom = new OpenLayers.Geometry.MultiPolygon();
>
> if (OpenLayers.Ajax.getElementsByTagNameNS(WIMSCAT,
> this.gmlns, "wims", "CATPolygon").length != 0) {
> var CATPolygon =
> OpenLayers.Ajax.getElementsByTagNameNS(WIMSCAT,this.gmlns, "wims",
> "CATPolygon");
>
> for (var i = 0; i < CATPolygon.length; i++) {
> if
> (OpenLayers.Ajax.getElementsByTagNameNS(CATPolygon, this.gmlns, "wims",
> "shape_major").length != 0) {
> var shape_major =
> OpenLayers.Ajax.getElementsByTagNameNS(CATPolygon,this.gmlns, "wims",
> "shape_major")[0];
> polygon =
> this.parsePolygonNode(shape_major[0],geom);
> geom.addComponents(polygon);
> }
> if
> (OpenLayers.Ajax.getElementsByTagNameNS(CATPolygon, this.gmlns, "wims",
> "shape_minor").length != 0) {
> var shape_minor =
> OpenLayers.Ajax.getElementsByTagNameNS(CATPolygon,this.gmlns, "wims",
> "shape_minor");
> for (var i = 0; i < shape_minor.length; i++) {
> polygon =
> this.parsePolygonNode(shape_minor[i],geom);
> geom.addComponents(polygon);
> }
> }
> }
> }
> } else .....
>
>
My code was wrong....
i should give the right namespace to getElementByTagNameNS !!!
// match WIMSCAT
if (OpenLayers.Ajax.getElementsByTagNameNS(xmlNode, this.wimsns,
"wims", "WIMSCAT").length != 0) {
var WIMSCAT =
OpenLayers.Ajax.getElementsByTagNameNS(xmlNode, this.wimsns, "wims",
"WIMSCAT")[0];
geom = new OpenLayers.Geometry.MultiPolygon();
if (OpenLayers.Ajax.getElementsByTagNameNS(WIMSCAT,
this.wimsns, "wims", "CATPolygon").length != 0) {
var CATPolygon =
OpenLayers.Ajax.getElementsByTagNameNS(WIMSCAT,this.wimsns, "wims",
"CATPolygon");
for (var i = 0; i < CATPolygon.length; i++) {
if
(OpenLayers.Ajax.getElementsByTagNameNS(CATPolygon[i], this.wimsns,
"wims", "shape_major").length != 0) {
var shape_major =
OpenLayers.Ajax.getElementsByTagNameNS(CATPolygon[i],this.wimsns,
"wims", "shape_major")[0];
polygon = this.parsePolygonNode(shape_major,geom);
geom.addComponents(polygon);
}
if
(OpenLayers.Ajax.getElementsByTagNameNS(CATPolygon[i], this.wimsns,
"wims", "shape_minor").length != 0) {
var shape_minor =
OpenLayers.Ajax.getElementsByTagNameNS(CATPolygon[i],this.wimsns,
"wims", "shape_minor");
for (var j = 0; j < shape_minor.length; j++) {
polygon =
this.parsePolygonNode(shape_minor[j],geom);
geom.addComponents(polygon);
}
}
}
}
--
Sébastien Geindre
DPREVI/AERO/DEV
sebastien.geindre at meteo.fr
05 61 07 84 93
More information about the Users
mailing list