Pracuję nad otwartymi warstwami 3 i chcę zaimplementować funkcję wyszukiwania, która pobiera nazwę miejsca i umieszcza znacznik na mapie. Jestem w stanie uzyskać współrzędne, ale kiedy chcę dodać znacznik na mapie, zawsze znajduję dla niego inne lokalizacje. Znacznik miejsca wprowadzania nie jest umieszczany na rzeczywistych współrzędnych mapy.Nie można umieścić znacznika we właściwych współrzędnych za pomocą otwartych warstw 3
Oto kod, na których pracuję:
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()
Mam nadzieję, że jasno wyjaśnia mój problem, szukasz rozwiązania do przodu. Z góry dziękuję za poświęcony czas i wsparcie.
No nadal ten sam problem, mam wejściem Monachium (rzeczywista Lat/Długi są: +48,1372719, +11,5754815), ale umieszcza znacznik na Lat/Long: +11,557617187499996, -41,60722821271713 – Amir
Ale to działa, jeśli piszę zakodowanego wartości . Jak poniżej: ol.proj.transform ([11.5754815, 48.1372719], "EPSG: 4326", "EPSG: 3857") – Amir
Może twoje wartości lon, lat są ciągami. Konwertuj je na liczby, używając '+ lon' i' + lat', zanim przekażesz je do przekształcenia. – erilem