2013-12-20 7 views
0

Как мы можем нарисовать пользовательские фигуры как функции на открытой карте слоев?Как мы можем нарисовать пользовательские фигуры как функции на открытой карте слоев

В нашем проекте мы должны dislpay несколько цветных пользовательских форм (так же, как pushpins) в качестве функций на карте. цвета в фигурах изменяются в соответствии с отображаемыми данными, которые изображены в Feature. скажем, в выпущенном порядке отображается зеленый цвет, а свободный порядок показывает красный , когда эти два находятся в кластере, функция должна быть окрашена в половину зеленого цвета и наполовину красная, изображая, что кластер содержит оба типа заказов.

как это можно сделать?

С уважением Jatin

ответ

0

Для достижения этой цели необходимо

  • прикрепить атрибут к Feature
  • прикрепить стиль для векторного слоя, в котором вы добавляете функцию
  • приложить правила для этот стиль, который проверяет атрибут

exa mple можно найти в витрине: http://demo.gwt-openlayers.org/gwt_ol_showcase/GwtOpenLayersShowcase.html?example=Rule%20Based%20Style

В этом примере к функциям прикреплен случайный атрибут «foo». Основываясь на значении этого атрибута, маркеры окрашиваются (менее 25 = синий, между 25 и 50 = золото, между 50 и 75 зелеными, а еще красный)

Нажмите кнопку «Просмотр источника» в витрине проверьте код.

+0

Да, так мы добавляем функцию кластера. но мой вопрос несколько иной. – user2163450

+0

Да, так мы добавляем функцию кластера. но мой вопрос несколько иной. В принципе, мы либо добавляем внешнюю графику к функции, либо оставляем ее по кругу по умолчанию (из источника, мы можем отформатировать круг), но что, если я хочу нарисовать другой графический объект круга? Я согласен с тем, что мы можем добавить многоугольник и т. Д., Но при увеличении и уменьшении масштаба мы не сохраним его первоначальный размер. Я имею в виду, что форма также будет увеличиваться или уменьшаться. я смотрю на то, чтобы нарисовать фигуру как функцию. Я не могу приложить скриншот, чтобы объяснить вам лучше (репутация низкая) ... – user2163450

+0

, если вы можете предоставить мне свой идентификатор электронной почты, тогда я могу отправить вам скриншот, который даст вам больше ясности о требовании – user2163450