0
Я пытаюсь показать маркеры на карте в открытом слое 3. Ниже приведен код, который я использовал. Может ли кто-нибудь помочь мне найти проблему, поскольку на данной позиции не отображается значок.Как показать маркер в Open layer 3
var app = angular.module('Openlayers', []);
//The list of points to be connected
var dataSource1 = [{
"title": 'Duero',
"lat": '40.480243',
"lng": '-3.866172',
"description": 'This is Duero'
}, {
"title": 'Reyes Catolicos',
"lat": '49.47806',
"lng": '-1.870937',
"description": 'This is Reyes Catolicos'
}, {
"title": 'Guadarrama',
"lat": '58.478998',
"lng": '-2.878755',
"description": 'This is Guadarrama'
}];
var defaultIconPath = 'images/location.jpg';
var centerPosition = dataSource1[1];
var vehicleIconpath = 'images/vehicle.ico';
Я использовал ниже вызова для вызова метода:
$scope.populateMarkers($scope.dataPoints, defaultIconPath);
$scope.populateMarkers = function (data, iconPath) {
var features = [];
angular.forEach(data, function (value, key) {
debugger;
var iconFeature = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.transform([value.lng, value.lat], 'EPSG:4326',
'EPSG:3857'))
});
var iconStyle = new ol.style.Style({
image: new ol.style.Icon(({
anchor: [0.5, 46],
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',
opacity: 0.75,
src: iconPath
}))
});
iconFeature.setStyle(iconStyle);
features.push(iconFeature);
});
var vectorSource = new ol.source.Vector({
features: features
});
var vectorLayer = new ol.layer.Vector({
source: vectorSource
});
map.addLayer(vectorLayer);
}
Код сам по себе уместен. Первой идеей является «iconPath». Вы даже инициализировали его? Попробуйте удалить его, чтобы увидеть, отображается ли маркер по умолчанию. А также попробуйте масштабирование для всего мира. возможно, согласны. –
Да, у меня есть инициализированный путь значка. В отладке я это вижу. Но все же я попытался удалить это, но он также не отображал значок по умолчанию. Я изменил вопрос более подробно – user1770461