Масштабируемые знаки в OpenLayers
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 26 сен 2011, 15:51
- Репутация: 0
Масштабируемые знаки в OpenLayers
День добрый! Кто знает подскажите, как в OL сделать размер OpenLayers.Feature.Vector объекта зависимым от текущего масштаба карты, т.е. масштабируемым? В свойствах я такого параметра не нашел.
Последний раз редактировалось awonderv 16 июл 2012, 14:42, всего редактировалось 1 раз.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Масштабируемые знаки в OpenLayers
Не понял вопроса. Поясните на примере как это должно выглядеть.
[ Сообщение с мобильного устройства ]
[ Сообщение с мобильного устройства ]
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 26 сен 2011, 15:51
- Репутация: 0
Re: Масштабируемые знаки в OpenLayers
Спасибо за ответ. Попробую на пальцах объяснить: допустим есть фигура, при 17 зуме ее размеры 20*20px, при 16-18*18px и т.д. При 12 зуме объект ваще не показывается. Нечто подобное я видел на MapServer, когда можно создавать стили отрисовки условых знаков для каждого из масштабов. Пока мне видется только одно решение-JS функция обновляющая стили обыектов. Что вы посоветуете?
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Масштабируемые знаки в OpenLayers
Посоветую определить функция, возвращающую значение externalGraphic, внутри контекста объекта OpenLayers.Style. По аналогии.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 26 сен 2011, 15:51
- Репутация: 0
Re: Масштабируемые знаки в OpenLayers
Я ошибся в вопросе. Объект типа OpenLayers.Feature.Vector. К несчастью он принимает простой словарь, а не OpenLayers.Style в качестве стиля
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 26 сен 2011, 15:51
- Репутация: 0
Re: Масштабируемые знаки в OpenLayers
Я добавляю символ так:
Код: Выделить всё
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
Понятно, а почему вы не хотите использовать объект Style на уровне слоя вместо определения стилей в отделности для каждой фичи? В любом случае нужно отлавливать событие изменения масштаба и в зависимости от него изменять ссылку на изображение.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 26 сен 2011, 15:51
- Репутация: 0
Re: Масштабируемые знаки в OpenLayers
Я так понимаю, если определять стиль на уровне слоя, то он будет применен ко всем объектам, а они у меня должны иметь разные маркеры.
- Denis Rykov
- Гуру
- Сообщения: 3376
- Зарегистрирован: 11 апр 2008, 21:09
- Репутация: 529
- Ваше звание: Author
- Контактная информация:
Re: Масштабируемые знаки в OpenLayers
Всё верно, но можно же, например, определить значение свойства стиля externalGraphic внутри объекта context. То есть в этом случае можно, например, сделать так чтобы определялся текущий масштаб, считывалось какое-то атрибутивное поле фичи и на основе этих данных вычислялся путь до externalGraphic.
Spatial is now, more than ever, just another column- The Geometry Column.
-
- Интересующийся
- Сообщения: 15
- Зарегистрирован: 26 сен 2011, 15:51
- Репутация: 0
Re: Масштабируемые знаки в OpenLayers
Denis Rykov спасибо за ответы, я принял решение отрисовывать все с помощью mapnik
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость