Я работаю над openlayers 3 и хочу реализовать функцию поиска, которая получает название места и позиционирует маркер на карте. Я могу получить координаты, но когда я хочу добавить маркер на карту, я всегда получаю разные места. Маркер входного места не помещается в фактические координаты карты.Невозможно поместить маркер в нужные координаты с помощью openlayers 3
Вот код, на котором я работаю:
function addmarker(lat, long, pointerimgsrc){
var iconFeature = new ol.Feature({
geometry: new ol.geom.Point(ol.proj.transform([lat, long], 'EPSG:4326', 'EPSG:3857')),
name: 'NULL'
});
var iconStyle = new ol.style.Style({
image: new ol.style.Icon(({
anchor: [0.5, 46],
anchorXUnits: 'fraction',
anchorYUnits: 'pixels',
opacity: 0.75,
//src: 'data/icon.png'
src: pointerimgsrc
}))
});
iconFeature.setStyle(iconStyle);
vectorSource = new ol.source.Vector({
features: [iconFeature]
});
vectorLayer = new ol.layer.Vector({
source: vectorSource
});
map.addLayer(vectorLayer);
}// END addmarkerr()
Я надеюсь, что я четко объяснил свою проблему, смотреть вперед для решения. Большое вам спасибо за ваше время и поддержку.
Нет еще такая же проблема, я вхожу в Мюнхен (фактическая Lat/Long являются: 48,1372719, 11,5754815), но он помещает маркер в Lat/Long: +11,557617187499996, -41,60722821271713 – Amir
Но это работает, если я пишу жестко закодированные значения , Как показано ниже: ol.proj.transform ([11.5754815, 48.1372719], 'EPSG: 4326', 'EPSG: 3857') – Amir
Возможно, ваши значения lon, lat являются строками. Преобразуйте их в числа, используя '+ lon' и' + lat', прежде чем передавать их для преобразования. – erilem