Страница 1 из 1
					
				loadURL в OL не возвращает ответ (missing)
				Добавлено: 15 апр 2010, 21:35
				 At0m
				Всем привет.
Задумался над поиском объектов (улица+дом) при помощи WFS на базе MapServer.
Столкнулся с проблемой - если указать просто номер дома, то возвращается нормальный ответ от wfs, если задать еще и улицу (русский 1251) - ответ один - missing... 
Самое интересное, что если ввести в браузере эту строчку, ответ от wfs приходит абсолютно замечательный...
Не могу понять, что же мне делать - куда копать ?
WFS настроен на ср1251
ХЕЛП НИД )
			 
			
					
				Re: loadURL в OL не возвращает ответ (missing)
				Добавлено: 15 апр 2010, 21:52
				 Denis Rykov
				А OL какой запрос посылает?
Если дело в кодировках, попробуйте encodeURIComponent().
			 
			
					
				Re: loadURL в OL не возвращает ответ (missing)
				Добавлено: 15 апр 2010, 22:35
				 At0m
				Пробовал, не помогает )
Запрос обычный - <Filter><AND>Условия с русскими буквами</AND></Filter>
Удивительно то, что этот же запрос через браузер работает, а через loadURL - неа...
			 
			
					
				Re: loadURL в OL не возвращает ответ (missing)
				Добавлено: 16 апр 2010, 09:20
				 Mavka
				Откройте firebug и посмотрите какой запрос уходит на UMN. Еще лучше, если скопируете его сюда.
			 
			
					
				Re: loadURL в OL не возвращает ответ (missing)
				Добавлено: 16 апр 2010, 13:08
				 At0m
				/cgi-bin/mapserv?map=../map.map&SERVICE=WFS&VERSION=1.0.0&REQUEST=getfeature&typename=building&Filter=<Filter><AND><PropertyIsEqualTo><PropertyName>StreetName</PropertyName><Literal>Гагарина</Literal></PropertyIsEqualTo><PropertyIsEqualTo><PropertyName>NAME</PropertyName><Literal>8</Literal></PropertyIsEqualTo></AND></Filter>
в браузере дает корректный ответ... через запрос loadURL - ответ missing...
			 
			
					
				Re: loadURL в OL не возвращает ответ (missing)
				Добавлено: 16 апр 2010, 18:06
				 Mavka
				Внешне все правильно. Включите отладочные сообщения:
Код: Выделить всё
MAP
   ...
   CONFIG "MS_ERRORFILE" "d:\work\dbg.txt"
   DEBUG 5
   ...
END
Может там какие ошибки всплывут?
 
			
					
				Re: loadURL в OL не возвращает ответ (missing)
				Добавлено: 16 апр 2010, 18:43
				 At0m
				Любопытно.. там по-сути сплошные ошибки )
