OpenLayers: начало работы

Обсуждение материалов сайта: вопросы, замечания, предложения
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Статьи: 33
Проекты: 9
Репутация: 526
Ваше звание: Author
Контактная информация:

Re: OpenLayers: начало работы

Сообщение Denis Rykov » 07 май 2013, 06:09

MapServer отвечает и так всем одинаково. Давайте сначала выясним:
1. В каком формате вы запрашиваете данные с сервера, в application/vnd.ogc.gml?
2. Если так и в map-файле выставлена кодировка, то в xml, приходящем от сервера первая строка должна содержать эту же кодировку в виде (в данном примере utf-8): <?xml version="1.0" encoding="utf-8"?>. У вас так?
Spatial is now, more than ever, just another column- The Geometry Column.

psyhosis
Интересующийся
Сообщения: 22
Зарегистрирован: 05 май 2013, 20:41
Репутация: 1

Re: OpenLayers: начало работы

Сообщение psyhosis » 14 май 2013, 09:48

Доброго времени суток!
С сервера в 1251 и данные отображаются в тайлах правильно (и давно).
Эти же данные (только расширенные) запрашиваются методом GetFeatureInfo, все настроено по примерам на этом ресурсе. Вывод в text/html. header, footer, template сохранены в ansi (notepad++) формате.
в header явно указано content="text/html; charset=Windows-1251" в тэге meta.
форматы менял, в console log при выводе в любом формате (text/plain, либо gml, или html) в хроме данные читаются, в файрфоксе нет.
Запрос на сервере что от хрома что от файрфокса (в одну и ту же точку карты) не отличается.
Если запрос скопировать в адресную строку, что хром, что файрфокс отображают правильно, кодировку показывает 1251 (автоматом определенную).
Если только результат запроса приходит в окно, то данные правильно выводит только хром.
Такое ощущение, что файерфоксу нужен только UTF-8.
Разными методами пробовал в javascript перекодировать данные от сервера из 1251 в UTF-8 (какие нашел) - только текст из файлов header, footer, template перекодируется, данные от сервера не хотят и все тут.
сколько не ковырялся, так и не нашел информации о том, может ли сам mapserver заниматься перекодированием данных, было бы вообще отлично, если бы он смог это делать. Как отловить ответ от сервера и обработать iconv-ом в php тоже пока не придумал.

psyhosis
Интересующийся
Сообщения: 22
Зарегистрирован: 05 май 2013, 20:41
Репутация: 1

Re: OpenLayers: начало работы

Сообщение psyhosis » 16 май 2013, 20:26

ну не ужели никто не налетал на таки грабли?

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

Re: OpenLayers: начало работы

Сообщение Denis Rykov » 17 май 2013, 11:23

Может дело в кодировке страницы на которой размещена карта. Дайте ссылку на свой пример.
Spatial is now, more than ever, just another column- The Geometry Column.

psyhosis
Интересующийся
Сообщения: 22
Зарегистрирован: 05 май 2013, 20:41
Репутация: 1

Re: OpenLayers: начало работы

Сообщение psyhosis » 11 сен 2013, 10:17

https://rodionovo.tomsk.ru/map.php это в формате UTF
https://rodionovo.tomsk.ru/map1251.php это в формате 1251
https://rodionovo.tomsk.ru/maputf.php это в формате с данными ERSI Shape dbf, сконверченной QGIS в UTF.
дело именно в кодировке. При чем походу изначально она не 1251, а 1252 походу пьесы. Странно что названия улиц мапсервер берет с параметром ENCODING CP1251 и нормально отображает.
после перекодировки Shape формата в него же только UTF QGIS-ом кирилика где обрезалась где попортилась.
короче беда-беда, незнаю что и делать то тепрь. Вот в базу данных как бы слить все ... чтобы ще и редактор с базой прямо работал, вот бы было счастье!

bim2010
Гуру
Сообщения: 952
Зарегистрирован: 27 янв 2009, 22:57
Статьи: 1
Проекты: 2
Репутация: 241

Re: OpenLayers: начало работы

Сообщение bim2010 » 11 сен 2013, 11:08

после перекодировки Shape формата в него же только UTF QGIS-ом кирилика где обрезалась где попортилась. короче беда-беда, незнаю что и делать то тепрь.
Попробуйте это сделать не с помощью QGIS.
Откройте шейп в CP1251 и увеличьте размер полей, например в 2 раза.
Откройте файл с расширением dbf в LibreOffice Calc и сохраните его в кодировке UTF8.
Создайте файл одноименный с шейп-файлом с расширением *.cpg, в котором будет написано:
65001
Для проверки откройте файл в QGIS.

psyhosis
Интересующийся
Сообщения: 22
Зарегистрирован: 05 май 2013, 20:41
Репутация: 1

Re: OpenLayers: начало работы

Сообщение psyhosis » 11 сен 2013, 12:04

bim2010 писал(а): Откройте шейп в CP1251 и увеличьте размер полей, например в 2 раза.
вот про это не понял, чем и как, можно поподробнее?
bim2010 писал(а):Создайте файл одноименный с шейп-файлом с расширением *.cpg, в котором будет написано:
65001 Для проверки откройте файл в QGIS.
это где то слышал, спасибо, попробую!

DBF commander-ом я конвертил в UTF, не помогло. Он вообще какой то странный, делашь перекодировку ANSI->UTF и потом UTF->ANSI и получается что то страшное, вообще ве символы раскривущие.

bim2010
Гуру
Сообщения: 952
Зарегистрирован: 27 янв 2009, 22:57
Статьи: 1
Проекты: 2
Репутация: 241

Re: OpenLayers: начало работы

Сообщение bim2010 » 11 сен 2013, 12:20

DBF commander :
File\structure\
Увеличиваем значение столбика “ Width”. Ограничение 254 символа для текстовых полей.

psyhosis
Интересующийся
Сообщения: 22
Зарегистрирован: 05 май 2013, 20:41
Репутация: 1

Re: OpenLayers: начало работы

Сообщение psyhosis » 11 сен 2013, 12:55

Вот я лошара то а, точно, база же, хоть и древняя, как мамонт! UTF же двухбайтный! Математик...
Только почему об этом хозяин DBF Comander-а то не в курсе, непонятно, я уж чуть покупать не собрался было...
поля увеличил "с запасом" но в два раза минимум, те который char-овские, тем же (не стал libreoffice 200 мегабайт качать, а то так всем офисов не достанется :) ) QGIS-ом ту же операцию на слое (save as ... в UTF-8) и все получилось! Спасибо большое, bim2010!
Тильки теперь другая беда...

psyhosis
Интересующийся
Сообщения: 22
Зарегистрирован: 05 май 2013, 20:41
Репутация: 1

Re: OpenLayers: начало работы

Сообщение psyhosis » 04 янв 2014, 13:02

Как то забыл я сказать то, короче говоря, теперь в GME (GpsMapEdit) появилась функция сохранения в UTF формате, потом правда опять через GlobalMapper в shape формат переводим - там уже все поля как надо, ничего ручонками ковырять не надо. В ГМЕ, правда, такая функция тоже появилась, но надо лицензию покупать на 2-ю версию. В итоге перевел всю картографию на UTF и осталось только помучаться с перекодированием и кучей софта, но это до покупки лицензии.

Александр2014
Интересующийся
Сообщения: 21
Зарегистрирован: 04 мар 2014, 12:21
Репутация: 0

Re: OpenLayers: начало работы

Сообщение Александр2014 » 27 мар 2014, 08:34

Подскажите пожалуйста, как правильно написать путь к openlayers.js в html
вот в этой строчке

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

 src="http://localhost:8080/apps/openlayers-2.12/OpenLayers.js"></script>
физическое расположение файла

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

D:\ms4w\apps\openlayers-2.12\OpenLayers.js

psyhosis
Интересующийся
Сообщения: 22
Зарегистрирован: 05 май 2013, 20:41
Репутация: 1

Re: OpenLayers: начало работы

Сообщение psyhosis » 27 мар 2014, 08:45

А что написано в сееции DocumentRoot в файле D:\ms4w\Apache\conf\httpd.conf
?
вообще путь к нему должен либо на opanlayers прямо к разработчику смотреть, либо в твою папку его надо класть, но никак не apps, а htdocs

Александр2014
Интересующийся
Сообщения: 21
Зарегистрирован: 04 мар 2014, 12:21
Репутация: 0

Re: OpenLayers: начало работы

Сообщение Александр2014 » 27 мар 2014, 09:31

Спасибо, не знал

psyhosis
Интересующийся
Сообщения: 22
Зарегистрирован: 05 май 2013, 20:41
Репутация: 1

Re: OpenLayers: начало работы

Сообщение psyhosis » 27 мар 2014, 09:54

JavaScript выполняется на стороне пользователя (браузер), поэтому для проверки можно попросить его через браузер и в результате увидеть его код (http://server:port/folder/script.js). А php и cgi (mapserver как раз и есть cgi-приложение) выполняются на стороне сервера. Общаются они между (js и cgi например) собой посредством запросов-ответов по http, для невидимого для пользователя "общения" придумали ajax. Это в общих чертах, для понимания архитектуры :)

Ответить

Вернуться в «Материалы сайта»

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

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