Масштабируемые знаки в OpenLayers

Mapserver, GeoServer, MapGuide, Google и другое ПО для веб-картографии
Ответить
awonderv
Интересующийся
Сообщения: 15
Зарегистрирован: 26 сен 2011, 15:51
Репутация: 0

Масштабируемые знаки в OpenLayers

Сообщение awonderv »

День добрый! Кто знает подскажите, как в OL сделать размер OpenLayers.Feature.Vector объекта зависимым от текущего масштаба карты, т.е. масштабируемым? В свойствах я такого параметра не нашел.
Последний раз редактировалось awonderv 16 июл 2012, 14:42, всего редактировалось 1 раз.
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Масштабируемые знаки в OpenLayers

Сообщение Denis Rykov »

Не понял вопроса. Поясните на примере как это должно выглядеть.

[ Сообщение с мобильного устройства ]
Spatial is now, more than ever, just another column- The Geometry Column.
awonderv
Интересующийся
Сообщения: 15
Зарегистрирован: 26 сен 2011, 15:51
Репутация: 0

Re: Масштабируемые знаки в OpenLayers

Сообщение awonderv »

Спасибо за ответ. Попробую на пальцах объяснить: допустим есть фигура, при 17 зуме ее размеры 20*20px, при 16-18*18px и т.д. При 12 зуме объект ваще не показывается. Нечто подобное я видел на MapServer, когда можно создавать стили отрисовки условых знаков для каждого из масштабов. Пока мне видется только одно решение-JS функция обновляющая стили обыектов. Что вы посоветуете?
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Масштабируемые знаки в OpenLayers

Сообщение Denis Rykov »

Посоветую определить функция, возвращающую значение externalGraphic, внутри контекста объекта OpenLayers.Style. По аналогии.
Spatial is now, more than ever, just another column- The Geometry Column.
awonderv
Интересующийся
Сообщения: 15
Зарегистрирован: 26 сен 2011, 15:51
Репутация: 0

Re: Масштабируемые знаки в OpenLayers

Сообщение awonderv »

Я ошибся в вопросе. Объект типа OpenLayers.Feature.Vector. К несчастью он принимает простой словарь, а не OpenLayers.Style в качестве стиля
awonderv
Интересующийся
Сообщения: 15
Зарегистрирован: 26 сен 2011, 15:51
Репутация: 0

Re: Масштабируемые знаки в OpenLayers

Сообщение awonderv »

Я добавляю символ так:

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

vectors = new OpenLayers.Layer.Vector("Simple Geometry");
map.addLayers([vectors]);
geometry=new OpenLayers.Geometry.Point(0, 0)
attributes={}
style={graphic:true,
externalGraphic: "points/industry/airport_25k.svg",
graphicWidth: 200,
graphicHeight: 200};
features=[new OpenLayers.Feature.Vector(geometry,attributes,style)]
vectors.addFeatures(features);
Аватара пользователя
Denis Rykov
Гуру
Сообщения: 3376
Зарегистрирован: 11 апр 2008, 21:09
Репутация: 529
Ваше звание: Author
Контактная информация:

Re: Масштабируемые знаки в OpenLayers

Сообщение Denis Rykov »

Понятно, а почему вы не хотите использовать объект Style на уровне слоя вместо определения стилей в отделности для каждой фичи? В любом случае нужно отлавливать событие изменения масштаба и в зависимости от него изменять ссылку на изображение.
Spatial is now, more than ever, just another column- The Geometry Column.
awonderv
Интересующийся
Сообщения: 15
Зарегистрирован: 26 сен 2011, 15:51
Репутация: 0

Re: Масштабируемые знаки в OpenLayers

Сообщение awonderv »

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

Re: Масштабируемые знаки в OpenLayers

Сообщение Denis Rykov »

Всё верно, но можно же, например, определить значение свойства стиля externalGraphic внутри объекта context. То есть в этом случае можно, например, сделать так чтобы определялся текущий масштаб, считывалось какое-то атрибутивное поле фичи и на основе этих данных вычислялся путь до externalGraphic.
Spatial is now, more than ever, just another column- The Geometry Column.
awonderv
Интересующийся
Сообщения: 15
Зарегистрирован: 26 сен 2011, 15:51
Репутация: 0

Re: Масштабируемые знаки в OpenLayers

Сообщение awonderv »

Denis Rykov спасибо за ответы, я принял решение отрисовывать все с помощью mapnik
Ответить

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

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

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