Код: Выделить всё
[Fri Apr 16 19:39:07 2010].568769 msEvalRegex(): Regular expression error. String failed expression test.
[Fri Apr 16 19:39:07 2010].569004 msyyparse(): Expression parser error. syntax error
[Fri Apr 16 19:39:07 2010].569014 msEvalExpression: Expression parser error. Failed to parse expression:  ("" = "Гагарина")  AND  ( = 10)
[Fri Apr 16 19:39:07 2010].569123 msyyparse(): Expression parser error. syntax error
[Fri Apr 16 19:39:07 2010].569128 msEvalExpression: Expression parser error. Failed to parse expression:  ("" = "Гагарина")  AND  ( = 10)
[Fri Apr 16 19:39:07 2010].569178 msyyparse(): Expression parser error. syntax error
[Fri Apr 16 19:39:07 2010].569183 msEvalExpression: Expression parser error. Failed to parse expression:  ("" = "Гагарина")  AND  ( = 10)
[Fri Apr 16 19:39:07 2010].569219 msyyparse(): Expression parser error. syntax error
[Fri Apr 16 19:39:07 2010].569224 msEvalExpression: Expression parser error. Failed to parse expression:  ("" = "Гагарина")  AND  (8. = 10)
[Fri Apr 16 19:39:07 2010].569383 msyyparse(): Expression parser error. syntax error
[Fri Apr 16 19:39:07 2010].569388 msEvalExpression: Expression parser error. Failed to parse expression:  ("" = "Гагарина")  AND  (11.1 = 10)
[Fri Apr 16 19:39:07 2010].569420 msyyparse(): Expression parser error. syntax error
[Fri Apr 16 19:39:07 2010].569425 msEvalExpression: Expression parser error. Failed to parse expression:  ("" = "Гагарина")  AND  (15. = 10)
[Fri Apr 16 19:39:07 2010].569446 msyyparse(): Expression parser error. syntax error
[Fri Apr 16 19:39:07 2010].569451 msEvalExpression: Expression parser error. Failed to parse expression:  ("" = "Гагарина")  AND  (15. = 10)
[Fri Apr 16 19:39:07 2010].569501 msyyparse(): Expression parser error. syntax error
...................................
[Fri Apr 16 19:39:07 2010].654882 msEvalExpression: Expression parser error. Failed to parse expression:  ("" = "Гагарина")  AND  (10.1 = 10)
[Fri Apr 16 19:39:07 2010].654904 msyyparse(): Expression parser error. syntax error
[Fri Apr 16 19:39:07 2010].654909 msEvalExpression: Expression parser error. Failed to parse expression:  ("" = "Гагарина")  AND  (6.1 = 10)
[Fri Apr 16 19:39:07 2010].654989 msyyparse(): Expression parser error. syntax error
[Fri Apr 16 19:39:07 2010].654993 msEvalExpression: Expression parser error. Failed to parse expression:  ("" = "Гагарина")  AND  (2.1 = 10)
[Fri Apr 16 19:39:07 2010].655071 msyyparse(): Expression parser error. syntax error
[Fri Apr 16 19:39:07 2010].655075 msEvalExpression: Expression parser error. Failed to parse expression:  ("" = "Гагарина")  AND  (4.1 = 10)
[Fri Apr 16 19:39:07 2010].655097 msyyparse(): Expression parser error. syntax error
[Fri Apr 16 19:39:07 2010].655101 msEvalExpression: Expression parser error. Failed to parse expression:  ("" = "Гагарина")  AND  ( = 10)
[Fri Apr 16 19:39:07 2010].655153 msQueryByRect(): Search returned no results. No matching record(s) found.
[Fri Apr 16 19:39:07 2010].655239 mapserv request processing time (msLoadMap not incl.): 0.087s
[Fri Apr 16 19:39:07 2010].655260 msFreeMap(): freeing map at 0x9a571d0.
большинство домов в шейп-файле не пронумеровано и не  прописана улица...
 
			
					
				Re: loadURL в OL не возвращает ответ (missing)
				Добавлено: 16 апр 2010, 19:34
				 Mavka
				Перечитал топик. Если вручную работает, то как бы сама напрашивается проблема с кодировками.
Попробуйте сравнить запросы от OpenLayers и "вручную через браузер" в логах Apache
\OSGeo4W\apache\logs\access.log
\ms4w\apache\logs\access.log
			 
			
					
				Re: loadURL в OL не возвращает ответ (missing)
				Добавлено: 17 апр 2010, 08:10
				 At0m
				Разница, кажется, вот в чем - ул. "Талвира" запрашивается OL таким словом:
%D0%A2%D0%B0%D0%BB%D0%B2%D0%B8%D1%80%D0%B0
Браузер, видимо, перекодирует это в такое слово: 
%D2%E0%EB%E2%E8%F0%E0
Второе слово, например, получается в результате перекодировки ф-цией urlencode() в php, как перевести в яваскрипте в такое слово - пока загадка для меня )
			 
			
					
				Re: loadURL в OL не возвращает ответ (missing)
				Добавлено: 17 апр 2010, 13:27
				 Mavka
				То что выдал OpenLayers - Талвира. Та же "Талвира", только в кодировке UTF-7.
Окончательное преобразование в Q.P. (Quoted Printable) и браузер и OL провели одинаково.
Смотрите как вы считываете ввод пользователя. Это уже не ГИС, а обычное веб-программирование.
			 
			
					
				Re: loadURL в OL не возвращает ответ (missing)
				Добавлено: 17 апр 2010, 14:13
				 At0m
				После доооолгих ковыряний, случайно наткнулся на интересную функцию: 
rawurlencode на jscript...
Ссылка для столкнувшихся с проблемой - 
http://hghltd.yandex.net/yandbtm?qtree= ... vs-ajax%2F
Длинная, потому что оригинальная страница у меня не открылась (
http://webiteam.ru/2009/04/cp1251-vs-ajax/)
Всем спасибо, в который раз убеждаюсь - Кто ищет, тот найдет 

 Все заработало, хотя...
Задумываюсь о переводе TAB-файлов мапинфо в утф-8 - ни у кого нет соображений, как это можно сделать НЕ вручную ?