@nat244

Почему readFeatures не читает gml-информацию?

Привет всем. Сервер присылает координаты объекта, но readFeatures не хочет читать gml и возвращает пустой массив. Что я делаю не так? Есть у кого хоть какие-то идеи? Использую openlayers 4.6.4

//got a text  from a request to gis server as below:
var str = '<?xml version="1.0" encoding="UTF-8"?><wfs:FeatureCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:wfs="http://www.opengis.net/wfs/2.0" xmlns="http://www.w3.org/2001/XMLSchema" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gml="http://www.opengis.net/gml" xmlns:gmd="http://www.isotc211.org/2005/gmd" xmlns:mapVHU.rsc.12058="http://www.gisinfo.net/bsd/mapVHU.rsc.12058" numberMatched="1" numberReturned="1" xsi:schemaLocation="http://www.gisinfo.net/bsd/mapVHU.rsc.12058 mapVHU.xsd"> <gml:boundedBy> <gml:Envelope srsName="urn:ogc:def:crs:EPSG:4326"> <gml:lowerCorner>41.02808922 -180.15870228</gml:lowerCorner> <gml:upperCorner>82.01560154 180.06887075</gml:upperCorner> </gml:Envelope> </gml:boundedBy> <wfs:member> <mapVHU.rsc.12058:SYSTEM gml:id="allVHU.9"> <gml:name>ВЫДЕЛЕНИЕ ЛИНЕЙНЫХ</gml:name> <mapVHU.rsc.12058:SYSTEMCode>1000000001</mapVHU.rsc.12058:SYSTEMCode> <gml:LineString srsName="urn:ogc:def:crs:EPSG:4326"> <gml:posList srsDimension="2" count="58"> 43.92811586 45.63285837 43.91771241 45.55451322 43.84148340 45.34714622 43.80674441 45.09444822 43.84967541 44.91506822 43.92780941 44.62431522 43.92499941 44.34742122 43.87101840 43.74673321 43.88635440 43.51159021 43.87947041 43.40681922 43.84722896 43.36282796 43.85090581 43.36418306 43.87214417 43.37795231 43.89952296 43.40357221 43.91278368 43.42997706 43.92479151 43.45814980 43.93508821 43.47985288 43.94980785 43.50694254 43.96791550 43.54702526 43.97443033 43.57746422 43.98643243 43.59882346 44.00585334 43.62000321 44.01833104 43.64275075 44.02412704 43.64545032 44.02758242 43.66669646 44.02509628 43.70285931 44.02410582 43.79336135 44.04966196 43.84050505 44.08608963 43.88658105 44.14628088 43.92243434 44.17613869 43.94777575 44.19335338 43.95549728 44.24353493 44.02750536 44.26770706 44.10141275 44.29641904 44.16546897 44.34186963 44.26883336 44.38990965 44.31490970 44.42471828 44.36705473 44.43238883 44.41278945 44.42675582 44.44787523 44.42546751 44.46989389 44.40656549 44.57422217 44.39542809 44.60976242 44.39963246 44.66451116 44.41165852 44.70935827 44.40991200 44.75382525 44.39559293 44.78485524 44.38560314 44.84055077 44.34979044 44.95503270 44.31666166 45.04203254 44.21718468 45.23173612 44.15116032 45.33297681 44.12446238 45.41820344 44.11970305 45.48074964 44.08822204 45.51087142 43.99643708 45.55871524 43.94313541 45.61438893 43.92811586 45.63285837 </gml:posList> <gml:metaDataProperty> <gml:GenericMetaData> <MapID/> </gml:GenericMetaData> </gml:metaDataProperty> </gml:LineString> </mapVHU.rsc.12058:SYSTEM> </wfs:member> </wfs:FeatureCollection>'            
//parse it in XML (not sure if I need to do it, but with str the result the same
parser = new DOMParser();
XMLt= parser.parseFromString(str, "text/xml");
//see if I get XML right
console.log(XMLt);
//try to parse
var format = new ol.format.GML(); 
var feature = format.readFeatures(XMLt, {featureName:'member',featureProjection: 'EPSG:4326'})
//resulting array is empty
console.log("feature:");
console.log(feature);

//need to get coordinates but can't do it 
var ext = feature[0].getGeometries().getCoordinates();
  • Вопрос задан
  • 24 просмотра
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы