loadURL в OL не возвращает ответ (missing)

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
At0m
Интересующийся
Сообщения: 28
Зарегистрирован: 08 дек 2009, 13:07
Репутация: 0

loadURL в OL не возвращает ответ (missing)

Сообщение At0m » 15 апр 2010, 21:35

Всем привет.
Задумался над поиском объектов (улица+дом) при помощи WFS на базе MapServer.
Столкнулся с проблемой - если указать просто номер дома, то возвращается нормальный ответ от wfs, если задать еще и улицу (русский 1251) - ответ один - missing...

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

WFS настроен на ср1251

ХЕЛП НИД )

Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: loadURL в OL не возвращает ответ (missing)

Сообщение Denis Rykov » 15 апр 2010, 21:52

А OL какой запрос посылает?
Если дело в кодировках, попробуйте encodeURIComponent().
Spatial is now, more than ever, just another column- The Geometry Column.

At0m
Интересующийся
Сообщения: 28
Зарегистрирован: 08 дек 2009, 13:07
Репутация: 0

Re: loadURL в OL не возвращает ответ (missing)

Сообщение At0m » 15 апр 2010, 22:35

Пробовал, не помогает )
Запрос обычный - <Filter><AND>Условия с русскими буквами</AND></Filter>
Удивительно то, что этот же запрос через браузер работает, а через loadURL - неа...

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: loadURL в OL не возвращает ответ (missing)

Сообщение Mavka » 16 апр 2010, 09:20

Откройте firebug и посмотрите какой запрос уходит на UMN. Еще лучше, если скопируете его сюда.
лангольеры под окном жрали время ом-ном-ном

At0m
Интересующийся
Сообщения: 28
Зарегистрирован: 08 дек 2009, 13:07
Репутация: 0

Re: loadURL в OL не возвращает ответ (missing)

Сообщение At0m » 16 апр 2010, 13:08

/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...

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: loadURL в OL не возвращает ответ (missing)

Сообщение Mavka » 16 апр 2010, 18:06

Внешне все правильно. Включите отладочные сообщения:

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

MAP
   ...
   CONFIG "MS_ERRORFILE" "d:\work\dbg.txt"
   DEBUG 5
   ...
END
Может там какие ошибки всплывут?
лангольеры под окном жрали время ом-ном-ном

At0m
Интересующийся
Сообщения: 28
Зарегистрирован: 08 дек 2009, 13:07
Репутация: 0

Re: loadURL в OL не возвращает ответ (missing)

Сообщение At0m » 16 апр 2010, 18:43

Любопытно.. там по-сути сплошные ошибки )

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

[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.
большинство домов в шейп-файле не пронумеровано и не прописана улица...

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: loadURL в OL не возвращает ответ (missing)

Сообщение Mavka » 16 апр 2010, 19:34

Перечитал топик. Если вручную работает, то как бы сама напрашивается проблема с кодировками.
Попробуйте сравнить запросы от OpenLayers и "вручную через браузер" в логах Apache
\OSGeo4W\apache\logs\access.log
\ms4w\apache\logs\access.log
лангольеры под окном жрали время ом-ном-ном

At0m
Интересующийся
Сообщения: 28
Зарегистрирован: 08 дек 2009, 13:07
Репутация: 0

Re: loadURL в OL не возвращает ответ (missing)

Сообщение At0m » 17 апр 2010, 08:10

Разница, кажется, вот в чем - ул. "Талвира" запрашивается OL таким словом:
%D0%A2%D0%B0%D0%BB%D0%B2%D0%B8%D1%80%D0%B0

Браузер, видимо, перекодирует это в такое слово:
%D2%E0%EB%E2%E8%F0%E0

Второе слово, например, получается в результате перекодировки ф-цией urlencode() в php, как перевести в яваскрипте в такое слово - пока загадка для меня )

Аватара пользователя
Mavka
Гуру
Сообщения: 2060
Зарегистрирован: 14 мар 2008, 17:36
Репутация: 9

Re: loadURL в OL не возвращает ответ (missing)

Сообщение Mavka » 17 апр 2010, 13:27

То что выдал OpenLayers - Талвира. Та же "Талвира", только в кодировке UTF-7.
Окончательное преобразование в Q.P. (Quoted Printable) и браузер и OL провели одинаково.
Смотрите как вы считываете ввод пользователя. Это уже не ГИС, а обычное веб-программирование.
лангольеры под окном жрали время ом-ном-ном

At0m
Интересующийся
Сообщения: 28
Зарегистрирован: 08 дек 2009, 13:07
Репутация: 0

Re: loadURL в OL не возвращает ответ (missing)

Сообщение At0m » 17 апр 2010, 14:13

После доооолгих ковыряний, случайно наткнулся на интересную функцию:
rawurlencode на jscript...
Ссылка для столкнувшихся с проблемой -
http://hghltd.yandex.net/yandbtm?qtree= ... vs-ajax%2F

Длинная, потому что оригинальная страница у меня не открылась (http://webiteam.ru/2009/04/cp1251-vs-ajax/)

Всем спасибо, в который раз убеждаюсь - Кто ищет, тот найдет :) Все заработало, хотя...

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

Ответить

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

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

Сейчас этот форум просматривают: Semrush [Bot] и 2 гостя