Я пытаюсь добавить создателей на карту 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
});
Спасибо