OpenLayers нужен совет о том, как рисовать объекты карты, которые можно визуально выделить

#openlayers

#openlayers

Вопрос:

Я относительный новичок в OpenLayers. Мое приложение включает в себя отображение отдельных точек GPS на карте. До сих пор я делал это с OpenLayers.Извлеките.Векторные объекты, добавленные в векторный слой с помощью addFeatures, и векторный слой имеет стиль. Кроме того, каждая из точек GPS должна иметь некоторые метаданные, такие как имя, дата и время и т. Д., Для этого я использую атрибуты. Пока это работает нормально для простого отображения точек.

Но одно из моих требований — это возможность иногда визуально выделять один конкретный объект, возможно, изменяя его цвет. Я не могу понять, как это сделать с моим текущим подходом. Должен ли я использовать маркеры вместо этого? Могут ли маркеры также иметь атрибуты?

Спасибо?

Ответ №1:

Я рекомендую заглянуть в StyleMaps . Там вы можете определить, как объект должен выглядеть в разных состояниях, например «выбран». Стиль может быть задан разными цветами, размерами или значками.

Когда вы выбираете объект либо с помощью действия пользователя, либо программно, объекты будут соответствовать вашему «стилю выбора»

Комментарии:

1. Спасибо, сейчас читаю StyleMaps. Я не хочу менять стиль объекта только при наведении на него курсора мыши — я также захочу изменить объект, когда событие происходит в другом месте dom, например, при наведении курсора на что-то другое. Мне будет интересно узнать, может ли он поддерживать это требование. еще раз спасибо.

2. Хорошо, я думаю, что хорошо использовать этот подход, а затем сосредоточиться на том, чтобы «синхронизировать выбор» между вашей другой разметкой и функциями OpenLayers. Таким образом, вы разделяете функциональность и позволяете OL работать с такими деталями, как отмена выбора и тому подобное.