четверг, 25 мая 2017 г.

Вращение метки на Яндекс карте, созданной в виде полигона SVG

Для создания метки на карте в виде полигона (или более сложной векторной фигуры) можно использовать SVG и вращать эту метку с использованием функции rotate() CSS3-трансформации. Пример использования этого подхода я разместил на jsbin.com: Yandex maps js API Placemark polygon rotation

пятница, 18 ноября 2016 г.

Использование стилей MapInfo Professional в geoserver

В MapInfo Professional можно создать слой и добавить геометрические объекты типа точек, полилиний и полигонов с индивидуальными стилями. После экспорта слоя в базу данных Oracle утилитой EasyLoader индивидуальные стили каждой записи содержатся в колонке MI_STYLE в виде строк, а геометрические объекты типа MDSYS.SDO_GEOMETRY – в колонке GEOLOC. У точек в колонке MI_STYLE могут быть значения в формате "Symbol (shape, color, size)", у полилиний – "Pen (width, pattern, color)" и у полигонов – "Pen (width, pattern, color) Brush (pattern, forecolor, backcolor)".
Для стиля символа я использовал набор "Символы MapInfo 3.0", из которого выбрал номера символов с 32 по 37, а также 49 и 50.
Исходный слой в MapInfo Professional выглядит так:
Geoserver генерирует изображение слоя из хранилища Oracle Spatial с использованием созданного универсального стиля SLD, содержащего три правила для каждого типа геометрических объектов:
Архив со стилем можно скачать по ссылке: test.sld.zip. В нём реализован разбор строки MI_STYLE и заполнение значений следующих параметров:
<CssParameter name="fill"/>
<CssParameter name="stroke"/>
<CssParameter name="stroke-width"/>
<WellKnownName/>
<Size/>
<Rotation/>

Можно было добавить подписи к геометрическим объектам, но тогда стиль перестанет быть универсальным, так как потребуется указать имя колонки, содержащей подписи.