изменение внешнего вида feature.vector в openlayers - PullRequest
3 голосов
/ 10 августа 2011

Я перевожу свой код с использования слоя маркера на векторный слой. У меня проблемы с отображением маркеров на карте в виде класса Feature.Vector (до того, как я использовал просто класс Feature).

В частности, я не могу понять, как отобразить каждую функцию с выбранным отдельным изображением. Я видел несколько примеров того, как изменить стиль объекта в целом, используя карты стилей, но я не видел способа напрямую установить изображение объекта.

Кажется, это простая проблема, но я пока не нашел решения. В настоящее время я пытаюсь использовать свойство стиля:

var feature = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(ll.lon, ll.lat), {externalGraphic: "http://www.openlayers.org/dev/img/marker.png"}); 

Однако, это просто приводит к обычному значку по умолчанию (оранжевый круг).

Настройка data.icon функции и создание маркера одинаково не работает.

Заранее спасибо!

1 Ответ

7 голосов
/ 11 августа 2011

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

var style = OpenLayers.Util.extend({
    externalGraphic : "${icon}",
    pointRadius     : 15
}, OpenLayers.Feature.Vector.style['default']);

var layer   = new OpenLayers.Layer.Vector("Simple Geometry", { style: style }),
    point   = new OpenLayers.Geometry.Point(ll.lon, ll.lat),
    feature = new OpenLayers.Feature.Vector(point, { icon: "icon.png" });

layer.addFeature(feature);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...