Я пытаюсь добавить создателей на карту OpenLayers 3.
Единственный пример, который я нашел, - this один из примеров OpenLayers .
Но в этом примере используется ol.Style.Icon вместо OpenLayers.Marker в OpenLayers 2.
Первый вопрос
Единственное различие заключается в том, что вы должны установить URL-адрес изображения, но это единственный способ добавить маркер?
Также OpenLayers 3, похоже, не содержит маркерных изображений, поэтому имеет смысл, если нет другого способа, кроме ol.Style.Icon
Второй вопрос
Было бы очень приятно, если бы кто-нибудь мог дать мне пример функции добавления маркеров или значков после загрузки карты.
Из того, что я понимаю в этом примере, они создают слой для значка
var iconFeature = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.transform([-72.0704, 46.678], 'EPSG:4326', 'EPSG:3857')),
name: 'Null Island',
population: 4000,
rainfall: 500
});
var iconStyle = new ol.style.Style({
image: new ol.style.Icon(/** @type {olx.style.IconOptions} */ ({
anchor: [0.5, 46],
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',
opacity: 0.75,
src: 'data/icon.png'
}))
});
iconFeature.setStyle(iconStyle);
var vectorSource = new ol.source.Vector({
features: [iconFeature]
});
var vectorLayer = new ol.layer.Vector({
source: vectorSource
});
Затем они устанавливают слой значка, когда они инициализируют карту
var map = new ol.Map({
layers: [new ol.layer.Tile({ source: new ol.source.OSM() }), vectorLayer],
target: document.getElementById('map'),
view: new ol.View2D({
center: [0, 0],
zoom: 3
})
});
Если я хочу добавить много маркеров, мне нужно создать 1 слой для каждого маркера?
Как добавить много меток на слой? Я не могу понять, как эта часть будет выглядеть как
var vectorSource = new ol.source.Vector({
features: [iconFeature]
});
var vectorLayer = new ol.layer.Vector({
source: vectorSource
});
Спасибо