WFS server error

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
2k.sq!
Новоприбывший
Сообщения: 5
Зарегистрирован: 04 май 2009, 12:55
Репутация: 0

WFS server error

Сообщение 2k.sq! »

Не могу сделать запрос по координатам. Помогите найти ошибку.

Код: Выделить всё

var ms_typename = 'land';
var ms_propertyName = 'KN_FIND';
var s_filter = 
	"<Filter>" +
		"<BBOX>" +
		"<PropertyName>" + 
			ms_propertyName + 
		"</PropertyName>"
		"<Box srsName='EPSG:'4326'>" +
			"<coordinates>"+x1+","+y1+" "+x2+","+y2+"</coordinates>" +
		"</Box>" +
		"</BBOX>" +
	"</Filter>";


new OpenLayers.Ajax.Request(url, {
	method: 'get',
	parameters: {
		version : 	"1.0.0",
		service : 	"WFS",
		request : 	"GetFeature",
		typename : 	ms_typename,
		filter : 	s_filter
	},
	onSuccess: function(transport){
		var response = transport.responseText || null;
		if (response != null) {
			var gml = new OpenLayers.Format.GML();
			var features = gml.read(response);
				alert('done' + response);
			if (features.length > 0) {
				var j = 0;
				for (j = 0; j < features.length; j++) {
					vectorLayer.addFeatures([new OpenLayers.Feature.Vector(features[j].geometry)]);
				}
				showSelectedLayer = true;
				map.addLayer(vectorLayer);
			}
		}
	},
	onFailure: function(){
		alert('failure');
	}
});
Честно говоря я вообще не понимаю, зачем тут нужен <PropertyName>, ну до ладно. Map и WFS настроены нормально, потому что аналогичный запрос с <PropertyIsEqualTo> работает нормально.

Сюда, mapserver.org/ogc/filter_encoding.html, можете не отправлять, там мало того, что с ошибкой написано, так ещё и нет толкового описания.

PS: Пробовал без PropertyName, тоже выдает аналогичную ошибку, но ругается уже на весь фильтр.
Вложения
1.gif
1.gif (14.34 КБ) 4689 просмотров
Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: WFS server error

Сообщение Mavka »

Вот код, который формирует GeoServer:

Код: Выделить всё

<ogc:Filter>
  <ogc:BBOX>
    <ogc:PropertyName>the_geom</ogc:PropertyName>
    <gml:Box srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
       <gml:coordinates>-75.102613,40.212597 -72.361859,41.512517</gml:coordinates>
    </gml:Box>
  </ogc:BBOX>
</ogc:Filter> 
В PropertyName поле с геометрией, т.е. то что будет проверятся на попадание в BBOX.

Для ваших целей может подойти более высокоуровневый API: SelectFeature.

Может быть у вас в srsName лишний апостроф.
лангольеры под окном жрали время ом-ном-ном
2k.sq!
Новоприбывший
Сообщения: 5
Зарегистрирован: 04 май 2009, 12:55
Репутация: 0

Re: WFS server error

Сообщение 2k.sq! »

"Поспешишь, людей насмешишь" (С)

Код: Выделить всё

var s_filter = 
   "<Filter>" +
      "<BBOX>" +
      "<PropertyName>" + 
         ms_propertyName + 
      "</PropertyName> [color=#FF0000]+[/color]"
      "<Box srsName='EPSG:4326'>" +
         "<coordinates>"+x1+","+y1+" "+x2+","+y2+"</coordinates>" +
      "</Box>" +
      "</BBOX>" +
   "</Filter>";
Ответить

Вернуться в «Веб-картография»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость