Сообщения

Сообщения за 2015

Как установить лаунчер Synapse в Debian Jessie

Изображение

Practical OpenLayers 3 & Leaflet

GeoWebCache в Geoserver. Неочевидное

Изображение
Уже раза 3 наступал на эти грабли, вот и решил заметку написать.
Суть проблемы - на странице предварительного просмотра таловых кешей кеша не видно, хотя кеш есть.



В ответ прилетает 404 Bad Request. Сервис не доступен.

Это всё потому, что страница предварительного просмотра работает по протоколу WMS-C, который по умолчания отключён.
Такие дела.


пример на Leaflet с большим количеством подложек

Ещё и поиск есть - тынц
Изображение
CSS-стили это очень удобно. Только вот стиль описанный ниже выдаёт легенду с шестью условными знаками. Вернее это полученный SLD-стиль содержит 6 правил, вот и получается 6 условных знаков, 3 из них дублируются.

*[@scale < 10000] {
  label: [cadnumber];
  font-family: Lucida Sans Unicode;
  font-fill: black;
  font-size: 11;
  halo-color: white;
  halo-radius: 2;
}
/*
 * @title Учтённые земельные участки.
 */
[state = 'Учтенный'] {
  fill: green;
  stroke: black;
  stroke-width: 0.3;
}
/*
 * @title Ранее учтённые земельные участки.
 */
[state = 'Ранее учтенный'] {
  fill-opacity: 0.5;
  fill: green;
  stroke: black;
  stroke-width: 0.3;
}
/*
 * @title Временные земельные участки.
 */
[state = 'Временный'] {
  fill-opacity: 0.5;
  fill: grey;
  stroke: black;
  stroke-width: 0.3;
}

Если важна легенда, то придётся делать так как написано ниже:

/*
 * @title Учтённые земельные участки.
 */
[state = 'Учтенный'] {
  fill: green;
  stroke: black;
  stroke-width: 0.3;
  label: [cadnumber];
  font-fami…

Geoserver, CSS plugin и кодировки SLD

Изображение
Стили в Geoserver оформляются в SLD-файлах. Это XML, огромный XML. Написать это руками тяжело, поэтому толковые парни написали модуль для более простого создания стилей в формате CSS. Вы пишите CSS, а модуль из него делает SLD.
Только вот есть одна проблема - получаемые от модуля SLD сохраняются в ANSI (Windows-1251), в случае если Geoserver работает на Windows, и если вы используете хоть один символ не латинский, то ваш стиль не работает. Это потому, что Но в тексте SLD указано <?xml version="1.0" encoding="UTF-8"?>.
Что же делать? Правильно, менять руками на <?xml version="1.0" encoding="Windows-1251"?>.
На Debian-сервере такого замечено не было. :)


Ссылки по Geoserver'у

Build a RESTful API using Node and MongoDB | Code for geek

Использование внешнего каталога данных Geoserver на Linux (Debian)

Суть задачи такова - использовать инстанс Geoserver'а работающего на Linux, а data-директория, да ещё и с очень большим тайловым кешем (0,5 Тб), находится на другой  машине, работающей под управлением Windows с Active Directory.
Разрешить всё пользователю из Active Directory доступ на data-директорию (D:\geoserverdata) через общий доступ.В Linux создать директорию (например, /home/filippov/geoserverdata/) в которую будет примонтировано содержимое из сети.Сделать Linux-пользователя, от которого запускается Geoserver, владельцем этой директории. У меня он работает в Tomcat 8 и пользователь (и группа) называется tomcat8.Узнать UID и GID пользователя tomcat8: cat /etc/passwd | grep tomcat8. Вывод консоли: tomcat8:x:118:125::/usr/share/tomcat8:/bin/false. Здесь первая цифра будет UID, GID вторая.Примонтировать общую директорию в Linux с указанием владельца (UID,GID) её содержимого: # mount -t cifs //windows.server.and.domain/geoserverdata/ /home/filippov/geoserverdata/ -o user="act…

Интересное в сети

Geoserver и дата/время

Изображение
Решить проблему можно с установкой системной переменой JVM так -Duser.timezone=GMT Можно в catalina.sh или bat 
А можно через виндовый GUI, в зависимости от варианта запуска.

qvertex. Описание харакетных точек

Изображение

Работа с земельным комитетом деп. архитектуры г. Томска

Изображение
Для землеустроителей г. Томска существуют геоинформационный ресурс содержащий много полезной пространственной информации, например, охранные зоны. По каждому объекту можно получить список координат в СК г. Томска. Список этот обычный текст с разделителями - CSV. Контуры (как внешние так и внутренние) отделены пустой строкой. Я написал небольшой скрипт для браузера, который позволяет из таких CSV сформировать стандартное WKT-описание двух типов: POLYGON (может содержать внутренние контуры) и MULTIPOLYGON (только внешние). Затем при помощи плагина QuickWKT в QGIS быстро создать объект.
Можно и в обратном порядке - из WKT сделать CSV-описание для так называемого XY-файла для земельного комитета.
Вот кино про это (лучше смотреть на ютюбе)

gvSIG 3D (coming soon)

Изображение

Владимир Агафонкин - "Как работают современные интерактивные карты на We...

Изображение

Сталик: Манты

Изображение

XML Росреестра в GeoJSON

Изображение

QVertex - автоматизация землеустройства. Новая возможность

Изображение
Сделал описание границ ЗУ для схемы размещения земельного участка (СРЗУ).
Поддерживаются все виды геометрий ЗУ - полигоны и мультполигоны.
Пример на картинке ниже.
Решил использовать окошко используемое при создании выноски геоданных, как и соответствующий пункт меню :)


Геопорталы на заказ

Изображение
Делаем сайты с картографическим материалом.

Открытые исходные коды - https://github.com/filippov70/roadmaper
Серверная часть: NodeJS, Geoserver, GeoWeb Cache
Клинет: OpenLayers 3, Bootstrap, jQuery







Получение авторизации на Geoserver из скрипта на JavaScript

Изображение
Суть задачи такова - есть ресурс на котором логинится пользователь. Ресурс этот использует данные с Geoserver'а который расположен на другом домене (порту). Да, тот самый cross-origin.Для начала нужно разрешить CORS на сервере приложений в котором работает Geoserver (здесь web.xml для Tomcat 8).  <filter>
      <filter-name>CorsFilter</filter-name>
      <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
      <init-param>
        <param-name>cors.allowed.origins</param-name>
        <param-value>*</param-value>
      </init-param>
      <init-param>
        <param-name>cors.allowed.methods</param-name>
        <param-value>GET,POST,OPTIONS</param-value>
      </init-param>
      <init-param>
        <param-name>cors.allowed.headers</param-name>
        <param-value>Authorization,Access-Control-Allow-Origin,Access-Control-Allow-Credentials…